乐趣区

关于mysql:Cant-Connect-to-MySQL-Server-on-IP-Address-10061-错误的解决方案

如果你打算从近程连贯 MySQL 服务器的话,有可能会碰到 10061 谬误,这个谬误特地常见,通常的谬误提醒是「Driver Error, Can’t connect to MySQL server on‘YOUR_IP_ADDRESS’(10061)」

导致 10061 这个谬误的状况有两种

  • 登录账号近程拜访权限问题
  • MySQL 配置文件设置问题

本教程将具体解说,如何针对这两种状况进行配置,以修改 10061 谬误。

特地提醒:对于如何关上 MySQL 近程拜访性能,可看这篇《如何近程连贯 MySQL 数据库,阿里云腾讯云外网连贯教程》,如果想开启服务器可查看这份教程,本篇教程只讲开启后,为什么会呈现 10061 谬误。另外举荐一下卡拉云,只有你能写 SQL,不会任何前端也能够用卡拉云疾速搭建属于本人的后盾管理系统,详见本文文末

一. 受权登录 MySQL 服务器的账号近程拜访权限

如果账号没有近程拜访权限或 host 配置谬误,会导致 10061 谬误。咱们能够新建一个账号用于近程登录,也能够批改已有账号的 host 配置,使它能够近程拜访。

1. 新建用于近程登录的 MySQL 账号

MySQL 用户账号是否能够近程登录,取决于账号中的 host 配置。host 指定该账号在哪些主机上能够登录,如果是本地用户可用 localhost,如果是近程用户,须要指定近程计算机的 IP,如果想任意主机均可登录,那么能够应用通配符 %

本教程应用通配符 % 来作为账号 host 的设置,你能够依据本人的状况将 % 改为指定主机 IP,这样能够是 MySQL 近程登录更加平安。

首先登录 MySQL Server

mysql -u root -p

而后新建一个用于近程登录的 MySQL 账号,这里的「password」换成你的明码,如果 MySQL 设置为严格明码的话,须要「数字 + 英文大小写 + 符号」

CREATE USER 'kalacloud.com-remote'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

接着,依据本人的须要,给你用于近程拜访的账号赋予权限。上面的例子是给账号全局权限,包含创立(CREATE)、批改(ALTER)、删除(DROP)数据库、表、用户,任意表的插入(INSERT)、更新(UPDATE)、删除(DELETE)操作权限。能够应用 SELECT 查问数据,应用 REFERENCES 建设外键关系权限,以及应用 RELOAD 权限执行 FLUSH 操作的权限。

当然,你也能够依据本人都需要,对账号权限进行调整。

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'kalacloud.com-remote'@'%' WITH GRANT OPTION;

最初,运行 FLUSH PRIVILEGES 命令,刷新 MySQL 的零碎权限相干表,更新缓存。

FLUSH PRIVILEGES;

扩大浏览:最好用的 10 款 MySQL / MariaDB 管理工具横向测评 – 收费和付费到底怎么选?

2. 将已有账号更改为可近程登录的账号

如果你不想新建账号,只是想沿用曾经有的 MySQL 登录账号,那么咱们也能够间接把它改为可近程登录的账号。

首先,咱们 查看 MySQL 所有账号

SELECT DISTINCT CONCAT('User:''',user,'''@''',host,''';') AS query FROM mysql.user;

接下来,咱们把 'kalacloud.com'@'localhost' 这个账号改为可近程登录的账号。咱们把这个账号 host 改为任意主机(%)或者是固定主机 ip。能够应用 RENAME USER 命令来实现:

RENAME USER 'kalacloud.com'@'localhost' TO 'kalacloud.com'@'%';

执行后,再查看 MySQL 所有账号列表

SELECT DISTINCT CONCAT('User:''',user,'''@''',host,''';') AS query FROM mysql.user;

咱们能够看到 'kalacloud.com'@'localhost' 曾经变为 'kalacloud.com'@'%' 了。

特地提醒:如果你应用的是 MySQL 8.0,应用这个账号近程登录可能会呈现caching_sha2_password 报错,这是因为 MySQL 8.0 默认认证形式改为 SHA2 了,如果不反对 SHA2 插件认证形式,那么就会报错,比方应用 Workbench 和 Squel Pro 登录时,如下图。

MySQL said: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found

咱们能够把应用 caching_sha2_plugin 认证的 'kalacloud'@'%' 账号改为应用明码认证。

ALTER USER 'kalacloud.com'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

最初运行 FLUSH PRIVILEGES命令 刷新 MySQL 零碎权限相干表,更新缓存

FLUSH PRIVILEGES;

至此,MySQL 近程登录账号局部就配置实现了,如果还是报 10061 谬误,那么你还应该查看 MySQL 配置文件是否有问题。

扩大浏览:MySQL Workbench 中文使用指南

二. 改 MySQL 配置文件

在默认状况下,MySQL 数据库仅监听本地连接。如果想让外网近程连贯到数据库,咱们须要批改配置文件,让 MySQL 能够监听近程固定 ip 或者监听所有近程 ip。

首先关上 mysqld.cnf 配置文件。

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind – address 这一行,如下图所示。

默认状况下,bind – address 的值为 127.0.0.1,所以只能监听本地连接。咱们须要将这个值改为近程连贯 ip 可拜访,可应用通配符 ip 地址 *::0.0.0.0,当然也能够是独自的固定 ip,这样就仅容许指定 ip 连贯,更加平安。

提醒:在某些 MySQL 版本的配置文件中,没有 bind – address 这一行,这种状况下,在适合的地位加上就能够了。

提醒:在某些 MySQL 版本的配置文件中,没有 bind – address 这一行,这种状况下,在适合的地位加上就能够了。

更改后,保留并退出编辑器(应用 CTRL+X 保留并退出 nano 编辑器。)

而后重启 MySQL 服务,使刚刚编辑的 mysqld.cnf 文件失效:

sudo systemctl restart mysql

扩大浏览:如何在 MySQL / MariaDB 中查找和删除重复记录?

三. 总结

到这里,只有你跟着教程走,肯定曾经解决了 MySQL 10061 谬误。

MySQL 除了近程连贯这类适宜应用终端命令操作外,大多数对 MySQL / MariaDB 数据导入导出操作还是为了数据展现、剖析、协同共享等产品和经营层面的利用场景。

比方后端工程师接到产品需要,帮助导出某类数据等场景,如果这类需要频繁呈现,举荐应用我开发的卡拉云。卡拉云是新一代低代码开发工具,免装置部署,可一键接入包含 MySQL 在内的常见数据库及 API。

卡拉云不仅能够像命令行一样灵便,还可依据本人的工作流,定制开发。无需繁琐的前端开发,只须要简略拖拽,即可疾速搭建企业外部工具。数月的开发工作量,应用卡拉云后可缩减至数天,欢送收费试用卡拉云。

卡拉云可疾速接入的常见数据库及 API

卡拉云可依据公司工作流需要,轻松搭建数据看板,并且可分享给组内的小伙伴共享数据

仅需拖拽一键生成前端代码,简略一行代码即可映射数据到指定组件中。

卡拉云可间接增加导出按钮,导出实用于各类剖析软件的数据格式,方便快捷。立刻开明卡拉云,搭建属于本人的后盾管理工具。

如果感觉我的文章对你有帮忙,还请点个赞再走。欢送评论区一起交换。

退出移动版