主机访问不到在Linux服务器上mysql 原因竟然是
鸡你太美远端服务器上的mysql访问权限不够
核心逻辑
root用户的连接权限仅为localhost,所以只能本地连接。
update user set host='%' where user='root';
//修改为'%'表示任何ip地址都可以链接,也可以修改为某一确定的ip地址
完整演示过程
mysql> use mysql
Database changed
mysql> select host,user from user;
+-----------+------------+
| host | user |
+-----------+------------+
| 127.0.0.1 | mydatabase |
| 127.0.0.1 | root |
| ::1 | root |
| localhost | mydatabase |
| localhost | root |
+-----------+------------+
5 rows in set (0.00 sec)
mysql> update user set host='%' where user='root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> select host,user from user;
+-----------+------------+
| host | user |
+-----------+------------+
| % | root |
| 127.0.0.1 | mydatabase |
| 127.0.0.1 | root |
| ::1 | root |
| localhost | mydatabase |
+-----------+------------+
5 rows in set (0.00 sec)
mysql> cd
-> Ctrl-C -- exit!
Aborted
[root@zsvlutrvps1 ~]#
重点说明
执行updata user set host = '%' where user = 'root'
有点会报错 比如我运行的那样 但不用管他
用咱们的强盗逻辑 FLUSH PRIVILEGES 强制刷新 mysql权限相关表