centos-mysql无法远程连接10038

来源:互联网 发布:杭州华智软件 编辑:程序博客网 时间:2024/05/21 15:12

我在我的阿里云上初始化云磁盘后,重新安装mysql无法使用远程连接10038

这问题真的把我弄疯了,明明用的好好的mysql,因为初始化了下服务器磁盘,导致无论如何都无法远程连接服务器上的mysql
服务器上使用mysql登录正常。

网上各种技术博客搜索得到的答案大致如下:

1.找到/etc/mysql/my.cnf

  • skip networking注释掉,否则只能本地连接
  • 找到bind-address=127.0.0.1,将其注释掉,或者改为bind-address=0.0.0.0

2.创建的mysql用户,记得赋权限,如sql语句:

create user sa@'%' identified by 'sa123456';grant all privileges on *.* to sa@"%" identified by 'sa123456';

这里的sa@'%'代表的是用户sa允许任意地址登录,还可以为sa@'localhost'这样sa只能本地登录
第二句*.*意思是赋予所有数据库所有数据表的所有权限all privileges给用户sa。

3.删除user表中所有user值为空的用户(据说有些无法访问是这个原因,我没遇到过)

use mysql;  select host,user from user;  --------->查出user表中的数据,能看到有几个用户,用户名为空delete from user where user=""      ------>删除这些用户

写到这里,我来说下我遇到的问题。我根本就没找到/etc/mysql/my.cnf文件,为此,我使用find全目录搜索了,结果也只找到了/etc/my.cnf,这无所谓,关键是我在/etc/my.cnf文件中并没有找到绑定访问地址的设置啊??就是bind-address=127.0.0.1,使用了netstat -nplt指令看到正在运行的mysqld 3306,是允许0.0.0.0访问,也就是没有限制远程啊。而skip networking也是注释的好好的,没问题啊。
因为我装的是xampp集成开发环境,这样可以一次性安装好mysql,Apache,php环境。所以我又找了许多xampp mysql遇到无法远程访问数据库 的问题。大致解决方案都差不多:

找到mysqld.conf文件,注释bind-address=127.0.0.1
问题是,我也没找到mysqld.conf!!!这叫那个崩溃啊。当时真的很后悔手贱把阿里云上的磁盘格式化了,我以为能很快重新搭建好我想要的,结果遇到这么个问题。

后来试了下从本地使用telnet 我的IP 3306 测试了下,发现3306端口无法访问,怀疑到了是不是防火墙问题,又去找了下防火墙相关问题。


最后找到的解决方案:

4.检查服务器防火墙是否开启3306端口远程访问权限。

vi /etc/sysconfig/iptables
看看防火墙是否开启3306端口。

如果没开启,则仿照80端口那句,复制粘贴在80那句后面,将端口改为3306

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

重新启动service iptables restart
如果启动失败,很有可能是你刚刚那句手输入有误,记得检查下,或者复制一段来改。

0 0
原创粉丝点击