MySQL - Access denied

Ciao,
ho installato LAMP su Fedora 17.
Apache e PHP funzionano correttamente (testati con il browser), mentre mysql e phpmyadmin no.
Quando provo a configurare MySQL, con:

$ sudo mysql_secure_installation

ricevo un messaggio (a cui rispondo premendo invio):

Enter current password for root (enter for none): ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Di conseguenza (almeno credo), anche phpmyadmin restituisce un errore. Infatti, se cerco di connettermi a:

http://localhost/phpmyadmin

ottengo:

phpMyAdmin - Error Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.

Qualche suggerimento?

Grazie,
mm

Hai già creato la password di root per mysql?

Quindi non hai settato nessuna password? Possiamo impostarne una?
Ferma il servizio mysqld:

[code]# systemctl stop mysqld.service

exit

$[/code]
Ora crea un file nella tua home, da utente:

$ gedit /home/tuo_utente/setta_mysql

Inserisci:

UPDATE mysql.user SET Password=PASSWORD('password_nuova') WHERE User='root'; FLUSH PRIVILEGES;
Salva e esci. Diventa nuovamente root:

# mysqld_safe --init-file=/home/tuo_utente/setta_mysql &

infine esegui:

# mysql -u root -p

inserendo ora la tua ‘password_nuova’, ovviamente senza apici.
Fai ripartire il servizio:

# systemctl start mysqld.service

Come va ora?

Tieni anche presente che il servizio mysql non viene abilitato per default (mi è capitato diverse volte).
Puoi verificare lo stato con

$ systemctl status mysqld.service

Quindi devi fare:

# systemctl start mysqld.service

per farlo partire, e

# systemctl enable mysqld.service

per abilitarlo in modo che parta automaticamente ad ogni avvio del computer.

Ciao, grazie.
Ho provato a impostare la password di root, ma ho ottenuto questo risultato:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Infatti, non ho il file:

/var/lib/mysql/mysql.sock

La cosa strana è che riesco ad avviare e a fermare il servizio con:

$ sudo systemctl start mysqld.service $ sudo systemctl stop mysqld.service
Lo stato di mysqld (quando è attivo) è questo:

$ systemctl status mysqld.service mysqld.service - MySQL database server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled) Active: active (running) since Mon, 25 Feb 2013 15:28:14 +0100; 32min ago Process: 1222 ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID (code=exited, status=0/SUCCESS) Process: 1198 ExecStartPre=/usr/libexec/mysqld-prepare-db-dir %n (code=exited, status=0/SUCCESS) Main PID: 1221 (mysqld_safe) CGroup: name=systemd:/system/mysqld.service ├ 1221 /bin/sh /usr/bin/mysqld_safe --basedir=/usr └ 1378 /usr/libexec/mysqld --basedir=/usr --datadir=/var/...

Come hai installato LAMP? Hai seguito la nostra http://doc.fedoraonline.it/LAMP?
Ci fai vedere:

$ cat /lib/systemd/system/mysqld.service

Hai modificato qualche file di mysql?

Ho provato a seguire i suggerimenti di http://forum.fedoraonline.it/viewtopic.php?id=18081, ma senza risolvere il problema.
In particolare, dopo aver cancellato il file:

/etc/my.cnf

che non si trovava in /etc/mysql/ (come nel caso del topic citato), ottengo:

mysql -u root -h localhost -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Ho anche provato a cambiare l’utente (-u) al posto di root, ma il risultato è sempre lo stesso.
Che ve ne pare?
Grazie

[quote=robyduck]Come hai installato LAMP? Hai seguito la nostra http://doc.fedoraonline.it/LAMP?
Ci fai vedere:

$ cat /lib/systemd/system/mysqld.service

Hai modificato qualche file di mysql?[/quote]

Ho installato LAMP in maniera standard (seguendo la http://doc.fedoraonline.it/LAMP) senza modificare alcun file di MySQL.
Questo è il contenuto di mysqld.service:

[code]$ cat /lib/systemd/system/mysqld.service

It’s not recommended to modify this file in-place, because it will be

overwritten during package upgrades. If you want to customize, the

best way is to create a file “/etc/systemd/system/mysqld.service”,

containing

.include /lib/systemd/system/mysqld.service

…make your changes here…

For more info about custom unit files, see

http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F

For example, if you want to increase mysql’s open-files-limit to 10000,

you need to increase systemd’s LimitNOFILE setting, so create a file named

“/etc/systemd/system/mysqld.service” containing:

.include /lib/systemd/system/mysqld.service

[Service]

LimitNOFILE=10000

Note: in F-17 and beyond, /usr/lib/… is recommended in the .include line

though /lib/… will still work.

[Unit]
Description=MySQL database server
After=syslog.target
After=network.target

[Service]
Type=simple
User=mysql
Group=mysql

ExecStartPre=/usr/libexec/mysqld-prepare-db-dir %n

Note: we set --basedir to prevent probes that might trigger SELinux alarms,

per bug #547485

ExecStart=/usr/bin/mysqld_safe --basedir=/usr
ExecStartPost=/usr/libexec/mysqld-wait-ready $MAINPID

Give a reasonable amount of time for the server to start up/shut down

TimeoutSec=300

Place temp files in a secure directory, not /tmp

PrivateTmp=true

[Install]
WantedBy=multi-user.target[/code]

Non fare altre prove di situazioni diverse altrimenti non ne usciamo più.
Proviamo a fer così:

[code]# systemctl stop mysqld.service

cd /var/lib/mysql/

touch mysql.sock

chmod +x mysql.sock

chown mysql:mysql -R *[/code]

Riavvia mydqld e vedi come si comporta ora:

# systemctl start mysqld.service

Ok robyduck.
Ho provato la sequenza dei comandi che mi hai consigliato, ma non è cambiato niente:

$ sudo mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Non ti serve usare sudo!
Dopo aver dato l’ultimo comando di robert hai ottenuto errori? Il terminale è tornato normale?

Già, hai cancellato il file /etc/my.cnf, devi reimpostare la password come descritto prima.
E giusta una curiosità:

$ rpm -qa | grep -i mysql

Non ho ottenuto errori: il terminale è tornato normale.

[quote=robyduck]E giusta una curiosità:

$ rpm -qa | grep -i mysql

$ rpm -qa | grep -i mysql php-mysql-5.4.11-1.fc17.i686 mysql-5.5.30-1.fc17.i686 mysql-libs-5.5.30-1.fc17.i686 mysql-server-5.5.30-1.fc17.i686 perl-DBD-MySQL-4.020-2.fc17.i686

Ho reimpostato la password:

$ sudo mysqld_safe --init-file=/home/tuo_utente/setta_mysql & $ mysql -u root -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Mi sembra tutto normale, reinstalla il server mysql e riavvia la macchina (hai abilitato i servizi al boot vero?):

[code]# yum reinstall mysql-server

reboot[/code]

No, non mi servono ad ogni avvio (li lancio quando mi occorrono):

$ sudo systemctl start mysqld.service

Ok, hai degli errori?

Si, sempre lo stesso errore:

$ sudo mysql_secure_installation Enter current password for root (enter for none): ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Ma cosa stai cercando di fare? Perchè esegui quel comando?

Niente di strano. Vorrei fare la prima configurazione di MySQL (in sicurezza), seguendo una procedura guidata (questo strumento è offerto da MySQL).
Il messaggio di errore non cambia (come abbiamo già verificato) eseguendo altri comandi:

$ sudo mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Quindi mi sembra che il problema non stia in quello specifico comando…
Da qualche ricerca in rete, mi pare di capire che sia un problema conosciuto, ma non ho ancora trovato la soluzione adatta.
Grazie per l’aiuto.

Perché sei di nuovo senza password?
Per favore lascia stare sudo per un momento:

[code]$ su -
password

systemctl stop mysqld.service

mysqld_safe --skip-grant-tables

mysql -u root

mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘tua_password’;
mysql> exit

systemctl start mysqld.service

[/code]