Detta meddelande fick jag efter att ha återställt en MySQL dump:
:~$ sudo /etc/init.d/mysql restart
* Stopping MySQL database server mysqld [fail]
* Starting MySQL database server mysqld [ OK ]
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'
“debian-sys-maint” är skapad för att starta och stoppa mysql och för att kunna genomföra andra underhållsåtgärder. Anledningen till detta fel är oftast att lösenordet skrivs över vid en uppdatering eller återställning. Ubuntu kollar i följande fil för att hitta lösenordet till användaren “debian-sys-maint “:
/etc/mysql/debian.cnf
Då lösenordet inte är matchar efter uppdateringen/återställningen får man detta fel.
För att lösa problemet, gör då följande…
nano /etc/mysql/debian.cnf
I “debian.cnf” bör följande inställningar finnas(eller liknande):
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = n4aSHUP04s1J32X5
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = debian-sys-maint
password = n4aSHUP04s1J32X5
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
Lösenordet som är listat, det är detta som vi behöver!
Näste steg är att ge “debian-sys-maint” rätt privilegier och rätt lösenord. Detta gör vi genom att logga in i MySQL-databasen, detta gör du med din root-användare och ditt root-lösenord.
root@exempel.se:~$ mysql -u root -p <password>
För att ge alla privilegier och identifiera med lösenordet, skriv följande när du är inlogad i databasen:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'n4aSHUP04s1J32X5';
Notera att du skall skriva in password som du fann i debian.cnf tidigare.
Nu kan du starta om mysql utan att få felkoden!
root@texempel.se:$ sudo /etc/init.d/mysql restart
* Stopping MySQL database server mysqld [ OK ]
* Starting MySQL database server mysqld [ OK ]
* Checking for corrupt, not cleanly closed and upgrade needing tables.
Tänk på att de nya inställningarna inte har aktiverats förrän du startar om mysql vilket gör att du kan vara tvungen att köra kill på mysql för att processen skall stängas av över huvud taget.
{ 2 comments… read them below or add one }
De nya rättigheterna blir gällande om du kör FLUSH PRIVILEGES efter din GRANT-sats.
Tack för tipset!