我在Ubuntu 12.04 LTS(精确穿山甲)上安装了LAMP,然后在phpMyAdmin上设置了root密码 . 我忘记了密码,现在我无法登录 . 当我尝试通过终端更改密码时,我得到:
ERROR 2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)
我怎样才能解决这个问题?我无法打开LAMP,卸载它或重新安装它 .
我在Ubuntu 12.04 LTS(精确穿山甲)上安装了LAMP,然后在phpMyAdmin上设置了root密码 . 我忘记了密码,现在我无法登录 . 当我尝试通过终端更改密码时,我得到:
ERROR 2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)
我怎样才能解决这个问题?我无法打开LAMP,卸载它或重新安装它 .
30 回答
如果您的安装是最近的,您应该确认您的安装是否是安装服务器...作为mysql-server-5.5 ..也许您只安装了“mysql”..这只是客户端而不是服务器 .
如果您正在使用Amazon EC2,并且您在实例上遇到此问题,那么您只需要:
Amazon EC2没有安装服务器(仅安装了客户端),因此如果需要在您的实例上安装它,那么请尝试
检查是否有效 .
如果您的Linux计算机上安装了XAMPP,请尝试将
my.cnf
文件从/opt/lampp/etc/my.cnf
复制到/etc/my.cnf
.然后,再次运行
mysql -u root
...您现在应该拥有正确的套接字并能够运行MySQL客户端 .确保您有重要数据库的备份,然后 try uninstall MySQL 相关的东西:
然后 install it again :
这对我有用,数据保存 .
如果PHP MySQL显示错误,您可能需要 reinstall PHP MySQL :
I FOUND THE SOLUTION
Before firing 命令:
mysql_secure_installation
第1步:
sudo systemctl stop mariadb
第2步:
sudo systemctl start mariadb
第3步:
mysql_secure_installation
然后它会询问root密码,您可以简单地设置新的root密码. press Enter .
我通过杀死
mysql
进程解决了这个问题:然后我再次启动服务器:
但
start
也有效:然后我以
admin
登录,我完成了 .你的mysql服务器可能没有运行 . 通过在终端中键入
mysql.server start
确保它运行 .打开终端并输入:
MySQL数据库核心客户端和MySQL服务器包都将是相同的版本5.5 . MySQL Client 5.5和MySQL Server 5.5是Ubuntu 14.04中这些软件包的当前“最佳”版本,由软件包维护者决定 .
如果您更愿意安装MySQL Client 5.6和MySQL Server 5.6,您还可以在Ubuntu软件中心找到mysql-client-core-5.6和mysql-server-5.6软件包 . 重要的是客户端和服务器版本号在任何一种情况下都匹配 .
这对我有用 .
它现在有效......
我已按照教程Installing MariaDB 10.1.16 on Mac OS X with Homebrew来解决此问题 .
但是不要忘记杀死或卸载MariaDB的旧安装 .
试试这个:
另外(看看它是否正在运行):
可能只是
my.cnf
文件中的错误配置,在/etc/somewhere
中(取决于Linux distribution) .检查my.cnf中的
"bind-adress"
参数 .否则尝试使用命令:
127.0.0.1
,即localhost端口
3306
的我曾经遇到过这个问题并通过安装
mysql-server
解决了这个问题,所以请确保你已经安装了mysql-server
,而不是mysql-client
或其他东西 .该错误意味着文件
/var/run/mysqld/mysqld.sock
没有安装mysql-server
,那么该文件将不存在 . 但是如果mysql-server
已经安装并且正在运行,那么您需要检查配置文件 .配置文件是:
在
/etc/my.cnf
中,套接字文件配置可能是/tmp/mysql.sock
,在/etc/mysql/my.cnf
中,套接字文件配置可能是/var/run/mysqld/mysqld.sock
. 所以,删除或重命名/etc/mysql/my.cnf
,让mysql使用/etc/my.cnf
,那么问题可能就解决了 .不知何故,MySQL服务器进程没有创建套接字,或者客户端正在寻找错误位置的套接字 .
我的第一个建议是检查MySQL服务器是否正在运行 . 第二个建议可能是MySQL服务器在另一台主机上运行吗?如果是这样,请将
-h <hostname>
标志添加到终端中的MySQL客户端 .如果MySQL确实正在运行并在本地运行,请检查
my.cnf
文件 . 应该有像这样的一条线看看它是否与您在帖子中提到的套接字位置匹配 .
根据经验,我认为最可能出现的情况是你的MySQL服务器根本没有运行,或者没有在你从终端运行MySQL客户端的同一主机上运行 .
我通过执行以下命令解决了这个问题:
如果您使用的是mac并使用brew来安装mysql,只需使用:
在我不得不重新启动 生产环境 服务器后,我刚刚遇到了同样的问题 . 我在DigitalOcean Droplet上运行Debian 8.1(Jessie) .
这就是我为解决我的问题而采取的措施:
检查文件
/var/run/mysqld/mysqld.sock
是否存在 . 如果没有,请手动创建进入touch /var/run/mysqld/mysqld.sock
(这是我必须要做的) .所以MySQL进程可以使用这个文件 . 输入
chown mysql /var/run/mysqld/mysqld.sock
更改所述文件的所有权 .完成'2'后,输入
service mysql restart
或/etc/init.d/mysql restart
重新启动MySQL服务 .完成上述步骤后,我的问题就解决了 . 我很少遇到这个问题,而且可能有更好的方法,所以无论如何都要提供建设性的反馈:) .
我尝试了以下步骤:
以
super user
身份登录或使用sudo
使用gedit打开
/etc/mysql/my.cnf
查找
bind-address
,并将其值更改为数据库服务器主机的IP地址 . 对我来说,这是localhost
或127.0.0.1
保存并关闭文件 .
回到终端并执行
sudo service mysql start
它对我有用 .
这对我有用:
这会创建一个链接 .
在Debian服务器Jessie上,我的工作解决方案就是这样做
以root用户身份
我想每当你得到错误
我建议首先检查你的
mysql
守护程序是否正在运行...大多数情况下它默认不运行 . 你可以通过/etc/init.d/mysqld status
检查一下 .如果它没有运行,那么先启动它:
我打赌它会110%起作用 .
我也遇到了这个问题,但我刚才做了:
它对我有用 .
我有同样的问题 . 经过多次搜索,我没有找到任何答案 .
最后,我检查了
/tmp
目录,其权限是755.我将其权限更改为777,mysqld启动良好,没有任何问题 .在我的情况下,磁盘已满,mysqld无法启动 .
尝试重启mysql服务 .
要么
如果它不识别“停止”命令,那么肯定是磁盘空间 . 您应该在分区mysql中分配一些空间或使磁盘变大 .
检查磁盘空间
我有类似的问题 . mysql无法启动:
如果我禁用apparmor:
问题消失了 . 问题是mysqld试图访问/run/mysqld/mysqld.sock但是apparmor配置文件只给了/var/run/mysqld/mysqld.sock的权限(/ var / run符号链接到/ run,所以这些实际上是相同) . 不确定为什么mysqld没有使用var路径,因为这是在所有配置文件中设置的,但你可以通过将以下内容添加到/etc/apparmor.d/usr.sbin.mysqld来解决问题
根据经验,我说您需要检查服务器是否先运行,然后尝试配置MySQL . 最后一个解决方案是重新安装MySQL .
在我的情况下,默认端口3306正被其他一些进程使用,因此它没有启动 . 我停止了其他服务后做了
sudo service mysql start
,它运行正常 . 顺便说一句,您可以使用类似sudo lsof -Pn -iTCP:3306
的内容来查看谁可能正在使用该端口 .在我的情况下,它通过做一些研发工作:
我可以使用连接到MySQL
但它不适用于
mysql -u root -p
.我在my.cnf中找不到任何
bind-address
. 所以我在my.cnf
中对参数socket=/var/lib/mysql/mysqld.sock
进行了评论,这导致我遇到登录问题 .重新启动服务后,它很顺利:
我遇到过同样的问题 . 如果您的MySQL服务被拒绝,有时会发生这种情况 .
所以你必须开始它:
我看到了所有这些答案,但 none 提供了 reset the password 和 no accepted answer 的选项 . 实际的问题是他的密码,所以他需要重置,而不是看它是否正在运行(安装与否),因为大多数这些答案都意味着 .
重置密码
请按照以下步骤操作(如果您真的忘记了密码,可以提供帮助,即使您目前不在这种情况下也可以随时尝试):
mysql
或者对于其他分发版本:
Ubuntu和Debian:
在CentOS,Fedora和RHEL上:
这取自Reset a MySQL root password .
更新来自@ Daniel的评论如下:
在MySQL 5.7中,mysql.user表字段中的密码字段已被删除,现在字段名称为'authentication_string',因此步骤5应为:
而不是使用localhost:
使用127.0.0.1
(另请注意,-p和mypassword之间没有空格)
请享用 :)