【错误解决】MySQL出现Can't connect to MySQL server on 'localhost' (10060)错误

本文介绍了解决在本地尝试连接MySQL数据库时出现的“Can’t connect to MySQL server on ‘localhost’ (10060)”错误的方法。作者通过关闭防火墙最终解决了此问题。

转载请注明出处:http://blog.youkuaiyun.com/qq_26525215

本文源自大学之旅_谙忆的博客

今天连接数据库遇到一个问题,
错误提示:
Can’t connect to MySQL server on ‘localhost’ (10060)

开始弄了很久,没弄好。

后来去谷歌了一下。

发现原来是我的防火墙问题、我也是醉得不要不要了。

然后,果断把防火墙关闭。

哈哈,连接成功!

当然,我这个连接的是本机数据库。

如果是连接远程的数据库,可能还有其他一些问题哦,本章博客不去深究。遇到了请去谷歌自己解决哦。

本文章由[谙忆]编写, 所有权利保留。

转载请注明出处:http://blog.youkuaiyun.com/qq_26525215

本文源自大学之旅_谙忆的博客

### 解决方案概述 当遇到 MySQL 错误号 2003 (`Can't connect to MySQL server on localhost`) 时,通常表示客户端无法与 MySQL 服务建立连接。以下是可能的原因及对应的解决方案。 --- ### 可能原因及解决方法 #### 1. **MySQL 服务未启动** 如果 MySQL 服务未运行,客户端将无法连接到服务器。 - 检查 MySQL 服务状态:在 Windows 系统中,可以通过服务管理器查看 MySQL 是否正在运行;在 Linux 系统中,可以使用以下命令检查服务状态: ```bash systemctl status mysql ``` - 如果服务未启动,尝试启动 MySQL 服务: ```bash sudo systemctl start mysql ``` 确保服务成功启动后,再次尝试连接[^1]。 #### 2. **端口未开放或被占用** 默认情况下,MySQL 使用 3306 端口进行通信。如果该端口被防火墙阻止或被其他程序占用,会导致连接失败。 - 检查端口是否开放:使用以下命令测试端口状态: ```bash netstat -an | grep 3306 ``` - 如果端口未开放,修改 MySQL 配置文件以确保其监听正确的端口,并确认防火墙规则允许访问: ```bash sudo ufw allow 3306/tcp ``` 此外,确保没有其他程序占用 3306 端口[^2]。 #### 3. **配置文件问题** MySQL 的配置文件(如 `my.cnf` 或 `my.ini`)可能包含限制性设置,例如 `bind-address = 127.0.0.1`,这会阻止远程连接。 - 打开 MySQL 配置文件并注释掉 `bind-address` 设置: ```bash # bind-address = 127.0.0.1 ``` - 保存更改后重启 MySQL 服务以应用更新: ```bash sudo systemctl restart mysql ``` 此操作允许 MySQL 监听所有网络接口[^3]。 #### 4. **用户权限不足** 如果 MySQL 用户没有足够的权限从本地或远程主机连接,也会导致连接失败。 - 授予用户远程访问权限: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 上述命令允许 `root` 用户从任何主机连接到数据库[^3]。 #### 5. **网络问题** 有时网络配置可能导致客户端无法访问 MySQL 服务器。检查以下内容: - 客户端和服务器之间的网络连通性。 - 如果使用的是虚拟机或容器环境,确保网络桥接模式正确配置。 --- ### 示例代码 以下是一个完整的流程示例,用于检查和修复连接问题: ```bash # 检查 MySQL 服务状态 systemctl status mysql # 如果服务未启动,则启动服务 sudo systemctl start mysql # 检查 3306 端口是否开放 netstat -an | grep 3306 # 允许防火墙通过 3306 端口 sudo ufw allow 3306/tcp # 修改 MySQL 配置文件以支持远程连接 sudo vim /etc/mysql/my.cnf # 注释掉 bind-address 行 # bind-address = 127.0.0.1 # 重启 MySQL 服务 sudo systemctl restart mysql # 登录 MySQL 并设置用户权限 mysql -u root -p GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; EXIT; ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值