MySQL 在 Ubuntu 上停止运行:无法更改为以用户“mysql”身份运行。如何保存数据?

MySQL 在 Ubuntu 上停止运行:无法更改为以用户“mysql”身份运行。如何保存数据?

今天突然停止在 Ubuntu 服务器上运行 MySQL。当我尝试登录时,出现此错误:

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

检查错误:

mysqld --verbose

160408  3:21:24 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
160408  3:21:24 [ERROR] Fatal error: Can't change to run as user 'mysql' ;  Please check that the user exists!

160408  3:21:24 [ERROR] Aborting

160408  3:21:24 [Note] mysqld: Shutdown complete

我试过sudo service mysql start

start: Job failed to start

我也尝试过:

ps ax | grep mysql
 4127 pts/0    S+     0:00 grep --color=auto mysql

sudo chown mysql:root -R /var/lib/mysql
chown: invalid user: `mysql:root'

如果我尝试列出系统中的所有用户:

compgen -u
root
ram
sshd
nobody
deployer

我还检查了服务器空间是否不足:

Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        79G   27G   49G  35% /
udev            3.9G  4.0K  3.9G   1% /dev
tmpfs           1.6G  204K  1.6G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            3.9G     0  3.9G   0% /run/shm
none            100M     0  100M   0% /run/user

但还有足够的空间。

如果我尝试检查套接字:cd /var/run/mysqld/,那么:

-bash: cd: /var/run/mysqld/: No such file or directory

如何修复此问题?或者至少 - 如何保存数据库中的数据?

非常感谢!

答案1

这或许会对其他人有所帮助。

adduser mysql

chown mysql:mysql -R /var/lib/mysql

sudo chmod -R 755 /var/lib/mysql/

sudo service mysql start

答案2

我会重新安装 mysql 包。重新安装包不会删除你的数据(来源),因此我会执行以下操作:

  1. 使用以下方法备份 mysql 数据文件夹cp -ar /var/lib/mysql /safeplace
  2. 删除包:apt-get remove mysql-server
  3. 重新安装包apt-get install mysql-server

答案3

您还可以使用 adduser 命令或通过编辑文件 /etc/passwd、/etc/shadow 和 /etc/group 重新添加“mysql”用户。

您可以从旧版“mysql”文件中获取用户和组的先前 ID

相关内容