Linux下安装的mysql。客户端远程连接不上提示
数据库也已经授权了,配置文件也写了
楼主ip地址和端口号什么的写对了吗
防火墙:要开启MySQL的通信端口(默认3306)
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables restart
或者指令
Iptables -F
#清除所有规则
确认mysql配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf
中是否有 bind-address = 127.0.0.1
这一行,如果存在则将它注释掉或改为对应的IP地址,这样才可以允许远程连接MySQL服务器。可以使用如下命令来打开并编辑该配置文件:
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
修改完成后需要重启mysql服务:
sudo service mysql restart
在 MySQL 中新建允许远程登录的用户并授权:
CREATE USER 'username'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'%'; FLUSH PRIVILEGES;
其中,将 'username'
和 'password'
改为对应的用户名和密码。
确认防火墙是否允许通过 MySQL 服务的端口来连接 MySQL 服务。通常 MySQL 服务的端口是 3306
,需要开放该端口。可以使用如下命令,添加防火墙规则:
sudo ufw allow from any to any port 3306 proto tcp
尝试远程连接 MySQL 服务器,使用客户端工具,如 MySQL Workbench,可在该工具中输入 MySQL 服务器的 IP 地址、账户名、密码等信息,进行连接测试。
如果以上步骤都已完成,但仍然无法连接 MySQL 服务器,则需要进一步排查问题。可以通过查看 MySQL 错误日志来获取更多的详细信息,可以使用如下命令来打开 MySQL 错误日志文件:
sudo tail -f /var/log/mysql/error.log
在错误文件中查找相关的错误信息,再进行逐一排查。例如,如果错误信息中包含 “拒绝访问” 这一关键词,则可能是配置文件中未添加完整的授权信息或防火墙规则已经屏蔽了对应的IP地址等。
你说的专用网络,是怎样的网络?
因为已经看到你设置了一个 host为 % 的记录了,先明确此账号的权限,
然后,你本机的mysql服务和端口是否 正常启动和侦听,至于你图片上的,不用设置bind-address啊。。。😂
最后,用抓包来负责解决,看看请求卡在哪里。