远程连接Mysql数据库问题(ERROR 2003 (HY000))

37 篇文章 0 订阅

困扰我一天的问题终于被这位大侠给解决了,再次表示感谢:

落羽  http://blog.163.com/xiaohui_1123@126/blog/static/3980524020101129143017/

 

在我们用客户端及其远程连接服务器Mysql数据库的过程中,容易出现下面问题:
问题代码代码
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111) 
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111)
      这个 原因就是Mysql数据库的默认配置文件my.cnf(linux下)中的bind-address默认为127.0.0.1,所以就算你创建了可以 remote访问的用户,你也不能使用mysql -h命令进行访问,若访问就会出现上出问题,因为此时Mysql只接受localhost,所以需要把bind-address屏蔽掉。

     my.cnf一般在/etc/mysql下面,如果不在使用locate my.cnf查找,修改前的my.cnf配置文件为:

修改前的my.cnf配置文件代码

# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure. 
bind-address           = 127.0.0.1 
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address           = 127.0.0.1

     我们需要做的就是屏蔽这个bind-address代码,屏蔽后代码为:

 

屏蔽后my.cnf配置文件代码

# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure. 
#bind-address           = 127.0.0.1 
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1

     现在你就可以用mysql -h命令进行你想做的操作了,如登录系统:

 

登陆数据库代码
mysql -h 192.168.0.19 -u root -p

 

ERROR 2003 (HY000): Can't connect to MySQL server on 'hostname' (100) 这个错误通常表明用户无法连接到MySQL服务器。这可能是由多种原因导致的,包括但不限于网络问题服务器配置问题MySQL服务没有运行、或是访问权限配置不当等。以下是一些排查和解决该问题的步骤: 1. 确认MySQL服务是否正在运行。可以在服务器上执行如下命令: ``` sudo service mysql status ``` 或者 ``` systemctl status mysql ``` 如果服务没有运行,需要启动MySQL服务: ``` sudo service mysql start ``` 或者 ``` systemctl start mysql ``` 2. 检查MySQL的配置文件,确保服务器配置为允许远程连接。这通常涉及编辑`my.cnf`(Linux)或`my.ini`(Windows)文件,并确认或修改`bind-address`参数设置为`0.0.0.0`,这样MySQL监听所有网络接口。 3. 确认MySQL用户账户的权限。用户可能需要具有远程访问权限。可以通过以下SQL命令来授予: ``` GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 这里`database_name`是用户要连接的数据库名称,`username`是用户账户名,`password`是该用户的密码。 4. 检查防火墙设置,确保MySQL端口(默认是3306)没有被阻止。 5. 如果是在本地网络中遇到这个问题,确认网络连接和服务器的IP地址是否正确。同时,如果是从不同的网络(比如使用公共IP地址)尝试连接,可能需要在路由器上设置端口转发。 6. 如果使用的是第三方客户端或工具(如phpMyAdmin, MySQL Workbench等),确保工具的连接设置正确,包括服务器地址、端口、用户名和密码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值