我得到这个错误
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
访问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)
这是我第一次看到这个错误,我不确定如何解决这个问题,请在这里帮我一下。
谢谢
UPDATE
好吧,我试过glglgl的解决scheme,重新启动后,我在错误日志中得到以下内容:
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)
我的问题解决了检查过程是否在Ubuntu 12.04上运行
ps ax | grep mysql
那么答案就是它没有运行,所以我做了
sudo service mysql start
或者试试
sudo /etc/init.d/mysql start
首先请确认安装了mysql-server。 当安装mysql-server时,我有同样的错误,但以某种方式损坏。 我完全卸载mysql并重新安装它诀窍。
sudo apt-get remove --purge mysql* sudo apt-get autoremove sudo apt-get autoclean sudo apt-get install mysql-server mysql-client
我在我的系统上安装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,它运行没有错误。 希望这可以解决你的问题。
请记住,如果该目录不存在,请创建该目录。
客户端应该与服务器设置一致。
[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
这花了我很长时间才弄清楚,但你可以尝试相同的 –
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 – 用vi的nano配置mysqld.cnf
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
将bind-address从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
最近我遇到了这个错误在我的mysql ERROR 2002 (HY000)
:
无法通过套接字连接到本地MySQL服务器
'/var/lib/mysql/mysql.sock'(111)
因为我忘记开始我的mariadb。 只要在你的终端上输入这个命令。
systemctl start mariadb.service
改变my.cnf后,我遇到了同样的问题。 我解决了这个问题的后续步骤。
首先:找到error.log的位置,看看'my.conf'。
第二:我抬头看了error.log,我发现下一次按摩,
“未知变量”default -……'“”“mysqld_safe从/ var / lib / mysql启动mysqld darmon”
第三:我将my.conf重置为默认值,然后重新启动,此问题已解决。
我希望这有帮助。
我已经按照惠灵顿Lorindo张贴。 我的问题解决了。
步骤 1.在终端中运行
ps ax | grep mysql
结果是
11200? Ssl 0:01 / usr / sbin / mysqld
11514 pts / 0 S + 0:00 grep mysql
步骤 2.再次键入此
sudo服务mysql启动
问题解决了。
谢谢惠灵顿Lorindo
你可能会错过mysql-server。 安装使用
sudo apt-get install mysql-server
同样的错误也发生在我的系统中。 我不得不删除MySQL服务器并重新安装它。 没有其他的方法。 尝试运行这些命令它工作:
这对我工作
sudo /etc/init.d/mysql start
首先我试过这个,但我不明白为什么它不能这样工作
sudo service mysql start
这是一个不同的解决方案提出的旧脚步,但没有一个为我工作。 我正在添加这个答案,希望能帮助一个和我一起奋斗一段时间的人。
我已经检查了所有现有的答案和所有现有的解决方案,但对我来说,这个问题是在var/run/mysql
文件夹上的不正确的用户权限。
我检查了该文件夹的用户权限,并将其设置为root
。 一旦我改变到mysql:mysql
的问题已经没有了。
所以进入/var/run/mysqld
并将用户权限更改为:
chown -R mysql:mysql .
我有这个问题。
这个过程为我工作:
sudo apt-get remove --purge mysql* sudo apt-get autoremove sudo apt-get autoclean sudo apt-get install mysql-server mysql-client
确保在删除过程中选择不删除数据库。
我也遇到了这个问题。 mysql -u root -p
输入密码: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
然后我找到原因是我的selinux
正在执行,我禁用它,然后重新启动mysqld
,它的作品,希望有帮助。
如果修改my.cnf
文件中的max_connections
,还有另一个机会得到这个特定的错误。
我也遇到了同样的错误,没有让我登录到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)
从my.conf
文件中删除set-variable = max_connections = 5000
段的技巧。 在删除了特定的段之后,使用了下面的命令 。 MySQL服务器启动并像以前一样运行。
sudo /etc/init.d/mysql start
在Debian上,这对我来说是一个绑定问题,所以帮助将bind-address
从localhost
更改为0.0.0.0。
vim /etc/mysql/my.cnf
bind-address = 0.0.0.0
如果你仔细看,你会看到不同之处:
/var/run/mysqld/mysqld.sock
/var/run/mysqld/mysql.sock
你必须调整一个或另一个。
两个主要原因:
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
这意味着它运行正常。
请确保/ etc /中的my.cnf文件中的绑定地址配置选项与localhost或虚拟服务器的IP地址相同。 再加上检查以确保用于创建套接字文件的目录已经被很好地指定。
如果问题与您有关,这将提供一个替代解决方案。 如果您的磁盘驱动器已满,则MYSQL服务器(以及大多数其他程序)无法启动。 删除文件和文件夹以允许Mysql服务器启动。
简单:运行这些代码:::
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并按回车键。 谢谢
在我的情况下,问题是我已经添加了“default-character-set = utf8”my.cnf,这是破坏文件。 改为“character_set_server = utf8”。 这应该解决它,希望这有助于。
请注意,在使用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
希望这可以帮助。
由于在my.cnf文件中进行了一些不必要的更改,将会发生此问题。 尝试将/etc/mysql/my.cnf与正在运行的mysql服务器my.cnf文件之一区/etc/mysql/my.cnf
来。
我刚刚用新的my.cnf文件替换了/etc/mysql/my.cnf文件,这对我/etc/mysql/my.cnf
。
我也遇到了这个错误,花了差不多3个小时才找到它。
首先,试着回忆一下你对你的conf文件所做的修改,然后撤消修改并保存文件并启动mysql。 如果您想对conf文件进行任何更改,请停止mysql服务器,然后更改所需的值并重新启动mysql。
发生此错误的原因是对conf文件进行了错误(错误的关键字或赋值错误)更改。 大多数情况下,即使您重新启动运行服务器的计算机,也会发生此错误,因为服务器已停止,在这种情况下,请启动mysql服务器。
我有同样的问题,并试图在这里发布的所有解决方案如:
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
现在你可以卸载所有的MySQL,并使用johnny的这个命令重新安装:
sudo apt-get remove --purge mysql* sudo apt-get autoremove sudo apt-get autoclean sudo apt-get install mysql-server mysql-client
现在我解决了它,错误是无效的。
你必须这样做:
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;
rm -rf mysql.sock
服务mysqld重启