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

rub*_*fee 15 mysql macos ruby-on-rails

运行时rake db:migrate,我收到此错误:

Mysql2::Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Run Code Online (Sandbox Code Playgroud)

我在这里查看了其他人的问题,他们的解决方案都没有帮助我,例如:

解决方案一

mysql.server start
Run Code Online (Sandbox Code Playgroud)

收益:

Starting MySQL
Run Code Online (Sandbox Code Playgroud)

.错误!服务器退出而不更新PID文件(/usr/local/var/mysql/something.pid).

解决方案二

mysqladmin variables | grep socket
Run Code Online (Sandbox Code Playgroud)

收益:

error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'

Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
Run Code Online (Sandbox Code Playgroud)

进一步说明: 我尝试使用自制程序重新安装mysql,这是成功的,我仍然收到相同的错误:

Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Run Code Online (Sandbox Code Playgroud)

rub*_*fee 19

我解决了!

首先,去 database.yml

更改host: localhosthost: 127.0.0.1

而已!

编辑:这暂时有效,但是当我今天重新启动计算机时,它开始抛出相同的错误.修复是从网站上安装mysql,然后我的应用程序可以再次成功连接到mysql.


小智 8

env\xef\xbc\x9arails5 mysql5.7.32

\n

作为补充,我也遇到了这个问题'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)',但是错误的原因是socket文件引起的

\n

数据库.yml

\n
default: &default\n  socket: /tmp/mysql.sock\n
Run Code Online (Sandbox Code Playgroud)\n

mysql -uroot -p然后登录mysqlshow variables like 'socket';

\n
+---------------+-----------------------------+\n| Variable_name | Value                       |\n+---------------+-----------------------------+\n| socket        | /var/run/mysqld/mysqld.sock |\n+---------------+-----------------------------+\n
Run Code Online (Sandbox Code Playgroud)\n

所以更改database.yml

\n
default: &default\n  socket: /var/run/mysqld/mysqld.sock # The line can also be deleted\n
Run Code Online (Sandbox Code Playgroud)\n