PDA

Visualizza la versione completa : MySQL su Fedora 9: non riesco a settare la password di root


SS5NemboKid
13-10-2008, 10:49
Salve a tutti,

vi dico subito che di Linux ne so poco e niente.

Su un computer ho messo Fedora 9.

Non riesco a settare la password di root di MySQL, le sto provando tutte, ho spulciato pagine su pagine, ma niente.
Spero di perdermi in un bicchiere d'acqua causa la mia ignoranza riguardo le basi di Linux.

Vi riporto un esempio:

[roberto@localhost ~]$ su
Password:
[root@localhost roberto]# /etc/init.d/mysqld start
Avvio di MySQL: [ OK ]
[root@localhost roberto]# mysql -u root -h localhost -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Un mio amico mi ha detto di disinstallare e reinstallare, l'ho fatto ma fa sempre uguale.

Poi cercando ho trovato chi diceva di fare in altri modi per esempio mettendo nel file /etc/my.cnf la riga
"skip-grant-tables"
così per esempio phpmyadmin mi fa accedere, ma non posso fare niente comunque...
Così facendo ho visto che nella tabella USER del database MYSQL non vi è nessun utente.
Ho provato a crearlo seguendo le istruzioni di diverse pagine trovate su Internet, ma niente...

Scusate l'ignoranza a riguardo... qualcuno sa aiutarmi?

Grazie in anticipo!

cacao74
13-10-2008, 12:10
usa il tool "mysqladmin" e leggi la documentazione di mysql
la distribuzione sottostante non c'entra molto

ciao

SS5NemboKid
13-10-2008, 12:18
Dunque credo di aver risolto e vi illustro come, così può essere utile ad altri in futuro nel caso.

Il problema è che l'utente root non esiste proprio nella tabella user del database mysql.

Quindi l'ho dovuto creare io.

Per poterlo fare ho messo nel file /etc/my.cnf la seguente riga.

"skip-grant-tables"

Come potete vedere qui sotto è in "[mysqld]"

-------------------------------------------

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
skip-grant-tables
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

-------------------------------------------

Perché da shell poi mi dava comunque errore:

-------------------------------------------

root@localhost roberto]# /etc/init.d/mysqld start --skip-grant-tables
Avvio di MySQL: [ OK ]
[root@localhost roberto]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

-------------------------------------------

Dopo aver aggiunto quella riga ho creato l'utente a mano:

-------------------------------------------

[root@localhost roberto]# /etc/init.d/mysqld start
Avvio di MySQL: [ OK ]
[root@localhost roberto]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.51a Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.


mysql> INSERT INTO user VALUES('%','root',PASSWORD('laTuaPassoword'),'Y',' Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y' ,'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',' ','','','',0,0,0,0);
Query OK, 1 row affected (0.00 sec)

-------------------------------------------

Poi ho rimosso la riga nel file /etc/my.cnf e ho fatto ripartire il server.

cacao74
13-10-2008, 13:30
normalmente non si fa come dici... ma il db di sistema si popola con "mysql_install_db"

cito il mio script di start su slackware


# Before you can run MySQL, you must have a database. To install an initial
# database, do this as root:
#
# mysql_install_db --user=mysql
#
...

sulla documentazione di mysql trovi anche questo!
ciao

Loading