我在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,卸载它或重新安装它。
当前回答
我认为当你得到错误的时候
ERROR 2002 (HY000):无法通过套接字/var/lib/ MySQL / MySQL .sock连接到本地MySQL服务器
我建议你先检查一下mysql守护进程是否在运行…大多数情况下,默认情况下它不会运行。你可以通过/etc/init.检查d / mysqld的地位。
如果它没有运行,那么先启动它:
.../etc/init.d/mysqld start.
我打赌它会110%有效。
其他回答
当我停止mysql服务时,我得到了完全相同的错误,这里如何解决它:通过(重新)启动mysql使用这些命令:
sudo systemctl start mysql
or
sudo systemctl restart mysql
解决方案1 清除(或删除如果你想保留数据库)任何mysql包,重新重复安装:
sudo apt purge "mysql*"
-Autoremove包
sudo apt autoremove
-停止apparmor服务
sudo systemctl stop apparmor
-让apparmor放弃它的配置文件(我以为用stop就够了,但对我来说不是。systemctl不起作用)
sudo service apparmor teardown
重新安装mysql服务器
sudo apt install mysql-server
安装apparmor-utils,在apparmor中为mysql创建一个允许mysql运行的配置文件
sudo apt install apparmor-utils
检查mysql-server的状态(必须是Active(running))
sudo systemctl status mysql
在apparmor中生成mysql的配置文件
sudo aa-genprof mysql
在其他终端运行mysql(输入root密码)
mysql -u root -p
当apparmor在另一个终端生成配置文件时,在MySQL中执行-do操作
创建数据库中的食物
-切换到另一个终端,按“s”(提示说这是“扫描”)
-对你认为合适的apparmor的政策说“是”(我猜所有的mysql),说“是”按“a”允许
-按“f”完成apparmor配置文件
-重启apparmor服务
sudo systemctl start apparmor
检查一下你是否可以在其他终端上使用mysql
Mysql>exit
mysql -u root -p
如果一切正常,您可以从命令行使用mysql。
你检查过LAMPP是否在运行吗?
sudo bash <path>/lampp start
对我来说,路径就是
sudo bash /opt/lampp/lampp start
令人惊讶的是,这个问题的另一个原因是删除了/var/log/mariadb文件夹 这是我的情况后,我删除了这个日志文件夹。创建完成后,错误消失了。
在我的情况下,我不能访问mysql,经过3天的研究,我有一个解决方案。这是一个完美的解决方案,因为我已经搜索了/var/run/mysqld/mysqld.我和袜子没有找到文件夹。可以在putty上执行以下命令。
sudo mkdir /var/run/mysqld/
sudo chown -R mysql:mysql /var/log/mysql
sudo mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --socket=/var/run/mysqld/mysqld.sock
sudo /etc/init.d/mysql restart
你会节省宝贵的时间。