(为什么要说8.0的问题内,因为和第二步有关,参考下文
mysql8.0无法给用户授权或提示You are not allowed to create a user with GRANT的问题)
1.首先进入数据库使用
use mysql;
然后看看自己的密码选项是什么名称:
describe user;
可以看到有一个text类型的密码名叫authentication_string(有的版本叫password,就把以下出现authentication_string的地方改成password就行了)
然后看看已有的账户密码。
select host,user,authentication_string from user;
2.如图,host处全是localhost,所以当然只能本地访问了。然后输入
grant all privileges on *.* to 'root'@'%' identified by 'network' with grant option;
意思是对所有数据库给所有的权力对root用户在所有ip上,用network当密码。
然后在输入
flush privileges;
这句表示从mysql数据库的grant表中重新加载权限数据。
(PS:如果想改密码用 update mysql.user set authentication_string=password('network') where user="root" and host="%";
值得注意的是变量名用authentication_string,但是方法还是用password)
如果此时你是这个样子的就改对了。
3.然后出去再改一下配置文件。
找到/etc/mysql/mysql.conf.d 文件
找到127.0.0.1,删掉或者注释掉就行了,或者像我一样闲的说明一下bind-address =0.0.0.0
4.然后重启数据库
service mysql restart即可。
然后我们再登陆一下:
5.emmmm仔细一想,自己在阿里云上,当初也是不能访问页面,发现是安全规则的问题。去阿里云把规则改了:
这样就可以,详细逻辑可以看下文,过程直接看最后作者给的链接。
参考一下远程连接centos7 上的mysql报(ERROR 2003 (HY000): Can't connect to MySQL server on '168.x.x.x' (10060) )