Impostazione della password di root nella nuova installazione di mysql 5.7


11

Sto cercando di installare mysql in un servizio CentOS Linux release 7.2.1511. Dai un'occhiata all'installazione del processo:

# sudo yum install mysql-server

Produzione:

Dependencies Resolved

===========================================================================================================================================================================================================
 Package                                                 Arch                                    Version                                         Repository                                           Size
===========================================================================================================================================================================================================
Removing:
 mysql-community-client                                  x86_64                                  5.7.10-1.el7                                    @mysql57-community                                  109 M
 mysql-community-server                                  x86_64                                  5.7.10-1.el7                                    @mysql57-community                                  652 M

Transaction Summary
===========================================================================================================================================================================================================

Ho eseguito il mysql damon:

# sudo service mysqld start

Verifica del servizio:

# ps -ef|grep mysql
mysql     1371     1  0 22:17 ?        00:00:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

Ecco che arriva il problema che mi fa impazzire. Voglio impostare la password di root per la prima volta, quindi ho fatto:

# sudo mysql_secure_installation
// when password is required, I just type "enter key"

Ma l'output: proteggere la distribuzione del server MySQL.

Immettere la password per l'utente root: errore: accesso negato per l'utente "root" @ "localhost" (utilizzando la password: NO)

Cercando su Google l'errore, nel 90% dei casi, la soluzione è chiamare il mysqld_safe --skip-grant-tables &comando:

service mysqld stop
mysqld_safe --skip-grant-tables &
mysql --user=root mysql
update user set Password=PASSWORD('new-password') where user='root';
flush privileges;
exit;

Ma mysqld_saferichiede un errore "comando non trovato". Ho anche provato con sudo mysqld --skip-grant-tables &, ma non fa nulla. Apprezzerò se mi guidi nella giusta direzione per impostare la password di root. Grazie in anticipo.


Hai bisogno di quei binari per essere nel PATH. O hai bisogno di percorsi completi. (Questa è più una domanda Linux che una domanda MySQL.)
Rick James,

Risposte:


18

Se esegui semplicemente il comando mysql sotto l'utente root, ti verrà concesso l'accesso senza richiedere la password, poiché l'autenticazione socket è abilitata per root @ localhost.

Questa guida è fuorviante.

L'unico modo per impostare la password è passare all'autenticazione nativa come:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

Sei il salvatore! Lavora come un incanto !.
Zugor

9

Nella mia folle ricerca di una soluzione ho dato un'occhiata /var/log/mysqld.loge ho trovato questa linea:

[Nota] Viene generata una password temporanea per root @ localhost: abc123

Sembra che mysql 5.7+ generi una password casuale nell'installazione e richiesta in quel file.


7

Utilizzare i passaggi seguenti per reimpostare la password:

$ sudo systemctl start mysqld

Reimpostare la password di root del server MySQL.

$sudo grep 'temporary password' /var/log/mysqld.log

Emetti qualcosa del tipo:

10.744785Z 1 [Note] A temporary password is generated for root@localhost: o!5y,oJGALQa

Utilizzare la password sopra durante il processo di ripristino mysql_secure_installation .

$ sudo mysql_secure_installation
Securing the MySQL server deployment.

Enter password for user root: 

Hai reimpostato correttamente la password di root del server MySQL. Utilizzare il comando seguente per verificare la connessione del server MySQL o meno.

$ mysql -u root -p

Vedi il mio articolo: Installa MySQL 5.7 più recente su RHEL / Centos 7


3

Tutto quanto sopra non ha funzionato per me e nota, ho passato un'ora o più a provare tutti gli altri suggerimenti dal sito Web MYSql a tutto su SO, finalmente ho funzionato con:

Nota: mentre mostrava Enter password per l'utente root, non avevo la password originale, quindi ho appena inserito la stessa password da utilizzare come nuova password.

Nota: non c'era /var/log/mysqld.log solo /var/log/mysql/error.log

  1. uccide l'attuale mysqld pid
  2. esegui mysqld con sudo / usr / sbin / mysqld &
  3. run / usr / bin / mysql_secure_installation

    Output da mysql_secure_installation

    root @ myServer: ~ # / usr / bin / mysql_secure_installation

    Protezione della distribuzione del server MySQL.

    Immettere la password per l'utente root:

    VALIDATE PLUGIN PASSWORD può essere utilizzato per testare le password e migliorare la sicurezza. Controlla la forza della password e consente agli utenti di impostare solo quelle password che sono abbastanza sicure. Desideri installare il plug-in VALIDATE PASSWORD?

    Premere y | Y per Sì, qualsiasi altro tasto per No: no Uso della password esistente per root. Cambia la password per root? ((Premere y | Y per Sì, qualsiasi altro tasto per No): y

    Nuova password:

    Reinserisci nuova password: per impostazione predefinita, un'installazione MySQL ha un utente anonimo, che consente a chiunque di accedere a MySQL senza che sia necessario creare un account utente. Questo è inteso solo per i test e per rendere l'installazione un po 'più fluida. È necessario rimuoverli prima di trasferirsi in un ambiente di produzione.

    Rimuovere utenti anonimi? (Premere y | Y per Sì, qualsiasi altro tasto per No): y Successo.

    Normalmente, root dovrebbe essere autorizzato a connettersi solo da 'localhost'. Questo assicura che qualcuno non possa indovinare la password di root dalla rete.

    Non consentire l'accesso root da remoto? (Premere y | Y per Sì, qualsiasi altro tasto per No): y Successo.

    Per impostazione predefinita, MySQL viene fornito con un database denominato "test" a cui chiunque può accedere. Anche questo è destinato esclusivamente ai test e deve essere rimosso prima di trasferirsi in un ambiente di produzione.

    Rimuovere il database di prova e accedervi? (Premere y | Y per Sì, qualsiasi altro tasto per No): y

    • Eliminazione del database dei test ... Esito positivo.

    • Rimozione dei privilegi sul database di test ... Operazione riuscita.

    Il ricaricamento delle tabelle dei privilegi garantirà che tutte le modifiche apportate finora abbiano effetto immediato.

    Ricarica le tabelle dei privilegi ora? (Premere y | Y per Sì, qualsiasi altro tasto per No): y Successo.

    Tutto fatto!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.