Why can’t I stop the MySQL service on Debian?
Solution 1:
Try this:
sudo cat /etc/mysql/debian.cnf
and look for the password listed under both the[client]
and[mysql_upgrade]
sectionsmysql -u root -p password
being the original MySQL root passwordGRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '*the password obtained from step 1*';
/etc/init.d/mysql restart
That's the fix and this is the reasoning behind it, if you're interested.
Solution 2:
An update to the answer. In step 3, I had to use
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'the password obtained from step 1';
There are asterisks around the period after "ON". Worked for MySql 5.1
Solution 3:
The MySQL Reference Manual says you can do this:
- Log on to your system as the Unix user that the
mysqld
server runs as (for example,mysql
). - Locate the
.pid
file that contains the server's process ID. The exact location and name of this file depend on your distribution, host name, and configuration. Common locations are/var/lib/mysql/
,/var/run/mysqld/
, and/usr/local/mysql/data/
. Generally, the file name has an extension of.pid
and begins with eithermysqld
or your system's host name.
You can stop the MySQL server by sending a normal kill (not kill -9) to the mysqld process, using the path name of the .pid file in the following command:
kill `cat /mysql-data-directory/host_name.pid`
This part: cat /mysql-data-directory/host_name.pid
returns the contents of the file, which is the process id.