Linux—mysql设置远程连接

Linux下安装的mysql。客户端远程连接不上提示

img

数据库也已经授权了,配置文件也写了

img


各位学者怎么解决

楼主ip地址和端口号什么的写对了吗

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7660083
  • 这篇博客你也可以参考下:Linux-Mysql安装部署及解决中文乱码、解决mysql远程连接失败
  • 除此之外, 这篇博客: Linux下配置mysql数据库,实现两台机器主主热备,数据同步中的 进行必要的配置 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 防火墙:要开启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#清除所有规则

  • 您还可以看一下 杨璞老师的红帽Linux系统企业内部实训课程中的 红帽Linux企业内训-mysql数据库小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案

    1. 确认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

    2. 在 MySQL 中新建允许远程登录的用户并授权:

      CREATE USER 'username'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'%'; FLUSH PRIVILEGES;

      其中,将 'username''password' 改为对应的用户名和密码。

    3. 确认防火墙是否允许通过 MySQL 服务的端口来连接 MySQL 服务。通常 MySQL 服务的端口是 3306,需要开放该端口。可以使用如下命令,添加防火墙规则:

      sudo ufw allow from any to any port 3306 proto tcp

    4. 尝试远程连接 MySQL 服务器,使用客户端工具,如 MySQL Workbench,可在该工具中输入 MySQL 服务器的 IP 地址、账户名、密码等信息,进行连接测试。

    如果以上步骤都已完成,但仍然无法连接 MySQL 服务器,则需要进一步排查问题。可以通过查看 MySQL 错误日志来获取更多的详细信息,可以使用如下命令来打开 MySQL 错误日志文件:

    sudo tail -f /var/log/mysql/error.log
    

    在错误文件中查找相关的错误信息,再进行逐一排查。例如,如果错误信息中包含 “拒绝访问” 这一关键词,则可能是配置文件中未添加完整的授权信息或防火墙规则已经屏蔽了对应的IP地址等。

img


bind-address = 0.0.0.0
这项配置更改为对于IP报以上错误

你说的专用网络,是怎样的网络?
因为已经看到你设置了一个 host为 % 的记录了,先明确此账号的权限,
然后,你本机的mysql服务和端口是否 正常启动和侦听,至于你图片上的,不用设置bind-address啊。。。😂
最后,用抓包来负责解决,看看请求卡在哪里。