无法通过套接字“/tmp/mysql.sock”连接到本地MySQL服务器(2)
我已经安装了MySQL服务器并试图连接到它,但得到的错误:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
我检查了我的/ tmp目录,并没有mysql.sock。 我无法在任何地方findmysql.sock。 我读过它可能在
/var/lib/mysql/mysql.sock
但我也检查,甚至有没有MySQL目录,只有一些后缀/ lib中的东西。 任何人都可以帮我解决这个问题吗?
尝试运行在命令行mysql.server start
$ mysql.server start
我在更新OS X Yosemite后得到了同样的问题,那么解决方法很简单,检查系统首选项 – > mysql,状态是STOP。 只需重新启动它,它现在可以在我的Mac上正常工作。
对于MAMP
ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
更新:每当我的电脑重新启动,我不得不input这个命令,所以我创build了一个快捷方式。
在terminaltypes中执行以下操作:
~: vi ~/.profile
加
alias ...='source ~/.profile' alias sockit='sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock'
保存。
terminaltypes:
~: ...
来源.profileconfiguration。
现在在terminal,你可以input
~: sockit
以下命令解决了我的问题:
sudo chown -R _mysql:mysql /usr/local/var/mysql sudo mysql.server start
在你的mysqlconfiguration文件里,在/etc/my.cnf
进行下面的修改,然后重新启动mysqld
dameon进程
[client] socket=/var/lib/mysql/mysql.sock
以及检查这个相关的线程
无法通过套接字“/tmp/mysql.sock”连接到本地MySQL服务器
解决了我的问题之后:
检查你的MySQL服务器列在哪里:netstat -nlp如果是列表到TCP然后使用127.0.0.1连接到数据库而不是“localhost”
在这里检查MySQL文档
试试这个对我有效。
sudo /usr/local/mysql/support-files/mysql.server启动
在尝试所有的解决scheme之后,它只能在指定主机后为我工作
mysql -u root -p -h127.0.0.1
当要求密码时
Enter password:
按回车
如果一切都如上所述,它将工作。
如果您在Mac OS X中使用XAMPP,并且已经使用Homebrew安装了MySQL,则可能会遇到此问题。 在XAMPPpipe理器窗口中,进入pipe理服务器并selectMySQL,然后点击configuration并打开configuration文件,在那里你有套接字文件path,把path放在你的MySQL主机configuration中,它应该工作。
这是这样的:
... [client] #password = your_password port = 3306 socket = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock ...
那么,例如在Django中:
... DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "database_name", "USER": "user", "PASSWORD": "password", "HOST": "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock", "PORT": "", } } ...
希望这可以帮助。
对于CentOS来说,init mysql的文件位于这里:
/etc/init.d/mysqld start