Saya tidak sengaja menghapus beberapa hak istimewa dari pengguna root MySQL saya, termasuk kemampuan untuk mengubah tabel. Adakah cara agar saya dapat memulihkan pengguna ini ke keadaan semula (dengan semua hak istimewa)?
UPDATE mysql.user SET Grant_priv = 'Y', Super_priv = 'Y' WHERE User = 'root';
# MySQL returned an empty result set (i.e. zero rows).
FLUSH PRIVILEGES ;
# MySQL returned an empty result set (i.e. zero rows).
#1045 - Access denied for user 'root'@'localhost' (using password: YES)
GRANT ALL ON *.* TO 'root'@'localhost'
mysql
privileges
mysql-error-1045
Steven
sumber
sumber
Jawaban:
Jika
GRANT ALL
tidak berhasil, coba:mysqld
dan mulai ulang dengan--skip-grant-tables
opsi.mysqld
server hanya dengan:mysql
(yaitu tidak ada-p
opsi, dan nama pengguna mungkin tidak diperlukan).Keluarkan perintah berikut di klien mysql:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
Setelah itu, Anda harus bisa menjalankan
GRANT ALL ON *.* TO 'root'@'localhost';
dan menjalankannya .sumber
skip-grant-tables
ke[mysqld]
bagian file konfigurasi mysql Anda untuk mengakses mysql pada baris perintah tanpa kata sandi.Jika Anda tidak
root
sengaja menghapus pengguna, Anda dapat melakukan satu hal:mysqld_safe --skip-grant-tables &
mysql -u root -p
dan tekan enter.use mysql;
Kemudian jalankan kueri ini:
kemudian restart mysqld
EDIT: 6 Oktober 2018
Jika ada orang lain yang membutuhkan jawaban ini, saya mencobanya hari ini menggunakan innodb_version 5.6.36-82.0 dan 10.1.24-MariaDB dan berfungsi jika Anda MENGHAPUS BACKTICKS (tidak ada tanda kutip tunggal juga, hapus saja):
sumber
mysqld.exe
dibin
foldernya, tidakmysqld_safe.exe
. Apa yang Anda maksud dengan "mysqld_safe"?mysqld_safe
, jalankan saja biner mysqld normal:mysqld.exe --skip-grant-tables
ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
saya juga menghapus hak akses root dan database yang tidak muncul di konsol mysql ketika saya adalah pengguna root, jadi mengubah pengguna dengan
mysql>mysql -u 'userName' -p;
dan kata sandi;setelah perintah ini semuanya menampilkan database di root.
Terima kasih
sumber
Saya telah menolak hak menyisipkan dan memuat ulang ke root. Jadi setelah memperbarui izin, FLUSH PRIVILEGES tidak berfungsi (karena kurangnya hak muat ulang). Jadi saya menggunakan pengguna debian-sys-maint di Ubuntu 16.04 untuk memulihkan hak istimewa user.root. Anda dapat menemukan kata sandi user.debian-sys-maint dari file ini
sumber
Cukup masuk dari root menggunakan kata sandi masing-masing jika ada dan cukup jalankan perintah di atas untuk siapa pun penggunanya.
Sebagai contoh:
sumber
Cukup masukkan atau perbarui
mysql.user
dengan nilaiY
di setiap hak istimewa kolom.sumber
Jika Anda menggunakan WAMP di komputer lokal Anda (mysql versi 5.7.14) Langkah 1: buka file my.ini Langkah 2: hapus komentar baris ini 'lewati-hibah-tabel' dengan menghapus titik koma langkah 3: mulai ulang mysql langkah server 4: luncurkan konsol mySQL langkah 5:
Langkah 6: Masalah terpecahkan !!!!
sumber