在“读取初始通信数据包”时失去与 MySQL 服务器的连接 [重复]

Posted

技术标签:

【中文标题】在“读取初始通信数据包”时失去与 MySQL 服务器的连接 [重复]【英文标题】:Lost connection to MySQL server at 'reading initial communication packet [duplicate] 【发布时间】:2012-06-25 22:30:36 【问题描述】:

我想通过 Python 在我的本地机器和 mysql 数据库服务器之间建立连接。

谁能告诉我如何“与本地主机绑定地址”?

【问题讨论】:

你现在的设置是什么?你试过什么? 您是否有可能遇到防火墙问题? ***.com/questions/5755819/… 发布了类似的问题 【参考方案1】:

谁能告诉我如何“与本地主机绑定地址”?

这是一个 MySQL configuration directive。

[mysqld] 部分编辑全局my.ini 文件:

[mysqld]
# -- various other settings
port = 3306
bind-address = 127.0.0.1
# -- other settings

保存此文件,然后重新启动服务器。

编辑

如果您想连接到 MySQL 的本地 Windows 实例,只需使用 127.0.0.1 作为服务器地址。

如果你想连接到你的远程服务器,那台运行 Linux 的话就有点复杂了:

    首先,确保 MySQL 正在侦听 Linux 服务器的公共 IP。更改 bind-address = 行并将其设置为您服务器的公共 IP。

    确保端口 3306 未被任何防火墙阻止。

    您用来连接服务器的用户需要具有从远程 IP 连接的权限。默认情况下,用户只能从localhost 连接 - 换句话说,只有当程序与服务器本身在同一台机器上运行时,他们才能连接。

要从远程 IP 授予用户访问权限,请在使用 MySQL root 用户登录时从 mysql> shell 运行此命令:

GRANT ALL on somedb.* to someuser@8.8.8.8 identified by 'somepassword';

如果您想从任何远程 IP 授予对 someuser 的访问权限:

GRANT ALL on somedb.* to someuser@% identified by 'somepassword';

完成这些步骤后,请确保重启 MySQL 服务器,以便读取配置中的更改。

【讨论】:

谢谢...!但是你能告诉我我在哪里可以找到这个 my.ini 文件....?我正在尝试从我的本地机器(Windows 操作系统)连接到我的服务器(linux os),并且我已经在我的本地机器上安装了 MySQL“社区服务器”。 我已经完善了第二步和第三步......但是我无法找到 my.ini 全局文件..?我应该在哪里寻找它..? 应该在 /etc 的某个地方。在 debian 系统上是 /etc/mysql/my.cnf 但我在 Windows 上运行.. 有什么想法..? 如果您的服务器在 Windows 上,而您的应用程序在 Windows 上,那么您无需执行任何操作。否则,运行server configuration wizard

以上是关于在“读取初始通信数据包”时失去与 MySQL 服务器的连接 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在“读取初始通信数据包”时失去与 MySQL 服务器的连接,系统错误:61

在读取初始通信数据包时失去与 MySQL 服务器的连接,系统错误:111

Google App Engine 和 Cloud SQL:在“读取初始通信数据包”时失去与 MySQL 服务器的连接

MySQL Workbench 错误:在“读取初始通信数据包”时丢失与 MySQL 服务器的连接,系统错误:0

无法连接:在“读取初始通信数据包”时丢失与 MySQL 服务器的连接,系统错误:0

尝试从主机连接到 mysql docker 容器时出现“读取初始通信数据包”错误