笔记
安装完 mysql 后需要配置的地方:
1. 清除空用户,空密码
- 查看所有用户信息
select user,host,password from mysql.user;
注意: 5.7 以上版本没有了 password 字段,password 更改为authentication_string,下面所有涉及 password 字段的均改为 authentication_string,上述语句改为:
select user,host,authentication_stringfrom mysql.user;
- 删除空用户
delete from mysql.user where user='';
- 删除空密码用户(更新空密码的 root 用户)
UPDATE user SET password=PASSWORD("*****") WHERE user='root'; #修改root密码。
2. 设置 mysql 远程访问
- 修改配置文件 my.cnf ,该文件一般在 /etc/mysql/ 目录下,将
bind-address = 127.0.0.1
这一行注释掉,在最前面加 # 号。 - 设置用户 host 权限为指定 ip 或者 % ,执行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
这是指定root用户可以在任意地方访问且拥有所有权限
3. 创建用户并设置权限
- 创建用户
use mysql;
create user "username"@"host" identified by "password";
其中,username 为用户名,password 为密码,host= “localhost” 为仅本地登录用户,host=“ip” 为 ip 地址登录,host="%" 为任意地方登录。
- 授权
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
命令参数说明:
ALL PRIVILEGES
: 表示用户拥有所有 mysql 操作权限,具体有(SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP, ALTER, INDEX, CREATE VIEW, SHOW VIEW)
*.*
: 第一个 *
表示任意数据库,可输入指定数据库名指定用户访问指定数据库,第二个 *
表示任意表,可输入指定表名指定用户访问指定表。
WITH GRANT OPTION
: 这个选项表示该用户可以将自己拥有的权限授权给别人。
备注:可以使用 GRANT 重复给用户添加权限,IDENTIFIED BY ‘password’ 可忽略
- 使权限设置生效
flush privileges;
- 删除用户
drop user 'username'@'host';
- 更改用户名
mysql> rename user 'source'@'%' to 'target'@'%';
- 查看权限
show grants for 'jack'@'%';
把 for 及其后面去掉就是查看所有用户的权限
- 删除权限
revoke ALL privileges on databasename.tablename from 'username'@'host';
- 修改用户密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
这里只是提供了一种方法,还有其他方法。
4. 其他配置
端口配置,传输大小配置等等都可以在 my.cnf 中进行配置,配置修改完成后需要重启 mysql 服务。