今天突然停止在 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 包。重新安装包不会删除你的数据(来源),因此我会执行以下操作:
- 使用以下方法备份 mysql 数据文件夹
cp -ar /var/lib/mysql /safeplace
- 删除包:
apt-get remove mysql-server
- 重新安装包
apt-get install mysql-server
答案3
您还可以使用 adduser 命令或通过编辑文件 /etc/passwd、/etc/shadow 和 /etc/group 重新添加“mysql”用户。
您可以从旧版“mysql”文件中获取用户和组的先前 ID