我的 MySQL 安装已损坏。如何彻底重新配置它?

我的 MySQL 安装已损坏。如何彻底重新配置它?

以下是我已执行的命令。

$ sudo service mysql start
mysql start/running

$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

$ aptitude search mysql |grep ^i
i   libapache2-mod-auth-mysql       - Module Apache 2 pour l'authentification vi
i   libdbd-mysql-perl               - Perl5 database interface to the MySQL data
i   libmysqlclient16                - MySQL database client library             
i   mysql-client-5.1                - MySQL database client binaries            
i   mysql-client-core-5.1           - MySQL database core client binaries       
i   mysql-common                    - MySQL database common files, e.g. /etc/mys
i   mysql-server-5.1                - MySQL database server binaries and system 
i   mysql-server-core-5.1           - MySQL database server binaries            
i   php5-mysql                      - MySQL module for php5                     

答案1

重新安装之前,请检查 /var/log/mysql 中的日志文件,这些文件可能包含有关 mysql 无法正常工作的原因的线索。如果没有日志,则可能未在您的配置中启用日志记录到文件:配置 Mysql 错误日志

要重新安装任何软件包,请使用以下方法检查已安装的版本

dpkg -l|grep mysql-server

然后对于版本 5.7 使用

sudo apt-get install mysql-server-5.7 --reinstall

如果这不允许您重新配置您可以使用的包

sudo dpkg-reconfigure mysql-server-5.7

答案2

错误 2002 (HY000):无法通过套接字“/tmp/mysql.sock”连接到本地 MySQL 服务器 (2)

在 MySQL 安装中,我们可以指定用于本地连接的套接字的位置。在进行更新时,经常会看到错误“无法通过套接字连接到本地 MySQL 服务器”。让我们看看如何解决这个问题。

错误看起来是这样的:

Mysql-u root-p
Enter password:
ERROR 2002 (HY000): Can not connect to local MySQL server-through socket '/ tmp / mysql.sock' (2)

通过它ps我们可以看到是否通过参数指定以及它在哪里:

# ps -fea | grep mysqld
mysql    17661 14003  1 Feb19 ?        00:24:59 /usr/local/mysql-percona/libexec/mysqld --basedir=/usr/local/mysql-percona --datadir=/var/data/mysql/datadir/data --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log
root     23790  7840  0 09:25 pts/0    00:00:00 grep mysqld

在这种情况下,我们看到的是/var/lib/mysql/mysql.sock。如果没有找到参数,则应查看的 mysqld 部分以/etc/my.cnf查找参数:

grep socket /etc/my.cnf
socket=/var/lib/mysql/mysql.sock

如果我们知道它在哪里,我们需要修改相同的文件(/etc/my.cnf)并添加参数部分套接字客户端:

[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

答案3

对于后者观众来说:
我在升级mysql-server包失败时遇到了类似的错误,但我发现这解决了我的问题。如果sudo apt-get install -f不起作用,请尝试sudo apt-get purge mysql*。现在您可以重新安装 mysql-server。

答案4

这对我有用

sudo apt purge mysql*
sudo apt autoremove
sudo apt autoclean
sudo apt install mysql-server

描述

1)第一个命令删除与 MySQL 及其配置文件相关的所有内容。

2)第二个删除那些不再需要的包。


参考文献[!]:

1)数字海洋

相关内容