我在Ubuntu 12.04 LTS (Precise穿山甲)上安装了LAMP,然后在phpMyAdmin上设置根密码。我忘记密码了,现在无法登录。当我试图通过终端更改密码时,我得到:
错误2002 (HY000):无法通过套接字连接到本地MySQL服务器 ' / var /运行/ mysqld / mysqld。袜子”(2)
我该如何解决这个问题?我无法打开LAMP,卸载它或重新安装它。
我在Ubuntu 12.04 LTS (Precise穿山甲)上安装了LAMP,然后在phpMyAdmin上设置根密码。我忘记密码了,现在无法登录。当我试图通过终端更改密码时,我得到:
错误2002 (HY000):无法通过套接字连接到本地MySQL服务器 ' / var /运行/ mysqld / mysqld。袜子”(2)
我该如何解决这个问题?我无法打开LAMP,卸载它或重新安装它。
当前回答
似乎你的MYSQL停止了。使用下面的命令重新启动MySQL
sudo service mysql start
其他回答
这个答案与在内存较小的机器上更新到MySQL 5.6有关
我在Debian 8 (Jessie)上从MySQL 5.5升级到5.6时遇到了同样的问题。MySQL没有启动(状态显示为active/exited),简单地让服务MySQL启动不起作用,因为我从/var/logs/ MySQL /error.log日志文件中发现:
InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(136019968 bytes) failed; errno 12
Cannot allocate memory for the buffer pool
内存不够:我只有256 MB的RAM。
在MySQL中有一个设置,performance_schema。默认情况下,它在MySQL 5.5中是关闭的。
https://dev.mysql.com/doc/refman/5.5/en/performance-schema-startup-configuration.html
但在MySQL 5.6中,默认是开启的,只需在/etc/mysql/my.cnf文件中添加以下一行并重新启动,就可以工作了。
performance_schema = off
警告:关闭此设置可能会遇到性能问题,但我猜在开发环境中这不会是问题。
此外,这里有一篇文章,可能有助于配置MySQL使用最小内存,配置MySQL使用最小内存(web存档链接,以防原来的链接在未来过期https://web.archive.org/web/20201112041608/http://www.tocker.ca/2014/03/10/configuring-mysql-to-use-minimal-memory.html)。
我看到所有这些答案,但没有一个提供重置密码的选项,没有接受的答案。实际的问题是他忘记了密码,所以他需要重置,而不是像大多数答案所暗示的那样,看看它是否正在运行(安装与否)。
重置密码
遵循以下步骤(如果你真的忘记了密码,这可能会有帮助,你可以随时尝试,即使你现在没有这种情况):
Stop mysql sudo /etc/init.d/mysql stop Or for other distribution versions: sudo /etc/init.d/mysqld stop Start MySQL in safe mode sudo mysqld_safe --skip-grant-tables & Log into MySQL using root mysql -u root Select the MySQL database to use use mysql; Reset the password -- 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 the privileges flush privileges; Restart the server quit Stop and start the server again Ubuntu and Debian: sudo /etc/init.d/mysql stop ... sudo /etc/init.d/mysql start
在CentOS、Fedora和RHEL上:
sudo /etc/init.d/mysqld stop
...
sudo /etc/init.d/mysqld start
使用新密码登录 Mysql -u root -p 输入新密码,再次享受您的服务器,就像什么都没有发生一样
这是从重置MySQL根密码。
我现在遇到了这个问题,并且解决了它。
尽管您安装了mysql-server,但是需要运行守护进程才能使客户机连接到它。
首先检查mysql服务器是否正在运行:
netstat -tap | grep mysql
你应该会看到这样的东西:
$ sudo netstat -tap | grep mysql
tcp 0 0 localhost:mysql *:* LISTEN 6639/mysqld
如果您没有运行服务器,请使用以下命令启动守护进程:
/etc/init.d/mysql restart
如果已经安装,这应该可以解决您的问题。
对我来说,mysql没有运行,所以我用
sudo /etc/init.d/mysql start
检查my.conf (/etc/mysql/my.cnf),看看bind-address是否设置为127.0.0.1。
如果不是,这可能会导致此问题。