mysql无法连接远程以及端口号为0的情况

情况一:如果使用的是阿里云或者其他平台的服务器,则可能是没有配置安全组规则导致的。
  • 如果使用的是轻量应用服务器,则到该服务器下的安全组进行配置;我用的云服务器ECS,所以就到对应的安全组下配置规则。
    安全组规则配置
情况二:没有赋予用户远程访问的权限
mysql> use mysql;
// 【非新增用户,跳过这一步】
// 新增一个用户为username,密码为password,任何ip都可以访问到mysql。
// % 表示任何ip都可以访问,如何要进行ip限制,可以把%替换成指定的ip
mysql> grant all on *.* to 'username'@'%' identified by 'password';
// 【新增过的,跳过这一步】
// 修改用户可访问mysql的访问为所有ip。
mysql> update user set host='%' where user='username' and host='localhost';
//  执行完以上的语句,都需要更新权限配置。
mysql> flush privileges;
情况三:mysql的端口号为0,my.cnf配置文件中有skip-networking参数。
mysql>  show variables like 'skip_networking';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| skip_networking | NO   |
+-----------------+-------+
// 查看mysql端口号
mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 0		|
+---------------+-------+
  • 查看配置文件my.cnf(我的文件在/etc/my.cnf),是否配置了skip-networking,如果有,则注释掉,配置了bind-address=127.0.0.1的也要注释掉,也可以把127.0.0.1改成0.0.0.0,然后重启mysql
skip-networking
bind-address=127.0.0.1
// 重启
[lmm@izz98rw7qik6d37cz ~]# systemctl restart mysqld.service
  • 再进入到mysql,查看skip_networking是否已关闭,端口号是否为3306.
  • 注意:如果使用了阿里云服务器,记得要去服务器的安全组中配置规则哦~
mysql>  show variables like 'skip_networking';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| skip_networking | OFF   |
+-----------------+-------+
// 查看mysql端口号
mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306		|
+---------------+-------+
  • 如果配置文件中没有配置skip-networking,也没有bind-address,或者以上配置不起效,也可能执行过mysqld --user=mysql --skip-grant-tables --skip-networking& 命令导致的,可以试一下以下这种方案(有点点暴力哈)。
// 查看mysql进程,可以看到相关的开启skip-networking的命令
[lmm@izz98rw7qik6d37cz ~]# ps -ef|grep mysql
mysql    20518     1  0 11:23 ?        00:00:00 /bin/sh /usr/bin/mysql_safe --user=mysql --skip-grant-tables --skip-networking
root     20741  1222  0 11:23 pts/2    00:00:00 mysql -uroot -px xxxxxx
root     20879 20476  0 13:52 pts/0    00:00:00 grep --color=auto mysql
// 杀掉所有的mysql进程
[lmm@izz98rw7qik6d37cz ~]# kill -9 进程ID
// 再次查看mysql相关进程,已经没有了
[lmm@izz98rw7qik6d37cz ~]# ps -ef|grep mysql
// 重启mysql
[lmm@izz98rw7qik6d37cz ~]# systemctl restart mysqld.service
  • 再进入mysql,查看mysql的端口号,看看四不四已经变成3306了~
  • 用第三方工具连接,连接成功啦,奈斯~

……最后,有什么不对的地方,欢迎各位路过的大哥指正~

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值