当前位置: 首页 > 面试题库 >

无法通过套接字'/tmp/mysql.sock连接到本地MySQL服务器

邓阳伯
2023-03-14
问题内容

当我在测试套件中尝试连接到本地MySQL服务器时,它失败并显示以下错误:

OperationalError: (2002, "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)")

但是,我始终可以通过运行命令行mysql程序连接到MySQL 。A ps aux | grep mysql显示服务器正在运行,并 stat /tmp/mysql.sock确认套接字存在。此外,如果在except该异常的子句中打开调试器,则可以使用完全相同的参数可靠地进行连接。

这个问题可以相当可靠地重现,但是似乎不是100%,因为每当我遇到一次蓝月亮时,我的测试套件就可以运行而不会遇到此错误。当我尝试运行sudo dtruss时没有复制。

所有客户端代码都在Python中,尽管我不知道这是如何相关的。

切换为使用主机127.0.0.1会产生错误:

DatabaseError: Can't connect to MySQL server on '127.0.0.1' (61)

问题答案:

MySQL手册的相关部分在这里。我首先要完成列出的调试步骤。

另外,请记住,在这种情况下,localhost和127.0.0.1是不同的:

  • 如果host设置为localhost,则使用套接字或管道。
  • 如果将host设置为127.0.0.1,则客户端将被强制使用TCP / IP。
    因此,例如,你可以检查数据库是否正在侦听TCP连接vi netstat -nlp。它似乎正在侦听TCP连接,因为你说这mysql -h 127.0.0.1很好。要检查是否可以通过套接字连接到数据库,请使用mysql -h localhost

如果以上方法均无济于事,那么你可能需要发布有关MySQL配置,实例化连接的确切方式等的更多详细信息。



 类似资料:
  • 问题内容: 我在的Mac OS X Mountain Lion上安装了MySQL ,但尝试时出现以下错误: 错误2002(HY000):无法通过套接字’/tmp/mysql.sock’连接到本地MySQL服务器(2) 这个错误是什么意思?我该如何解决? 问题答案: 可能是因为MySQL已安装但尚未运行。 要验证它是否正在运行,请打开“活动监视器”,然后在“所有进程”下搜索并确认您看到了进程“ my

  • 问题内容: 我在尝试连接mysql时遇到大问题。当我跑步时: 我有以下错误: 我的确在目录下。 在我有: 并且在我有: 我已经使用重新启动了Apache 但是我仍然有错误。 否则,我不知道这是否相关,但是当我得到时 问题答案: 如果您的文件my.cnf(通常在 / etc / mysql / 文件夹中)已正确配置为 您可以使用以下命令检查mysql是否正在运行: 尝试将您的权限更改为mysql文件

  • 问题内容: 当我尝试连接到mysql时出现以下错误: 有解决此错误的方法吗?背后的原因可能是什么? 问题答案: 您要连接到“ localhost”还是“ 127.0.0.1”?我注意到,当您连接到“ localhost”时,使用套接字连接器,但是当您连接到“ 127.0.0.1”时,则使用TCP / IP连接器。如果套接字连接器未启用/工作,则可以尝试使用“ 127.0.0.1”。

  • 问题内容: 我有一个标准的Rails3环境,RVM 1.2.9,Rails 3.0.5,Ruby 1.9.2p180,MySQL2 Gem 0.2.7,mysql-5.5.10-osx10.6-x86_64 运行创建数据库时出现的错误是: config / database.yml有 确保这是我想念的简单事情。 问题答案: 首先,找到您的套接字文件: 对我来说,这给出了: 然后,在您的添加一行:

  • 问题内容: 上传或提交页面时,我的网站上出现以下错误: mysql_real_escape_string()[function.mysql-real-escape- string]:无法通过套接字’/var/lib/mysql/mysql.sock’连接到本地MySQL服务器(2) 这到底是什么意思? 问题答案: 由于对该错误的调用引发了错误,因此它意味着您没有先调用该错误并将有效的数据库句柄传递

  • 问题内容: 错误2002(HY000):无法通过套接字’/var/run/mysqld/mysqld.sock’(2)连接到本地MySQL服务器 我尝试了在互联网上找到的所有内容,但是无法解决在Ubuntu 11.04上出现的问题。 我尝试了这些事情: 使用手动启动mysqld 使用启动mysqld 检查它是否正在使用并获得结果 在手动创建文件 授予用户权限 试图删除并重新安装,但仍然无法正常工作