服务器的MySQL不能远程访问

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器的MySQL不能远程访问相关的知识,希望对你有一定的参考价值。

本机上可以访问,但用远程访问总是出现2003 can't connect to mysql server on IP (10060),这个错误我是用navicat访问的,好像不是防火墙的问题,因为我在防火墙上开了3306端口了

参考技术A 添加配置:
确定使用的mysql版本,如果为5.0以上的版本需要在mysql的配置文件 (windows下my.ini,linux下my.cnf)中添加如下代码:
[mysqld]
skip-name-resolve
注意配置完成后重启mysql服务,5.0一下的就不需要添加了。
分配权限:
这里我们建议单独创建一个用户,不要使用root用户,这个用户最好是指定需要连接的计算机。
代码如下:
MySQL> use MySQL;
Database changed
MySQL> grant all privileges on *.* to ‘yourUser’@'%' identified by ‘yourPassword’;
Query OK, 0 rows affected (0.00 sec)
*.*标示所有数据库下的所有表,’*’.*标示数据库*下的所有表
MySQL> grant all on *.* to ‘yourUser’@'%' identified by ‘yourPassword’;
Query OK, 0 rows affected (0.00 sec)
%号出可以填写允许访问的IP地址或者主机名,%标示所有的IP
Flush privileges;
Query OK, 0 rows affected (0.00 sec)
Mysql> exit;
Bye
启动连接:
C:\Program Files\MySQL\bin> mysql –h 需要远程连接的IP或者是主机名 –u 分配的远程连接账户 –p
Enter password:密码本回答被提问者采纳
参考技术B 很明显是权限的问题。

如何开启MySQL远程访问权限 允许远程连接

参考技术A   新安装的MySQL是默认不开户远程访问权限的,也就不能外部连接MySQL。这样对想远程调用MySQL的数据很不方便。下面我们来看下如何设置允许远程连接MySQL数据库。
  登录MySQL
# mysql -uroot -p
如果无法登录可以使用find / -name mysql搜索mysql程序的路径,比如mysql程序路径为:/usr/local/mysql/bin/mysql,我们可以这样登录:
#/usr/local/mysql/bin/mysql -uroot -p
执行如下命令:
#grant all privileges on *.* to ‘root’@’192.168.0.1′ identified by ‘ROOT-PASSWORD’;
#flush privileges;
#exit
192.168.0.1是连接mysql服务器的客户端ip,如果指定所有,则用%来表示。本回答被提问者和网友采纳

以上是关于服务器的MySQL不能远程访问的主要内容,如果未能解决你的问题,请参考以下文章

如何开启MySQL远程访问权限 允许远程连接

mysql用户权限设置,远程访问设置设置固定ip远程访问,设置root用户不能远程访问mysql数据库

阿里云服务器中centos7 解决wdcp中不能远程访问mysql服务的问题

Linux下开启mysql数据库的远程访问权限

MySql广域网远程访问数据

MySQL数据库不能远程访问的解决办法