Matikan --skip-grant-tables di MySQL

13

Saya cukup baru menggunakan Linux tetapi sedang menyiapkan database MySQL saya pada contoh Amazon ec2. Saya mengikuti beberapa petunjuk yang saya temukan tentang mengatur ulang pass masuk pengguna dengan menggunakan --skip-grant-tablesopsi MySQL. Sekarang saya mencoba menambahkan pengguna dan tidak tahu cara mematikan opsi itu.

Inilah yang saya coba lakukan:

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

tapi saya mendapatkan kesalahan ini:

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

Bagaimana cara mematikan opsi ini?

pengguna718229
sumber

Jawaban:

3

Berhenti dan mulai ulang MySQL secara normal.

Michael Hampton
sumber
2

Anda dapat melakukan ini dengan menggunakan langkah-langkah di bawah ini.

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

terhubung ke mysql Anda tanpa kata sandi.

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

beralih ke mode normal mysql kemudian hubungkan tanpa kata sandi.

Ini pasti akan bekerja untuk Anda.

Mansur Ali
sumber
0

Kemarin saya mengalami masalah serupa. Server menggunakan Amazon Linux 2 sebagai OS dan repositori yum resmi (yang el7) sebagai sarana instalasi.

Terutama ketika Anda menggunakan MySQL dari yum repo resmi, MySQL akan diinstal sebagai layanan systemd. Dalam kasus tersebut, Anda dapat memeriksa bagaimana proses MySQL diluncurkan dengan menjalankan perintah berikut: sudo service mysql status -l. Ini menghasilkan deskripsi status saat ini dari layanan mysql saat ini. Dari uraian itu, saya dapat menemukan baris berikut:

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

Di lingkungan saya, ternyata MYSQLD_OPTSvariabel diatur dengan --skip-grant-tablesopsi nilai oleh proses systemd. Untuk mengkonfirmasi variabel lingkungan yang ditetapkan oleh systemd, Anda dapat menjalankan sudo systemctl showdan mencari baris yang dimulai dengan Environment=.

Untuk mengubah variabel lingkungan ini, saya menjalankan perintah berikut.

sudo systemctl set-environment MYSQLD_OPTS=""

Setelah operasi ini, saya me-restart layanan mysqld sudo service mysql restart, dan semuanya bekerja dengan sempurna.

Yuki Inoue
sumber