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

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

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 

如何解决这个问题? 或者至less – 如何保存数据库中的数据?

非常感谢你!

我会重新安装MySQL包。 重新安装软件包不会删除您的数据(来源) ,所以我会做以下几点:

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

你也可以使用adduser命令或编辑文件/ etc / passwd,/ etc / shadow和/ etc / group来添加“mysql”用户。

您可以从传统的“mysql”文件获得用户和组的以前的id

可能这可能会帮助别人。

 adduser mysql chown mysql:mysql -R /var/lib/mysql sudo chmod -R 755 /var/lib/mysql/ sudo service mysql start