真是各种不顺利,脑袋都大了
在CentOS7上搭建的测试服务器,远程连接Mysql的时候又报这种错误
然后网上找了各种办法都无效,
试到最后一种,终于发现原来是 防火墙 的原因
Linux 检查防火墙命令 *
systemctl start firewalld # 开启防火墙
systemctl stop firewalld # 关闭防火墙
systemctl status firewalld #检查防火墙状态
在本地实测如下:
我也觉着这样做有些太直接,(言外之意就是要有安全性的考虑)总之我在测试服务器上这些都可以忽略了!
问题就解决了
MySQL我用的是apt安装的,有很多问题,建议大家用二进制程序安装。
问题描述
在服务器上登录MySQL只能用本地的127.0.0.1地址,用服务器本身地址会提示拒绝访问
尝试修改MySQL远程访问权限
修改后发现没有用,MySQL依然拒绝远程访问
查看3306端口
root@sfpql:~# netstat -an|grep 3306
修改MySQL服务地址:
尝试远程连接
telnet sfpql 3306
结语
MySQL远程连接不上是常见问题,一般设置好MySQL的远程访问权限就可以了。
apt安装的MySQL会自己将启动地址设置在本地,同时apt安装的MySQL的服务查看命令是 systemctl status mysql 其他安装方式的常看命令是 systemctl status mysqld
执行 ./bin/mysqld --defaults-file=xxx --initialize-insecure 初始化data目录
./bin/mysqld_safe --defaults-file=/home/xxx/mysql/my.cnf &
运行后netstat -anlp | grep mysql 发现mysqld进程使用的是unix domain socket,没使用tcp/tcp6,没监听端口,看配置文件里面有一行 --skip-grant-tables,看官方文档,如果开启了--skip-grant-tables默认启用--skip-networking,这样就不允许远程连接了,因为--skip-grant-tables不安全。
https://www.oreilly.com/library/view/mysql-8-cookbook/9781788395809/6ea03335-6ff2-4d4f-a008-48c8cf88fd01.xhtml#:~:text=In%20this%20method%2C%20you%20stop,to%20connect%20to%20the%20server .
./bin/mysqladmin shutdown
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)