Wyłącz --skip-grant-tabele w MySQL

13

Jestem całkiem nowy w korzystaniu z Linuksa, ale konfiguruję bazy danych MySQL w instancji Amazon ec2. Postępowałem zgodnie ze wskazówkami dotyczącymi resetowania hasła logowania użytkownika, używając --skip-grant-tablesopcji MySQL. Teraz próbuję dodać użytkownika i nie mogę dowiedzieć się, jak wyłączyć tę opcję.

Oto co próbuję zrobić:

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

ale pojawia się ten błąd:

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

Jak wyłączyć tę opcję?

użytkownik718229
źródło

Odpowiedzi:

3

Wystarczy zatrzymać i zrestartować MySQL normalnie.

Michael Hampton
źródło
2

Możesz to zrobić, wykonując poniższe czynności.

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

połącz się z mysql bez hasła.

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

przełącz na normalny tryb mysql, a następnie połącz bez hasła.

To na pewno zadziała dla ciebie.

Mansur Ali
źródło
0

Wczoraj napotkałem podobny problem. Serwer używał Amazon Linux 2 jako systemu operacyjnego, a oficjalne repozytorium yum (el7) jako sposób instalacji.

Zwłaszcza gdy używasz MySQL z oficjalnego repozytorium yum, MySQL zostałby zainstalowany jako usługa systemowa. W takim przypadku można sprawdzić, w jaki sposób proces MySQL jest uruchomiony, wykonując następujące polecenie: sudo service mysql status -l. Powoduje to opis bieżącego stanu bieżącej usługi mysql. Z tych opisów mogłem znaleźć następujący wiersz:

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

W moim środowisku okazało się, że MYSQLD_OPTSzmienna została ustawiona z --skip-grant-tablesopcją wartości przez proces systemd. Aby potwierdzić zmienne środowiskowe ustawione przez systemd, możesz wykonać sudo systemctl showi poszukać linii zaczynającej się od Environment=.

Aby zmienić tę zmienną środowiskową, wykonałem następujące polecenie.

sudo systemctl set-environment MYSQLD_OPTS=""

Po tej operacji zrestartowałem usługę mysqld sudo service mysql restarti wszystko działało idealnie.

Yuki Inoue
źródło