Atu*_*tul 245 mysql sockets connect
我尝试连接到mysql时收到以下错误:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
这个错误有解决方案吗?它背后的原因可能是什么?
Jan*_*omä 215
您是否连接到"localhost"或"127.0.0.1"?我注意到当你连接到"localhost"时,会使用套接字连接器,但是当你连接到"127.0.0.1"时,会使用TCP/IP连接器.如果套接字连接器未启用/工作,您可以尝试使用"127.0.0.1".
小智 184
确保您的mysql服务正在运行
service mysqld start
Run Code Online (Sandbox Code Playgroud)
然后,尝试以下之一:
(如果你还没有为mysql设置密码)
mysql -u root
Run Code Online (Sandbox Code Playgroud)
如果你已经设置了密码
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
mar*_*maf 27
如果您的文件my.cnf(通常在etc文件夹中)已正确配置
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 777 /var/lib/mysql/
Run Code Online (Sandbox Code Playgroud)
这解决了我
小智 18
最有可能mysql.sock不存在/var/lib/mysql/.
如果您在其他位置找到相同的文件,则将其符号链接:
例如:我有它 /data/mysql_datadir/mysql.sock
将用户切换到mysql并执行如下所述:
su mysql
ln -s /data/mysql_datadir/mysql.sock /var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题
duh*_*ime 15
如果你是最近的RHEL,你可能需要启动mariadb(一个开源的mysql db)而不是mysql db:
yum remove mysql
yum -y install mariadb-server mariadb
service mariadb start
Run Code Online (Sandbox Code Playgroud)
然后你应该能够以通常的方式访问mysql:
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
Dej*_*jan 13
在我来说,我已经搬到套接字文件到另一个位置,里面/etc/my.cnf
从/var/lib/mysql/mysql.sock到/tmp/mysql.sock
即使重新启动mysqld服务后,我仍然会在尝试连接时看到错误消息.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
问题在于配置客户端的方式.运行诊断实际上会显示正确的套接字路径.例如ps aux | grep mysqld
作品:
mysql -uroot -p -h127.0.0.1
mysql -uroot -p --socket=/tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)
不起作用:
mysql -uroot -p
mysql -uroot -p -hlocalhost
Run Code Online (Sandbox Code Playgroud)
您可以通过在mysql config中的部分下添加相同的套接字行来解决此问题.[client]
VKG*_*KGS 11
检查你的mysqld服务是否正在运行,如果没有运行,启动服务.
如果您的问题仍未解决,请查看/etc/my.cnf并修改如下,其中您会看到以socket.开头的行.在执行此更新之前,请备份该文件.
socket=/var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
改成
socket=/opt/lampp/var/mysql/mysql.sock -u root
Run Code Online (Sandbox Code Playgroud)
min*_*s23 11
只需编辑/etc/my.cnf
添加以下行即可my.cnf
[mysqld]
socket=/var/lib/mysql/mysql.sock
[client]
socket=/var/lib/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
重新启动mysql并再次连接
mysql -u user -p password database -h host;
小智 7
确保你有足够的空间/var.如果Mysql恶魔无法向驱动器写入其他信息,则mysql服务器将无法启动并导致错误Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
考虑使用
expire_logs_days = 10
max_binlog_size = 100M
Run Code Online (Sandbox Code Playgroud)
这将有助于您降低磁盘使用率.
MariaDB是一个社区开发的MySQL分支,已成为许多发行版中MySQL的默认实现.
所以首先你应该开始,
$ sudo systemctl start mariadb
Run Code Online (Sandbox Code Playgroud)
如果这失败了,请尝试,
$ sudo systemctl start mysqld
Run Code Online (Sandbox Code Playgroud)
然后启动mysql,
$ mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
截至今天,在Fedora中,该软件包被命名为mariadb
And.在Ubuntu中它被称为mariadb-server.
因此,如果系统中尚未安装它,则可能必须安装它.
确保您启动了服务器:
mysql.server start
Run Code Online (Sandbox Code Playgroud)
然后与root用户连接:
mysql -uroot
Run Code Online (Sandbox Code Playgroud)
这对我有用:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysqld restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
721229 次 |
| 最近记录: |