我收到此错误
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysql.sock' (2)
即使我已经设法通过ubuntu中的命令行启动mysql
mysql stop/waiting
mysql start/running, process 17691
然而,当尝试访问该站点时,我在尝试通过mysql -u root -p
我检查了我的错误日志,我看到了这个
131029 12:53:34 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be remo$
131029 12:53:34 [Note] Plugin 'FEDERATED' is disabled.
131029 12:53:34 InnoDB: The InnoDB memory heap is disabled
131029 12:53:34 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131029 12:53:34 InnoDB: Compressed tables use zlib 1.2.3.4
131029 12:53:34 InnoDB: Initializing buffer pool, size = 26.0G
131029 12:53:36 InnoDB: Completed initialization of buffer pool
131029 12:53:36 InnoDB: highest supported file format is Barracuda.
131029 12:53:38 InnoDB: Waiting for the background threads to start
131029 12:53:39 InnoDB: 5.5.34 started; log sequence number 5146431500
131029 12:53:39 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
131029 12:53:39 [Note] - '0.0.0.0' resolves to '0.0.0.0';
131029 12:53:39 [Note] Server socket created on IP: '0.0.0.0'.
131029 12:53:39 [Note] Event Scheduler: Loaded 0 events
131029 12:53:39 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.5.34-0ubuntu0.12.04.1-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu)
这是我第一次看到这个错误并且我不确定如何解决这个问题,请在这里帮助我。
由于
更新
好的,我尝试了glglgl的解决方案,重启后,我在错误日志中得到以下内容:
131029 13:17:36 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be remo$
131029 13:17:36 [Note] Plugin 'FEDERATED' is disabled.
131029 13:17:36 InnoDB: The InnoDB memory heap is disabled
131029 13:17:36 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131029 13:17:36 InnoDB: Compressed tables use zlib 1.2.3.4
131029 13:17:36 InnoDB: Initializing buffer pool, size = 26.0G
131029 13:17:38 InnoDB: Completed initialization of buffer pool
131029 13:17:38 InnoDB: highest supported file format is Barracuda.
131029 13:17:40 InnoDB: Waiting for the background threads to start
131029 13:17:41 InnoDB: 5.5.34 started; log sequence number 5146431500
131029 13:17:41 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
131029 13:17:41 [Note] - '127.0.0.1' resolves to '127.0.0.1';
131029 13:17:41 [Note] Server socket created on IP: '127.0.0.1'.
131029 13:17:41 [Note] Event Scheduler: Loaded 0 events
131029 13:17:41 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.5.34-0ubuntu0.12.04.1-log' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu)
答案 0 :(得分:48)
我的问题已经解决,检查进程是否在Ubuntu 12.04上运行
ps ax | grep mysql
然后答案是它没有运行,所以我做了
sudo service mysql start
或尝试
sudo /etc/init.d/mysql start
答案 1 :(得分:12)
当我在我的系统上安装xampp时遇到了同样的问题。 mysql服务器查找/var/run/mysqld/mysqld.sock但是mysql.sock文件在xampp文件夹中,所以我用了
find / -name '*.sock'
找到mysql.sock文件,然后使用
ln -s <the file location> /var/run/mysqld/mysqld.sock
获取* .sock文件的链接然后尝试了mysql并且它运行没有错误。 希望这可以解决你的问题。
如果目录不存在,请记住创建该目录。
答案 2 :(得分:10)
应将客户端设置为与服务器设置一致。
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
答案 3 :(得分:9)
这花了我很多年才弄清楚,但你可以试试吗 -
1 - 更新和升级
sudo apt-get update
sudo apt-get upgrade
2 - 清除MySQL服务器和客户端(如果已安装)。
sudo apt-get purge mysql-server mysql-client
3 - 安装MySQL服务器和客户端
sudo apt-get install mysql-server mysql-client
4 - 测试MySQL
mysql -u root -p
> enter root password
***应该在/var/run/mysqld/mysql.sock中找不到套接字
4 - 使用nano of vi配置mysqld.cnf
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
将绑定地址从127.0.0.1更改为localhost
bind-address = localhost
**写入和退出
5 - 重启MySQL
sudo /etc/init.d/mysql restart
6 - 检查mysql
mysql -u root -p
> enter root password
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.13-0ubuntu0.16.04.2 (Ubuntu)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
你现在应该进入mysql cli。
希望这有帮助
Code.Ph0y
答案 4 :(得分:4)
最近我在我的mysql中遇到了这个错误
ERROR 2002 (HY000)
:
无法通过套接字
连接到本地MySQL服务器&#39; /var/lib/mysql/mysql.sock' (111)
因为我忘了开始我的mariadb。 只需在你的终端上输入这个命令。
systemctl start mariadb.service
答案 5 :(得分:3)
我用
删除了与mysql连接的所有内容sudo apt-get remove --purge --auto-remove mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server-5.7
sudo rm -r / etc / mysql * / var / lib / mysql * / var / log / mysql *
然后再次使用
重新安装sudo apt-get update
sudo apt-get install mysql-server
然后用
启动它mysql -u root -p
后跟密码
答案 6 :(得分:3)
这是一个提出不同解决方案的旧版本,但它们都不适用于我。我添加了这个答案,希望它会帮助那些在我身上挣扎一段时间的人。
我已检查了所有现有答案和所有现有解决方案,但对我来说问题是var/run/mysql
文件夹上的用户权限不正确。
我已检查该文件夹的用户权限,并将其设置为root
。一旦我改为mysql:mysql
,问题就消失了。
因此请输入/var/run/mysqld
并将用户权限更改为:
chown -R mysql:mysql .
答案 7 :(得分:3)
您可能缺少mysql-server。使用
安装它sudo apt-get install mysql-server
答案 8 :(得分:2)
这对我有用
sudo /etc/init.d/mysql start
首先我试过这个,但我不明白为什么它不会这样做
sudo service mysql start
答案 9 :(得分:2)
我的系统也出现了同样的错误。我不得不删除mysql-server并重新安装它。不是其他方式。尝试运行这些命令:
答案 10 :(得分:2)
关于Debian 这对我来说是一个绑定问题,因此将bind-address
从localhost
更改为0.0.0.0会有所帮助。
vim /etc/mysql/my.cnf
bind-address = 0.0.0.0
答案 11 :(得分:2)
我已关注 Wellington Lorindo 发帖。 我的问题解决了。
<强> 步骤 强> 1.在终端中运行
ps ax | grep mysql
结果是
11200? Ssl 0:01 / usr / sbin / mysqld
11514 pts / 0 S + 0:00 grep mysql
<强> 步骤 强> 2.再次输入
sudo service mysql start
问题解决了。
感谢 Wellington Lorindo
答案 12 :(得分:2)
改变my.cnf后我遇到了同样的问题。我接下来的步骤解决了这个问题。
首先:找到error.log的位置,看看'my.conf'。
第二:我查了一下error.log,我发现了下一次按摩,
“未知变量'默认-......'” ..... “mysqld_safe从/ var / lib / mysql启动mysqld darmon”
第三:我将my.conf重置为默认值,然后重新启动,此问题已解决。
我希望这会有所帮助。
答案 13 :(得分:1)
您不需要重新安装MySQL服务器 我遇到了同样的问题,但是我已经通过运行这些命令解决了该问题。
1 ps -A|grep mysql
2 sudo pkill mysql
3 ps -A|grep mysqld
4 sudo pkill mysqld
5 sudo service mysql restart
6 mysql -u root -p
答案 14 :(得分:1)
如果修改max_connections
文件中的my.cnf
,则还有可能出现此特定错误。
我也遇到了同样的错误,它不允许我登录到MySQL服务器。在我的情况下问题是,我必须增加
中的max_connections
大小
/etc/mysql/my.cnf
到
set-variable = max_connections = 5000
由于这个原因,第二天我盯着MySQL服务器时就抛出了这个错误
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
从set-variable = max_connections = 5000
文件中删除my.conf
段就行了。在使用命令后删除该特定段后。 MySQL服务器像以前一样启动并运行。
sudo /etc/init.d/mysql start
答案 15 :(得分:1)
我也遇到了这个问题。
mysql -u root -p
输入密码:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
然后我发现原因是selinux
正在执行,我禁用它然后重新启动mysqld
,它有效,希望有帮助。
答案 16 :(得分:1)
在linux终端中,我运行以下步骤,他们帮我解决了
1.首先列出所有已安装的mysql软件包
sudo dpkg -l | grep mysql
2.使用列出的命令
删除列出的包 sudo apt-get --purge autoremove <package name>
3.重新安装mysql服务器
sudo apt-get install mysql-server
这对我有用,希望这对你有用。
或者尝试
sudo apt-get remove --purge mysql-\
然后重新安装
sudo apt-get install mysql-server mysql-client
答案 17 :(得分:1)
我遇到了问题。
这个过程对我有用:
确保在删除过程中选择否删除数据库。
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
// this part is optional
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() { ... });
答案 18 :(得分:0)
ERROR 2002(HY000):无法通过套接字'/var/run/mysqld/mysql.sock'(2)连接到本地MySQL服务器
当我使用brew安装后尝试登录MYSQL时,出现上述错误,我正在运行MacO,哦,是的,我还注意到mysql正在运行,我已经重启了很多次,没有运气解决问题,并且删除了mysql和大量重新安装!
这么简单,我可以打自己,不,但实际上,我通过CD将其解决到包含mysqlx.sock和mysql.sock.lock文件的temp文件夹中,我只删除了一个sock.lock文件,这解决了我的问题这样做之后,我可以使用mysql -uroot命令登录mysql。这是我使用的命令。 (这个问题使我挂了一段时间)
~ cd /tmp
/tmp ls
(这将列出temp文件夹中的所有袜子文件,输出如下所示)
com.apple.launchd.8AgGW2s9Bb mysql.sock.lock
com.apple.launchd.batxrSISAJ mysqlx.sock
com.apple.launchd.cRCaxtT41m mysqlx.sock.lock
com.google.Keystone powerlog
然后运行
rm -R mysql.sock.lock
(使用上面的命令从/ tmp目录中删除sock.lock文件,这解决了我的问题)
希望这会有所帮助:)
答案 19 :(得分:0)
我遇到了同样的问题并尝试了以下所有解决方案:
sudo apt-get autoremove mysql-server
但不幸的是,它在ubuntu 16.04上对我不起作用。要卸载正确的软件包,您需要:
sudo apt-get remove mysql-
当您尝试使用tab
命令自动完成时,它将列出以下包:
mysql-client mysql-client-core-5.7 mysql-server mysql-server-core-5.7 mysql-workbench mythes-en-us
mysql-client-5.7 mysql-common mysql-server-5.7 mysql-utilities mysql-workbench-data
显然选择mysql-server-core-5.7
所以它会是:
sudo apt-get remove mysql-server-core-5.7
现在您可以使用johnny's answer中的这些命令卸载所有mysql并重新安装:
sudo apt-get remove --purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get install mysql-server mysql-client
现在我解决了它,错误是GONE。
答案 20 :(得分:0)
安装或更新MySQL后,它不会要求您创建root密码。在这种情况下:您将拥有名为“ debian.cnf ”的文件路径: / etc / mysql 。您将找到用户名和密码,使用该凭据登录并创建新的用户和密码。
答案 21 :(得分:0)
尝试一下:
sudo dpkg-reconfigure mysql-server-{version_number}
version_number
应该是mysql版本号。例如
sudo dpkg-reconfigure mysql-server-5.6
然后像这样访问mysql:
mysql -u root -p
答案 22 :(得分:0)
我使用命令cd /var/lib/mysql
检查了mysql-error.log
文件tail -n 200 mysql-error.log
目录中[ERROR]
目录中的mysql日志,并确定( /etc/init.d/mysql start
)是 my.ini 中的两个错误变量,删除它们后,我可以使用命令service mysql start
或{{1}} < / p>
答案 23 :(得分:0)
如果你仔细观察,你会发现不同之处:
/var/run/mysqld/mysqld.sock
/var/run/mysqld/mysql.sock
你必须调整其中一个。
答案 24 :(得分:0)
我也遇到了这个错误,需要将近3个小时才能找到它。
首先,尝试回忆一下您对conf文件所做的更改,然后撤消更改并保存文件并启动mysql。如果要对conf文件进行任何更改,请停止mysql服务器,然后更改所需的值并重新启动mysql。
由于对conf文件所做的更改不正确(错误的关键字或分配的值错误),会发生此错误。大多数情况下,即使重新启动运行服务器的计算机,也会发生此错误,因为服务器已停止,在这种情况下,启动mysql服务器。
答案 25 :(得分:0)
由于my.cnf文件中进行了一些不必要的更改,因此会出现此问题。
尝试使用一个工作的mysql服务器my.cnf文件来区分/etc/mysql/my.cnf
。
我刚用新的my.cnf文件替换了/etc/mysql/my.cnf
文件,这对我有用。
答案 26 :(得分:0)
请注意,在使用apt-get upgrade
升级我的Ubuntu 14.04发行版后,我遇到了这个问题。我必须完全清除mysql-server
和mysql-client
并重新安装以解决此问题。
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get purge mysql-server mysql-client
sudo apt-get install mysql-server mysql-client
希望这有帮助。
答案 27 :(得分:0)
在我的情况下,问题是我在my.cnf中添加了“default-character-set = utf8”,这正在破坏文件。而是将该行更改为“character_set_server = utf8”。这应该解决它,希望这会有所帮助。
答案 28 :(得分:0)
简单: 运行这些代码:::
1:: ls -lart/var/run/my*
2::mkdir /var/run/mysqld
3::touch /var/run/mysqld/mysqld.sock
4:ls -lart /var/run/mysqld
5::chown -R mysql /var/run/mysqld
6::ls -lart /var/run/mysqld
REstart your mysql server
然后最后输入mysql -u root或mysql -u root -p并按回车键。感谢
答案 29 :(得分:0)
如果问题与您有关,这将提供替代解决方案。如果您的磁盘驱动器已满,则MYSQL服务器(以及大多数其他程序)无法启动。删除文件和文件夹以允许Mysql-server启动。
答案 30 :(得分:0)
确保/ etc /中my.cnf文件中的bind address配置选项与localhost或virtual serve ip address相同。 另外检查以确保用于创建套接字文件的目录已经明确指定。
答案 31 :(得分:0)
两个主要原因:
1)没有安装mysql-server!你必须安装它(mysql-server而不是mysql-client)并运行它。
2)默认安装并运行。因此,不可能通过Xampp或Lampp再次运行它。你必须阻止它: sudo服务mysql停止
然后你可以通过Xampp启动它。 使用此代码可以检查它是否正在运行: sudo netstat -tap | grep mysql
如果你看到这样的结果: tcp 0 0 localhost:mysql : LISTEN 1043 / mysqld
这意味着它正常运行。
答案 32 :(得分:-1)
你必须这样做:
ls -lart /var/run/mysqld/
mkdir /var/run/mysqld
touch /var/run/mysqld/myssqld.sock
ls -lart /var/run/mysqld/
chown -R mysql /var/run/mysqld/
ls -lart /var/run/mysqld/
/etc/init.d/mysql restart
然后像这样访问:
mysql -u root -p
mysql> show databases;
答案 33 :(得分:-4)
rm -rf mysql.sock
service mysqld restart