之前使用mysql一直使用root来连接登录数据库,现在想使用新的用户名来连接数据库,碰到数据连接不上的情况。
把这些记录下来,以备后用
1、首先,创建用户
CREATE USER 'xiazhenxing'@'localhost' IDENTIFIED BY 'root'; |
xiazhenxing:你的用户名
localhost:你的主机名
root:你的密码
2、给用户授权
grant all privileges on *.* to 'xiazhenxing'@'localhost'; |
all:给用户添加那些权限,有select,delete等,如果有多个可用逗号(,)分隔,全部权限使用all
第一个*:代表数据库名,全部数据可用*代替
第二个*:代表数据库下的表名,数据库下的全部表可使用*代替
'xiazhenxing'@'localhost':代表用户名和可访问的主机
3、刷新权限
flush privileges; |
测试本地登录,连接成功
4、开启远访问
update user set host="%" where user="xiazhenxing"; |
远程连接测试,成功
补充:如果你想只能限定某一台电脑访问数据,可将local改成指定电脑即可,如果不限制,可使用%
以上就是我设置的完整步骤。
在网上查找资料说是可以一步到位,在添加用户时就将localhost改成%,
我试了几次,均报错:1045-access denied for user 'root'@,使用命令行形式也连接不上。
mysql8的步骤也跟这个差不多,就是在第一次更新完权限(即第3步)测试本地连接可以后(使用命令行),添加以下两行命令
修改密码规则
ALTER USER 'xiazhenxing'@'localhost' IDENTIFIED BY 'Xia123456.' PASSWORD EXPIRE NEVER; |
'xiazhenxing'@'localhost':用户名和登录地址
'Xia123456.':你的密码,注意去掉引号
更新密码(mysql_native_password模式)
ALTER USER 'xiazhenxing'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Xia123456.'; |
后接第4步……。
msqyl8默认使用caching_sha2_password方式加密,使用navicat或SQLyug连接,提示错误或更新客户端等
修改密码规则和更新密码后,就可用工具连接了。^@^
第一个是在win7环境下,使用mysql5.6免安装版
第二个是在centos7.5下,使用msyql8.0.13(mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar)
~~~~~~~~~~~~~~~完~~~~~~~~~~~~~~~~
2018-11-28
——