Mysql 温故知新系列 【下载 | 安装 | 用户操作】

597 阅读4分钟

小知识,大挑战!本文正在参与「程序员必备小知识」创作活动

本文已参与 「掘力星计划」 ,赢取创作大礼包,挑战创作激励金。

下载安装包

由于 mysql 已经被 Oracle 收购,下载时我们需要去 oracle 的官方站点来下载,同时需要配置 oracle 的账号,非常的麻烦,建议直接去清华的镜像站下载

mysql 官方站点,在页面上点击 download 直接就跑 oracle 的站点去了。。

清华镜像站 mysql 历史版本

mysql-8.0.26-winx64.zip 下载链接

(这里可以捞一下我的文章 # Java 多线程+断点续传模式 下载网络资源 直接带宽拉满快速下载资源,hxd 也可以来模仿下练练手)

注意点

在下载的时候,我们可能会迷惑选择什么版本

MySQL Enterprise Edition,企业版

MySQL Cluster CGE,集群版

MySQL Community Server,社区版

一般情况下,下载最后一个版本,即社区版

zip 版安装

以上文提到的链接版本 mysql-8.0.26-winx64.zip 为例

  1. 解压到 D:
  2. 添加 my.ini 文件,放置在 D:\mysql-8.0.26-winx64 目录下
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=D:\mysql-8.0.26-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-8.0.26-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
  1. 管理员权限 开启 cmd 窗口,同时将路径定位到 D:\mysql-8.0.26-winx64\bin

  2. 执行指令 mysqld --initialize --console,目的是初始化 mysql 的数据存储空间,同时在控制台输出登陆密码

  3. 执行指令 mysqld --install [服务名],安装 mysql 的服务,如果不指定服务名,则默认为 mysql

  4. 启动 mysql 服务,命令 net start mysql

  5. 登陆 mysql,命令 mysql -uroot -p

  6. 修改 mysql 的登陆密码,命令 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

用户相关

添加用户

create user 'guest'@'localhost' IDENTIFIED by 'guest'

数据会存储在 mysql 库中的 user 表内

密码修改

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'

删除用户

drop user '用户名'@'允许访问的IP地址,多个IP地址使用逗号区分或者配置%允许所有IP地址';

用户授权

授予全部权限

grant all privileges on *.* to '用户名'@'允许访问的IP地址,多个IP地址使用逗号区分或者配置%允许所有IP地址' with grant option;

with grant option: 表示该用户可给其它用户赋予权限,但不可能超过该用户已有的权限

授予管理员权限

grant all privileges on *.* to '用户名'@'允许访问的IP地址,多个IP地址使用逗号区分或者配置%允许所有IP地址' IDENTIFIED BY 'mypassword' with grant option;

all privileges 表示全部权限,也可以理解为是管理员权限

授予部分权限

grant select,insert,update,delete on *.* to '用户名'@'允许访问的IP地址,多个IP地址使用逗号区分或者配置%允许所有IP地址';

授予只读权限

grant select on *.* to '用户名'@'允许访问的IP地址,多个IP地址使用逗号区分或者配置%允许所有IP地址' IDENTIFIED BY 'your_password';

第一个*表示通配数据库,可指定新建用户只可操作的数据库

第二个*表示通配表,可指定新建用户只可操作的数据库下的某个表

撤销权限

revoke all privileges on *.* from '用户名'@'允许访问的IP地址,多个IP地址使用逗号区分或者配置%允许所有IP地址';

比如,撤销全部权限 all privileges,或撤销查询权限 select,更新权限 update 等,与授权类似

刷新权限

flush privileges;

当我们创建、修改、删除用户以及授权后,如果需要立即生效,就需要执行上述命令刷新权限数据