![为什么我无法停止 Debian 上的 MySQL 服务?](https://linux22.com/image/1271524/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E6%97%A0%E6%B3%95%E5%81%9C%E6%AD%A2%20Debian%20%E4%B8%8A%E7%9A%84%20MySQL%20%E6%9C%8D%E5%8A%A1%EF%BC%9F.png)
我刚刚尝试通过将 中的“squeeze”替换为“unstable”来从 debian squeeze 升级到不稳定版本/etc/apt/sources.list
。除了 MySQL 之外,升级很顺利,因为无法停止 MySQL,所以升级失败了。
/etc/init.d/mysql stop
只是返回失败,但如果我尝试获取状态,/etc/init.d/mysql status
则会给出此错误:
me@debian:~$ sudo /etc/init.d/mysql status
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
MySQL 运行良好,我检查了 phpmyadmin 中 debian-sys-maint 的权限,它可以执行所有操作,但只能从 连接localhost
。
答案1
尝试这个:
sudo cat /etc/mysql/debian.cnf
并查找[client]
和[mysql_upgrade]
部分下列出的密码mysql -u root -p password
是原始 MySQL root 密码GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '*the password obtained from step 1*';
/etc/init.d/mysql restart
这就是解决办法这如果你感兴趣的话,这背后的原因是什么?
答案2
答案更新。在第 3 步中,我必须使用
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'the password obtained from step 1';
“ON” 后面的句号周围有星号。适用于 MySql 5.1
答案3
MySQL 参考手册说你可以这样做:
- 以运行服务器的 Unix 用户身份登录到您的系统
mysqld
(例如mysql
)。 - 找到
.pid
包含服务器进程 ID 的文件。此文件的确切位置和名称取决于您的发行版、主机名和配置。常见位置是/var/lib/mysql/
、/var/run/mysqld/
和/usr/local/mysql/data/
。通常,文件名的扩展名为,并以或您的系统主机名.pid
开头。mysqld
您可以通过向 mysqld 进程发送常规 kill(不是 kill -9)来停止 MySQL 服务器,在以下命令中使用 .pid 文件的路径名:
kill `cat /mysql-data-directory/host_name.pid`
这部分:cat /mysql-data-directory/host_name.pid
返回文件的内容,也就是进程id。