详解远程连接Mysql数据库的问题(ERROR 2003 (HY000) 111)

本文详细介绍了在遇到无法远程连接MySQL数据库的ERROR2003问题时,如何通过修改my.cnf配置文件中的bind-address参数来解决。通过屏蔽该参数,允许数据库接受来自本地以外的连接,从而实现远程访问。

在我们用客户端及其远程连接服务器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
# 问题分析 ## 类型判断 该问题属于“题目型”。 --- ## 题目重述 在为 WordPress 创建 MySQL 用户时出现错误: `ERROR 1396 (HY000): Operation CREATE USER failed for 'wordpress_user'@'localhost'`,如何解决? --- ## 详解 此错误表示:**MySQL 无法创建指定用户**,原因通常是该用户已存在于 `$mysql.user$` 系统表中,再次创建会触发唯一性冲突。 即使你之前删除过用户,MySQL 有时不会完全清除元数据,导致重建失败。 --- ### 解决方法一:检查并删除已存在的用户(推荐) 1. 登录 MySQL(使用 sudo 免密登录): ```bash sudo mysql -u root ``` 2. 查询用户是否存在: ```sql SELECT Host, User FROM mysql.user WHERE User = 'wordpress_user'; ``` 如果输出包含 `'wordpress_user'@'localhost'`,说明用户已存在。 3. 删除已存在的用户: ```sql DROP USER IF EXISTS 'wordpress_user'@'localhost'; ``` > 注意:必须明确指定 `'localhost'`,因为 MySQL 中 `'user'@'localhost'` 和 `'user'@'%'` 是不同用户。 4. 刷新权限: ```sql FLUSH PRIVILEGES; ``` 5. 重新创建用户: ```sql CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost'; FLUSH PRIVILEGES; ``` 此时应可成功创建。 --- ### 解决方法二:直接修改现有用户(适用于保留配置场景) 若不想删除用户,可跳过 `CREATE USER`,仅更新其密码和权限: ```sql ALTER USER 'wordpress_user'@'localhost' IDENTIFIED BY 'new_password'; GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost'; FLUSH PRIVILEGES; ``` --- ### 补充说明:避免未来出错 - 使用 `$DROP USER IF EXISTS$` 可预防报错; - 建议统一使用 `'localhost'` 而非 `'%'` 以增强安全性; - 操作后务必执行 `$FLUSH PRIVILEGES;$`。 --- ## 知识点 ### 1. MySQL 用户标识 用户由 `$'用户名'@'主机'$` 共同定义,`$'user'@'localhost'$` 与 `$'user'@'%'$` 视为两个不同账户。 ### 2. DROP USER IF EXISTS 安全删除用户的语句,避免因用户不存在或重复创建引发错误。 ### 3. FLUSH PRIVILEGES 强制刷新权限表,确保用户增删改操作立即生效,尤其在绕过 GRANT 语句直接操作时必需。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值