mysql配置
更新日期:
mysql配置
配置远程访问
1.查看表
1 | use mysql; |
host是主机,root表示主机可以登录的用户,%表示所有主机,但不包括localhost
2.如果没有%,root
1 | grant all privileges on 库名.表名 to '用户名'@'IP地址' identified by '密码' with grant option; |
库名:要远程访问的数据库名称,所有的数据库使用“*”
表名:要远程访问的数据库下的表的名称,所有的表使用“*”
用户名:要赋给远程访问权限的用户名称
IP地址:可以远程访问的电脑的IP地址,所有的地址使用“%”
3.如果配置所有ip可以远程登录root
1 | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; |
注意
需要注意mysql的配置文件中的bindaddress 的参数和skip-networking 配置
bindaddress : 设定哪些ip地址被配置,使得mysql服务器只回应哪些ip地址的请求),最好注释掉该参数或设置成为127.0.0.1以外的值
skip-networking : 如果设置了该参数项,将导致所有TCP/IP端口没有被监听,也就是说出了本机,其他客户端都无法用网络连接到本mysql服务器,所以应该注释掉该参数
mysql修改密码
如果MySQL数据库用户的密码设置过于简单,数据库在用户登录后会提示重置密码,并且不接受简单的密码。
提示需要重置密码:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
1 | ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; |
以上操作后又遇到新问题:
ERROR 1819 (HY000): Your password does NOT satisfy the CURRENT policy requirements。
这是因为密码不符合mysql的密码策略检查
先设置复杂密码
1 | ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aa123456*'; |
flush privileges;
mysql初始密码策略
1 | SHOW VARIABLES LIKE 'validate_password%'; |
使用以下两个设置简单密码策略
set global validate_password_policy=0;
set global validate_password_length=1;
再设置简单密码
ALTER USER ‘root‘@’localhost’ IDENTIFIED BY ‘123456’;
flush privileges;
mysql出现访问拒绝
ERROR 1045 (28000): Access denied for user ‘root‘@’localhost’ (using password: YES)
解决:
1)修改mysql配置文件,跳过权限检查
vim /etc/my.cnf
加入
skip-grant-tables
重启mysql服务
2)修改密码
use mysql;
update user set authentication_string=password(123456) where user=’root’;
flush privileges;
3)注释掉
#skip-grant-tables
重启mysql服务