Disattiva --skip-grant-tables in MySQL


13

Sono abbastanza nuovo nell'uso di Linux ma sto configurando i miei database MySQL su un'istanza di Amazon ec2. Ho seguito alcune indicazioni che ho trovato sul ripristino del passaggio di accesso dell'utente utilizzando l' --skip-grant-tablesopzione di MySQL. Ora sto cercando di aggiungere un utente e non riesco a capire come disattivare questa opzione.

Questo è quello che sto cercando di fare:

mysql> GRANT CREATE,SELECT,INSERT,UPDATE,DELETE ON ...my db username and pass

ma ottengo questo errore:

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

Come disattivare questa opzione?

Risposte:




2

Puoi farlo usando i passaggi seguenti.

[root@backups1 mysql5.7]# bin/mysqld_safe --skip-grant-tables --user=mysql

connettiti al tuo mysql senza password.

mysql> flush privileges;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '';
mysql> flush privileges;

passa alla modalità normale di mysql quindi connettiti senza password.

Questo sicuramente funzionerà per te.


0

Ieri ho riscontrato un problema simile. Il server utilizzava Amazon Linux 2 come sistema operativo e il repository yum ufficiale (quelli el7) come mezzo di installazione.

Soprattutto quando si utilizza MySQL del repository yum ufficiale, MySQL verrebbe installato come servizio systemd. In tal caso, si può verificare come processo di MySQL viene avviato eseguendo il comando seguente: sudo service mysql status -l. Ciò si traduce in una descrizione dello stato corrente del servizio mysql corrente. Di quelle descrizioni, ho potuto trovare la seguente riga:

  Process: 26474 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS

Nel mio ambiente, si è scoperto che la MYSQLD_OPTSvariabile è stata impostata con l' --skip-grant-tablesopzione value dal processo systemd. Per confermare le variabili di ambiente impostate da systemd, è possibile eseguire sudo systemctl showe cercare la riga che inizia con Environment=.

Per cambiare questa variabile d'ambiente, ho eseguito il seguente comando.

sudo systemctl set-environment MYSQLD_OPTS=""

Dopo questa operazione, ho riavviato il servizio mysqld sudo service mysql restarte tutto funzionava perfettamente.

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.