Ho appena installato MySQL su Mac OS X. Il passo successivo era impostare la password dell'utente root, quindi ho fatto questo:
Lancia l'applicazione terminale per accedere alla linea di comando Unix.
Sotto il prompt di Unix ho eseguito questi comandi:
$ cd /usr/local/mysql/bin
$ ./mysqladmin -u root password 'password'
Ma, quando eseguo il comando
$ ./mysql -u root
, questa è la risposta:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Posso entrare nella linea di comando mysql
senza alcuna password!
Perché?
Prova il comando FLUSH PRIVILEGES
quando accedi al terminale MySQL. Se questo non funziona, prova la seguente serie di comandi mentre sei nel terminale di MySQL
$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
Sostituisci NEWPASSWORD con qualsiasi password tu voglia. Dovrebbe essere tutto pronto!
Aggiornamento: A partire da MySQL 5.7, il campo password
è stato rinominato authentication_string
. Quando cambi la password, usa la seguente query per cambiare la password. Tutti gli altri comandi rimangono gli stessi:
mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';
Aggiornamento: Su 8.0.15 (forse già prima di quella versione) la funzione PASSWORD() non funziona, come detto nei commenti qui sotto. Dovete usare:
UPDATE mysql.user SET authentication_string='password' WHERE User='root';
Se non ricordate la password che avete impostato per root e avete bisogno di resettarla, seguite questi passi:
sudo mysqld_safe --skip-grant-tables;
mysql -u root
.
Per MySQL più vecchio di MySQL 5.7 usare:
UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';
Per MySQL 5.7+ usare:
USE mysql;
UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';
Aggiornate e uscite:
FLUSH PRIVILEGES;
\q
Una volta installato MySQL, è necessario stabilire la password di root. Se non stabilisci una password di root, allora, beh, non c'è una password di root, e non hai bisogno di una password per accedere.
Quindi, detto questo, è necessario stabilire una password di root.
Utilizzando il terminale inserire quanto segue:
/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE
Se avete fatto un errore, o avete bisogno di cambiare la password di root, usate il seguente:
cd /usr/local/mysql/bin/
./mysql -u root -p
> Enter password: [type old password invisibly]
use mysql;
update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root';
flush privileges;
quit