我在尝试连接到mysql时遇到了很大的问题.当我跑:
/usr/local/mysql/bin/mysql start
Run Code Online (Sandbox Code Playgroud)
我有以下错误:
Can't connect to local MySQL server through socket '/var/mysql/mysql.sock' (38)
Run Code Online (Sandbox Code Playgroud)
我确实mysql.sock在/var/mysql目录下.
在/etc/my.cnf我有:
[client]
port=3306
socket=/var/mysql/mysql.sock
[mysqld]
port=3306
socket=/var/mysql/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M
Run Code Online (Sandbox Code Playgroud)
在/etc/php.ini我有:
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket = /var/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
我已经重启了apache sudo /opt/local/apache2/bin/apachectl restart
但我仍然有错误.
否则,我不知道这是否相关,但是当mysql_config --sockets我得到时
--socket [/tmp/mysql.sock]
Run Code Online (Sandbox Code Playgroud)
mar*_*maf 213
如果您的文件my.cnf(通常在/ etc/mysql /文件夹中)已正确配置
socket=/var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令检查mysql是否正在运行:
mysqladmin -u root -p status
Run Code Online (Sandbox Code Playgroud)
尝试将您的权限更改为mysql文件夹.如果您在本地工作,您可以尝试:
sudo chmod -R 755 /var/lib/mysql/
Run Code Online (Sandbox Code Playgroud)
这解决了我
Waq*_*qas 89
你确定你安装了mysql以及mysql服务器..
例如,要安装mySql服务器,我将使用yum或apt来安装mysql命令行工具和服务器:
yum -y install mysql mysql-server (or apt-get install mysql mysql-server)
Run Code Online (Sandbox Code Playgroud)
启用MySQL服务:
/sbin/chkconfig mysqld on
Run Code Online (Sandbox Code Playgroud)
启动MySQL服务器:
/sbin/service mysqld start
Run Code Online (Sandbox Code Playgroud)
然后设置MySQL root密码:
mysqladmin -u root password 'new-password' (with the quotes)
Run Code Online (Sandbox Code Playgroud)
我希望它有所帮助.
小智 74
一个对我有用的快速解决方法:尝试在mysql_connect()中使用本地IP地址(127.0.0.1)而不是"localhost".这"迫使"php通过TCP/IP而不是unix套接字连接.
Anu*_*Raj 49
我收到以下错误
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
Run Code Online (Sandbox Code Playgroud)
尝试了几种方法,最后通过以下方式解决了这个问题
sudo gksu gedit /etc/mysql/my.cnf
Run Code Online (Sandbox Code Playgroud)
改性
#bind-address = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
至
bind-address = localhost
Run Code Online (Sandbox Code Playgroud)
并重新启动
sudo /etc/init.d/mysql restart
Run Code Online (Sandbox Code Playgroud)
有效
Zor*_*ayr 24
确保你正在运行mysqld: /etc/init.d/mysql start
Ali*_*emi 18
要防止出现此问题,必须从命令行正常关闭服务器,而不是关闭服务器电源.
shutdown -h now
Run Code Online (Sandbox Code Playgroud)
这将在关闭机器之前停止正在运行的服务.
基于Centos,当您遇到此问题时,再次备份它的另一种方法是移动mysql.sock:
mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak
service mysqld start
Run Code Online (Sandbox Code Playgroud)
重新启动该服务会创建一个名为mqsql.sock的新条目
mat*_*000 12
从这里的许多答案中可以看出,当您启动MySQL服务时,会出现许多可能导致此错误消息的问题.问题是,如果你只是查看相应的日志文件,MySQL通常会告诉你到底出了什么问题.
例如,在Ubuntu上,你应该检查/var/log/syslog.由于许多其他内容也可能会记录到此文件,因此您可能希望使用grep查看mysql消息,并tail仅查看最新消息.总之,这可能看起来像:
grep mysql /var/log/syslog | tail -50
不要盲目地改变你的配置,因为有人说'这对我的系统起作用'.弄清楚你的系统究竟出了什么问题,你会更快地得到更好的结果.
小智 11
另一个解决方法是编辑/etc/my.cnf并在[客户端]部分中包含主机
[client]
#password = your_password
host = 127.0.0.1
port = 3306
socket = /var/run/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
然后重启mysql服务.
此解决方法已在以下位置进行了测试:服务器版本:5.5.25a-log源分发
Dou*_*han 11
当我为我的文件设置cron作业时出现此错误.我将文件的权限更改为777,但它仍然不适合我.最后我得到了解决方案.可能会对其他人有所帮助.
尝试使用此命令:
mysql -h 127.0.0.1 -P 3306 -u root -p
请记住,-h表示主机,-p表示端口.
我有同样的问题,它是由mysql服务器运行时更新mysql驱动程序引起的.我修复它只是重新启动mysql和apache2:
sudo服务mysql停止
sudo服务mysql启动
sudo service apache2 stop
sudo服务apache2启动
就我而言,我使用的是Centos 5.5.我发现问题是因为mysql服务被停止了一些如何.所以我用命令启动了mysql服务:
/etc/init.d/mysqld start
Run Code Online (Sandbox Code Playgroud)
所以..愚蠢的错误.
如果一切正常并且您刚刚开始看到此错误,那么在执行任何其他操作之前,请确保您没有磁盘空间:
df -h
Run Code Online (Sandbox Code Playgroud)
如果创建mysql.sock的卷是100%使用,MySql将无法创建它,这将是此错误的原因.您需要做的就是删除不需要的东西,比如旧的日志文件.
小智 5
sudo service mysql start
Run Code Online (Sandbox Code Playgroud)
这应该对你很好.您可能有可能更改了一些影响mysql配置的命令.
对于这个问题,很多解决方案,但我的情况,我只需要纠正DATE机/服务器(Ubuntu的16.04服务器)。
i)检查服务器的日期并进行更正。
ii)运行 sudo /etc/init.d/mysql restart
那应该开始。
| 归档时间: |
|
| 查看次数: |
1265785 次 |
| 最近记录: |