为什么我不能在Debian上停止MySQL服务?


11

我只是尝试通过将'squeeze'替换为'unstable'从debian squeeze升级为unstable /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

Answers:


6

尝试这个:

  1. sudo cat /etc/mysql/debian.cnf然后在[client][mysql_upgrade]部分下查找列出的密码

  2. mysql -u root -p password 是原始的MySQL根密码

  3. GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '*the password obtained from step 1*';

  4. /etc/init.d/mysql restart

这就是解决方法,如果您有兴趣,就是其背后的原因。


如下所述,应为GRANT ALL PRIVILEGES ON *.*
Dave 2012年

2

答案的更新。在第3步中,我不得不使用

GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'the password obtained from step 1';

“ ON”之后的时间段附近有星号。适用于MySql 5.1


1

MySQL参考手册您可以执行以下操作:

  1. mysqld服务器运行的Unix用户身份登录到系统(例如,mysql)。
  2. 找到.pid包含服务器的进程ID 的文件。该文件的确切位置和名称取决于您的分发,主机名和配置。常见的位置是/var/lib/mysql//var/run/mysqld//usr/local/mysql/data/。通常,文件名的扩展名为,.pid或以mysqld系统的主机名开头。

您可以通过在以下命令中使用.pid文件的路径名称向mysqld进程发送正常的kill(而不是kill -9)来停止MySQL服务器:

    kill `cat /mysql-data-directory/host_name.pid`

此部分:cat /mysql-data-directory/host_name.pid返回文件的内容,即进程ID。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.