连接远程mysql数据库失败常见原因及解决方案
作者:Thomas_Lean
这篇文章主要介绍了连接远程mysql数据库失败常见原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
连接远程mysql数据库失败常见原因及解决
安装好mysql后,想本地用Navicat直接远程链接方便一些,结果发现连不上。
我第一个想到的就是数据库没有开放远程登陆权限,于是设置明明如下:
进入mysql开放权限
bash-4.2# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 399 Server version: 5.7.29 MySQL Community Server (GPL) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
再次链接,又是一样的错误!!!
如图:
查看网络端口开放情况:
[root@docker home]# ss -tlnp State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=1554,fd=13)) LISTEN 0 128 *:22 *:* users:(("sshd",pid=1161,fd=3)) LISTEN 0 100 [::1]:25 [::]:* users:(("master",pid=1554,fd=14)) LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1161,fd=4))
果然没有数据3306的端口,也就是说服务器不允许非本地ip访问数据库。
新建用户
CREATE USER ‘data_center'@‘%' IDENTIFIED BY ‘pass'; GRANT ALL PRIVILEGES ON . TO ‘data_center'@‘%' WITH GRANT OPTION; ALTER USER ‘data_center'@‘%' IDENTIFIED WITH mysql_native_password BY ‘pass';
配置文件限制远程访问
可能是配置文件只允许自己本机才能访问,所以就去修改配置文件:
找到
bind-address = 127.0.0.1 或 skip-networking
并注释掉,然后重启mysql。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。