Impossibile immettere phpmyadmin come utente root (MySQL 5.7)

37

Sto usando Ubuntu desktop 16.04 (aggiornato dalla 15.10).

Ho installato phpmyadmin da apt-get install phpmyadmin . Funziona se vado a localhost/phpmyadmin ma non riesco a collegarmi come root.

Ho cercato molto per questo. Ho trovato molte fonti in cui suggeriscono di modificare /etc/phpmyadmin/config.inc.php e sostituire l'utente e la password con 'root' e '' (vuoto per password). Ma il mio config.inc.php è diverso dal loro. Ad esempio nel mio file, non esiste una riga per utente e password e sembra che ottenga automaticamente da un altro file che è /etc/phpmyadmin/config-db.php . Nonostante ciò, ho cambiato l'utente e la password in quel file, ma ora ricevo questo errore:

#1698 - Access denied for user 'root'@'localhost'

Cosa dovrei fare?

Phpmyadmin Versione: 4.5.4.1deb2ubuntu1
mysql Ver 14.14 Distrib 5.7.12, per Linux (x86_64) usando EditLine wrapper

    
posta Mostafa Ahangarha 26.04.2016 - 20:52
fonte

8 risposte

79

MySQL 5.7 ha cambiato il modello sicuro: ora MySQL root login richiede sudo .

I.e. phpMyAdmin sarà non in grado di utilizzare root credenziali.

La soluzione più semplice (e più sicura) sarà creare un nuovo utente e concedere i privilegi richiesti.

1. Connetti a mysql

sudo mysql --user=root mysql

2. Crea un utente per phpMyAdmin

Esegui i seguenti comandi (sostituendo some_pass con la password desiderata):

CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Se phpMyAdmin si connette a localhost, questo dovrebbe essere sufficiente.

3. Opzionale: consenti le connessioni remote

Ricorda : consentire a un utente remoto di avere tutti i privilegi è un problema di sicurezza.

Con questo in mente, se vuoi che questo utente abbia gli stessi privilegi durante le connessioni remote, esegui in aggiunta (sostituendo some_pass con la password utilizzata nel passaggio 2):

CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

4. Aggiorna phpMyAdmin

Utilizzando sudo , modifica /etc/dbconfig-common/phpmyadmin.conf file aggiornando i valori utente / password nelle seguenti sezioni (sostituendo some_pass con la password utilizzata nel passaggio 2):

# dbc_dbuser: database user
#       the name of the user who we will use to connect to the database.
dbc_dbuser='phpmyadmin'

# dbc_dbpass: database user password
#       the password to use with the above username when connecting
#       to a database, if one is required
dbc_dbpass='some_pass'
    
risposta data Rael Gugelmin Cunha 26.04.2016 - 21:35
fonte
7

Stavo affrontando lo stesso problema quando usavo mariaDB con phpmyadmin (Ubuntu 16.04LTS).

Prerequisiti:

1) Installa MariaDB

sudo apt-get -y install mariadb-server mariadb-client
sudo mysql_secure_installation (answer to some interactive questions):
    Enter current password for root (enter for none): <enter>
    Set root password: n
    Remove anonymous users: n
    Disallow root login remotely: n
    Remove test database and access to it: n
    Reload privilege tables now: Y

Se vuoi disinstallare mariaDB :

sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

2) Installa phpmyadmin

sudo apt-get -y install phpmyadmin (and answer some interactive questions)
    Configuring phpmyadmin:
        Web server to reconfigure automatically: apache2
        Configure database for phpmyadmin with dbconfig-common: Yes
        MySQL application password for phpmyadmin: <blank>

3) In apache2, creare un collegamento simbolico a phpmyadmin

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin.conf
sudo service apache2 restart

Ok, ora, se segui le istruzioni di Rael, sarai in grado di accedere a phpmyadmin , ma, almeno per me, non sono stato in grado di creare nuovi database, quando è arrivato un messaggio rosso: No privileges (o qualche messaggio simile)

La correzione era riconfigurando phpmyadmin e rispondendo ad alcune domande interattive.

sudo dpkg-reconfigure phpmyadmin
<Ok>
Reinstall database for phpmyadmin: <Yes>
Connection method for MySQL database server for phpmyadmin: TCP/IP
Host name of the MySQL database server for phpmyadmin: localhost
Port number for the MySQL service: 3306
MySQL database name for phpmyadmin: phpmyadmin
<Ok>
MySQL username for phpmyadmin: root
MySQL application password for phpmyadmin: pass  # OR ANY PASSWORD YOU WANT
Password confirmation: pass
Name of the database's administrative user: root
Web server to reconfigure automatically: apache2
An error occurred while installing the database: ignore

Ora se provi a connetterti a phpmyadmin ( localhost/phpmyadmin ) usando

username: root
password: pass

sarai in grado di creare database.

    
risposta data Dan Costinel 19.03.2017 - 19:36
fonte
2

Per completezza, ho trovato una soluzione ai miei problemi nell'utilizzo di MariadB versione 10.1.23. La sintassi da utilizzare per configurare un nuovo utente è simile a quella riportata nel post sopra di @Rael Gugelmin Cunha, ho messo qui la mia soluzione per fare riferimento ad altri che hanno lo stesso problema:

root@raspberrypi:# sudo mysql --user=root mysql
use mysql;
CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'some_password';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Saluti

    
risposta data FIRE FOX 27.06.2018 - 14:02
fonte
1

Riferendosi a Rael Cunha:

Sì, la sua soluzione funziona, e ho provato altri. Tuttavia, il riferimento a un utente che ha una password esposta su un file di configurazione come /etc/dbconfig-common/phpmyadmin.conf sembra un difetto di sicurezza per un'azione a livello di sistema.

Quindi vorrei piuttosto suggerire in che cosa MariaDB 10.1.x è interessato (some_user e some_pass saranno qualcosa che potresti inventare):

# mysql -u root
use mysql;
CREATE USER 'some_user'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON \*.\* TO 'some_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

e lascia il phpadmin setup (4) così com'è.

Accedi in phpmyadmin con le tue credenziali in seguito

Nelle mie impostazioni personali sostituisco il precedente '%' con 'localhost' per motivi di sicurezza, ma se la porta 3306 è chiusa sul tuo server che non presenta necessariamente un rischio per la sicurezza per te.

    
risposta data Antonio J. de Oliveira 07.02.2018 - 14:28
fonte
1

In Ubuntu 16.04 per Mysql 5.7 controlla sotto le informazioni della tabella ed esegui le impostazioni necessarie:

mysql>  SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User             | Host      | plugin                |
+------------------+-----------+-----------------------+
| root             | localhost | auth_socket           |
| mysql.session    | localhost | mysql_native_password |
| mysql.sys        | localhost | mysql_native_password |
| debian-sys-maint | localhost | mysql_native_password |
| phpmyadmin       | localhost | mysql_native_password |
| root             | %         | mysql_native_password |
+------------------+-----------+-----------------------+

Controlla se root ha il plugin auth_socket, quindi esegui il comando below:

mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
    
risposta data Syed Abdul Qadeer 25.07.2018 - 11:44
fonte
0

Se phpymadmin non riesce a connettersi, potrebbe essere dovuto al meccanismo di autenticazione impostato su auth_socket . Puoi cambiarlo per usare una password regolare come questa:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_password";

Ero alle prese con questa situazione solo su un'installazione pulita di Ubuntu 18.04 e questo è ciò che ha funzionato. C'è un articolo decente qui che spiega di più:

link

    
risposta data billynoah 29.04.2018 - 07:34
fonte
0

Ho avuto lo stesso problema, ho seguito la maggior parte dei consigli e non ha funzionato per me! Il mio problema era lo stesso quando ho aperto localhost / phpmyadmin nel mio browser chiedendo i dettagli di accesso.

Stavo aggiungendo root come utente. e la password che conoscevo era corretta. e stavo ottenendo # 1698 - Accesso negato per utente 'root' @ 'localhost'

è tutto usato phpmyadmin come utente non root e la password conosciuta e si apre.

spero che questo aiuti qualcuno, un po 'strano quanto l'abbia trascurato. ma lavoro per me con quell'errore # 1698 - Accesso negato per utente 'root' @ 'localhost'

    
risposta data plutesci 15.06.2018 - 23:02
fonte
-2

se installi MySQL, interrompilo con questo comando qui sotto     sudo / opt / lampp / lampp stop     servizio mysql stop     sudo / opt / lampp / lampp start

    
risposta data zouhair elhadraoui 16.03.2018 - 12:26
fonte

Leggi altre domande sui tag