≡ Menu

MySQL: “Access denied for user ‘debian-sys-maint’@’localhost’”

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… add one }
  • dr soos 20/07/2009, 9:58 pm

    De nya rättigheterna blir gällande om du kör FLUSH PRIVILEGES efter din GRANT-sats.

  • J.Backlund 20/07/2009, 11:56 pm

    Tack för tipset!

Leave a Comment

Next post:

Previous post:

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close