当前位置:   article > 正文

mysql无法连接远程以及端口号为0的情况_无法通过端口0连接至电脑

无法通过端口0连接至电脑
情况一:如果使用的是阿里云或者其他平台的服务器,则可能是没有配置安全组规则导致的。
  • 如果使用的是轻量应用服务器,则到该服务器下的安全组进行配置;我用的云服务器ECS,所以就到对应的安全组下配置规则。
    安全组规则配置
情况二:没有赋予用户远程访问的权限
mysql> use mysql;
  • 1
// 【非新增用户,跳过这一步】
// 新增一个用户为username,密码为password,任何ip都可以访问到mysql。
// % 表示任何ip都可以访问,如何要进行ip限制,可以把%替换成指定的ip
mysql> grant all on *.* to 'username'@'%' identified by 'password';
  • 1
  • 2
  • 3
  • 4
// 【新增过的,跳过这一步】
// 修改用户可访问mysql的访问为所有ip。
mysql> update user set host='%' where user='username' and host='localhost';
  • 1
  • 2
  • 3
//  执行完以上的语句,都需要更新权限配置。
mysql> flush privileges;
  • 1
  • 2
情况三:mysql的端口号为0,my.cnf配置文件中有skip-networking参数。
mysql>  show variables like 'skip_networking';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| skip_networking | NO   |
+-----------------+-------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
// 查看mysql端口号
mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 0		|
+---------------+-------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 查看配置文件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
  • 1
  • 2
// 重启
[lmm@izz98rw7qik6d37cz ~]# systemctl restart mysqld.service
  • 1
  • 2
  • 再进入到mysql,查看skip_networking是否已关闭,端口号是否为3306.
  • 注意:如果使用了阿里云服务器,记得要去服务器的安全组中配置规则哦~
mysql>  show variables like 'skip_networking';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| skip_networking | OFF   |
+-----------------+-------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
// 查看mysql端口号
mysql> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306		|
+---------------+-------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 如果配置文件中没有配置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
  • 1
  • 2
  • 3
  • 4
  • 5
// 杀掉所有的mysql进程
[lmm@izz98rw7qik6d37cz ~]# kill -9 进程ID
  • 1
  • 2
// 再次查看mysql相关进程,已经没有了
[lmm@izz98rw7qik6d37cz ~]# ps -ef|grep mysql
  • 1
  • 2
// 重启mysql
[lmm@izz98rw7qik6d37cz ~]# systemctl restart mysqld.service
  • 1
  • 2
  • 再进入mysql,查看mysql的端口号,看看四不四已经变成3306了~
  • 用第三方工具连接,连接成功啦,奈斯~

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/187857
推荐阅读
相关标签
  

闽ICP备14008679号