错误2002(HY000):Can';t通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock';(2)
我安装在(精确穿山甲),然后设置根密码。我忘了密码,现在无法登录。当我试图通过终端更改密码时,我得到: 错误2002(HY000):无法通过套接字连接到本地MySQL服务器 “/var/run/mysqld/mysqld.sock”(2)错误2002(HY000):Can';t通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock';(2),mysql,phpmyadmin,lamp,forgot-password,mysql-error-2002,Mysql,Phpmyadmin,Lamp,Forgot Password,Mysql Error 2002,我安装在(精确穿山甲),然后设置根密码。我忘了密码,现在无法登录。当我试图通过终端更改密码时,我得到: 错误2002(HY000):无法通过套接字连接到本地MySQL服务器 “/var/run/mysqld/mysqld.sock”(2) 我怎样才能解决这个问题?我无法打开LAMP、卸载或重新安装它。不知何故,MySQL服务器进程没有创建套接字,或者客户端在错误的位置查找套接字 我的第一个建议是检查MySQL服务器是否正在运行。第二个建议可能是,MySQL服务器是否在另一台主机上运行?如果是这样
我怎样才能解决这个问题?我无法打开LAMP、卸载或重新安装它。不知何故,MySQL服务器进程没有创建套接字,或者客户端在错误的位置查找套接字 我的第一个建议是检查MySQL服务器是否正在运行。第二个建议可能是,MySQL服务器是否在另一台主机上运行?如果是这样,请将
-h
标志添加到终端中的MySQL客户端
如果MySQL确实在运行,并且在本地运行,请检查您的my.cnf
文件。应该有这样一条线
socket = /var/run/mysqld/mysqld.sock
看看它是否与您在帖子中提到的套接字位置匹配
根据经验,我认为最有可能的情况是您的MySQL服务器根本没有运行,或者与您从终端运行MySQL客户端的主机不在同一台主机上运行。尝试以下方法:
mysql -h 127.0.0.1 -P 3306 -u root -p <database>
可能这只是
my.cnf
文件中的一个错误配置,在/etc/where
(取决于具体情况)。我也遇到了类似的问题。mysql不会启动:
sudo service mysql start
start: Job failed to start
如果我禁用了apparmor:
sudo aa-complain /etc/apparmor.d/*
问题消失了。问题是mysqld试图访问/run/mysqld/mysqld.sock,但apparmor配置文件只授予/var/run/mysqld/mysqld.sock权限(/var/run与/run是符号链接的,所以它们实际上是相同的)。不确定mysqld为什么不使用var路径,因为所有配置文件中都设置了var路径,但您可以通过将以下内容添加到/etc/apparmor.d/usr.sbin.mysqld中来解决此问题
/run/mysqld/mysqld.pid rw,
/run/mysqld/mysqld.sock rw,
我尝试了以下步骤:
/etc/mysql/my.cnf
绑定地址
,并将其值更改为数据库服务器主机的IP地址。对我来说,这是localhost
或127.0.0.1
sudo服务mysql start
根据经验,我认为您需要先检查服务器是否正在运行,然后再尝试配置MySQL。最后一个解决方案是重新安装MySQL。如果您是最近安装的,您应该确认您的安装是否是安装服务器。。。作为mysql-server-5.5。。也许你只安装了“mysql”。。这是唯一的客户端而不是服务器。我曾经遇到过这个问题,并通过安装
mysql服务器解决了它,因此请确保您安装了mysql服务器,而不是mysql客户端或其他什么
该错误意味着文件/var/run/mysqld/mysqld.sock
不存在,如果未安装mysql服务器
,则该文件将不存在。因此,在这种情况下,请使用
sudo apt-get install mysql-server
但是如果mysql服务器已经安装并且正在运行,那么您需要检查配置文件
配置文件包括:
/etc/my.cnf
/etc/mysql/my.cnf
/var/lib/mysql/my.cnf
在/etc/my.cnf
中,套接字文件配置可能是/tmp/mysql.sock
,在/etc/mysql/my.cnf
中,套接字文件配置可能是/var/run/mysqld/mysqld.sock
。因此,删除或重命名/etc/mysql/my.cnf
,让mysql使用/etc/my.cnf
,然后问题就可以解决了。在我的情况下,磁盘已满,mysqld无法再启动
尝试重新启动mysql服务
> service mysql restart
或
如果它不识别stop
命令,那么肯定是磁盘空间。您应该在分配的分区mysql
中留出一些空间,或者使磁盘更大
检查磁盘空间
> df -h
如果您已在Linux计算机上安装,请尝试将my.cnf
文件从/opt/lampp/etc/my.cnf
复制到/etc/my.cnf
然后,再次运行mysql-u root
。。。您现在应该有了正确的套接字,并且能够运行MySQL客户端。检查my.cnf中的“bind address”
参数
否则请尝试使用以下命令:
mysql -h 127.0.0.1 -P 3306 -u root -p
- -h表示主机
127.0.0.1
,即本地主机
- -p(注意-p为大写)表示端口
3306
,即MySQL的默认端口
在我的例子中,默认端口3306正被其他进程使用,因此它没有启动。在我停止了另一个服务并启动了sudo服务mysql
之后,它工作得很好。顺便说一句,您可以使用sudo lsof-Pn-iTCP:3306之类的工具查看谁可能正在使用该端口。我也遇到了这个问题,但我只是:
sudo service mysql restart
它对我有效。我通过执行以下命令修复了此问题:
mysql.server start
如果您在mac上使用brew安装mysql,只需使用:
brew services start mysql
我想每当你出错的时候
错误2002(HY000):无法通过套接字“/var/lib/MySQL/MySQL.sock”连接到本地MySQL服务器
我建议首先检查您的mysql
守护进程是否正在运行。。。大多数情况下,默认情况下它不会运行。您可以通过/etc/init.d/mysqld status
检查它
如果它没有运行,则首先启动它:
.../etc/init.d/mysqld start.
我打赌它会有110%的效果。检查您是否拥有正确的权限:
sudo chmod 755 /var/lib/mysql/mysql
我也有同样的问题,这对我很有效。这样做之后,我就可以启动MySQL了。在我的例子中,它通过做一些研发工作来工作:
我可以使用
root-debian#mysql -h 127.0.0.1 -u root -p
但是它不适用于mysql-uroot-p
我在my.cnf中未找到任何绑定地址。因此我在my.cnf
sudo chmod 755 /var/lib/mysql/mysql
root-debian#mysql -h 127.0.0.1 -u root -p
root@debian:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.19 MySQL Community Server (GPL)
ps -ef | grep mysql
kill [the id]
sudo /etc/init.d/mysql restart
sudo /etc/init.d/mysql start
apt-get remove --purge mysql\*
apt-get install mysql-server mysql-client
apt-get install php5-fpm php5-mysql
sudo apt-get purge mysql-client-core-5.6
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get install mysql-client-core-5.5
sudo apt-get install mysql-server
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
service mysql restart
mysql -u myuser -pmypassword -h localhost mydatabase
mysql -u myuser -pmypassword -h 127.0.0.1 mydatabase
sudo yum install mysql-server
sudo service mysqld restart
mysql -u root -p
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysqld stop
sudo mysqld_safe --skip-grant-tables &
mysql -u root
use mysql;
-- MySQL version < 5.7
update user set password=PASSWORD("mynewpassword") where User='root';
-- MySQL 5.7, mysql.user table "password" field -> "authentication_string"
update user set authentication_string=password('mynewpassword') where user='root';
flush privileges;
quit
sudo /etc/init.d/mysql stop
...
sudo /etc/init.d/mysql start
sudo /etc/init.d/mysqld stop
...
sudo /etc/init.d/mysqld start
mysql -u root -p
service mysql restart
service mysql reload
$ sudo service mysql start
$ sudo mysql -u root -p (put user password if required )
sudo service mysql start