1. 用户的登录权限问题
利用xshell本地进入mysql, 查看用户的host, 若为'%',则此项没问题, 若为localhost,则需要修改为'%'
mysql -uroot -p******
mysql> use mysql;
mysql> select `user`,authentication_string,`Host`,`plugin` from `user`;
mysql> update user set plugin= 'mysql_native_password' where user= 'root';
mysql> flush privileges;
mysql> update mysql.user set authentication_string=password("123456") where User="root";
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
mysql> update user set host='%' where user='root' ;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> flush privileges;
8.0
mysql> use mysql;
mysql> select `user`,authentication_string,`Host`,`plugin` from `user`;
mysql> update user set host='%' where user='root' ;
mysql> flush privileges;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> flush privileges;
mysql> select `user`,authentication_string,`Host`,`plugin` from `user`;
2. 防火墙问题
关闭防火墙即可
3. 端口未开放
如图只允许本地访问, 我们需要改成
:::3306
vi /etc/mysql/mysql.conf.d/mysqld.cnf
将 bind-address = 127.0.0.1 注释, 如下图
重启mysql
systemctl restart mysql
再次检查3306端口, 效果如下
4.若使用的是阿里云服务器,则需要在阿里云控制台加上安全组规则
进入自己的ecs实例页面, 点击管理
本实例安全组 ==>配置规则
添加安全组规则