Mencoba
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
Mendapatkan
ERROR 1064 (42000): Anda mengalami kesalahan dalam sintaks SQL; periksa manual yang sesuai dengan versi server MySQL Anda untuk sintaks yang benar untuk digunakan di dekat 'IDENTIFIED BY' root 'WITH GRANT OPTION' di baris 1.
Catatan: Hal yang sama berfungsi saat dicoba di versi sebelumnya.
Juga mencoba
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Mendapatkan
ERROR 1410 (42000): Anda tidak diizinkan untuk membuat pengguna dengan GRANT
Nama pengguna / kata sandi MySQL (8.0.11.0) adalah root / root.
mysql
mysql-error-1064
mysql-8.0
Praveen
sumber
sumber
mysql -u root -p
, lalu memasukkan kata sandi root. Kemudian saya mencobaGRANT GRANT OPTION ON *.* TO 'root'@'%';
dan saya mendapatkan kesalahanERROR 1410 (42000): You are not allowed to create a user with GRANT
Jawaban:
Dimulai dengan MySQL 8 Anda tidak lagi dapat (secara implisit) membuat pengguna menggunakan
GRANT
perintah. Gunakan CREATE USER sebagai gantinya, diikuti dengan pernyataan GRANT :Perhatian tentang risiko keamanan tentang
WITH GRANT OPTION
, lihat:sumber
SELECT User, Host FROM mysql.user;
sebagai gantinya.ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
1) Ini berhasil untuk saya. Pertama, buat pengguna baru. Contoh: Pengguna
foo
dengan kata sandibar
2) Ganti kode di bawah ini dengan nama pengguna dengan 'foo'.
3) Login sebagai pengguna foo
Kata sandi: bar
4) Pastikan koneksi awal Anda dari Sequelize diatur ke foo dengan pw bar.
sumber
Saya melihat banyak jawaban (salah), sesederhana ini:
Catatan: alih-alih dibuat sendiri,
user
Anda bisa menggunakanroot
untuk menyambungkan ke database. Namun, menggunakan akun root default untuk membiarkan aplikasi terhubung ke database bukanlah cara yang disukai.Hak istimewa alternatif (hati-hati dan ingat prinsip hak istimewa paling rendah):
Jika Anda entah bagaimana mengalami kesalahan berikut:
Anda perlu menambahkan / mengubah dua baris berikut
/etc/mysql/my.cnf
dan memulai ulang mysql:sumber
GRANT ALL ON
untuk MySQL 8.0. Juga saya percaya alih-alih menonaktifkanbind-address
Anda dapat mengikat127.0.0.1
dan memasukkan--protocol=tcp
dalam perintah apa pun. Performa jangka panjang juga lebih baik daripada denganlocalhost
.Spesifikasi Saya:
Apa yang berhasil untuk saya:
Tanggapan di kedua pertanyaan:
NB: Saya membuat database (db_name) sebelumnya dan membuat kredensial pengguna dengan semua hak istimewa yang diberikan ke semua tabel di DB sebagai ganti menggunakan pengguna root default yang saya baca di suatu tempat adalah praktik terbaik.
sumber
Pengguna yang ditentukan tidak ada di MySQL Anda (jadi, MySQL mencoba membuatnya dengan GRANT seperti yang dilakukan sebelum versi 8, tetapi gagal dengan batasan yang diperkenalkan dalam versi ini).
MySQL cukup bodoh pada saat ini, jadi jika Anda memiliki 'root' @ 'localhost' dan mencoba memberikan hak istimewa ke 'root' @ '%' itu akan memperlakukan mereka sebagai pengguna yang berbeda, daripada gagasan umum untuk pengguna root di semua host, termasuk localhost.
Pesan kesalahan juga menyesatkan.
Jadi, jika Anda mendapatkan pesan kesalahan, periksa pengguna Anda yang sudah ada dengan sesuatu seperti ini
dan kemudian buat pengguna yang hilang (seperti yang disarankan Mike) atau sesuaikan perintah GRANT Anda dengan spesifikasi pengguna yang ada.
sumber
Hanya 2 sen saya untuk masalah ini. Saya mengalami masalah yang sama persis dengan mencoba terhubung dari MySQL Workbench. Saya menjalankan mesin virtual bitnami-mysql untuk menyiapkan kotak pasir lokal untuk pengembangan.
Tutorial Bitnami mengatakan untuk menjalankan perintah 'Grant All Privileges':
Ini jelas tidak berhasil, saya akhirnya berhasil menggunakan jawaban Mike Lischke.
Apa yang saya pikir terjadi adalah bahwa pengguna root @% memiliki kredensial yang salah terkait dengannya. Jadi, jika Anda telah mencoba mengubah hak istimewa pengguna dan tidak berhasil, coba:
Dari Konsol Mysql:
Daftar Pengguna (berguna untuk melihat semua pengguna Anda):
Jatuhkan Pengguna Yang Diinginkan:
Buat Pengguna dan Berikan Izin:
Jalankan perintah ini:
Temukan file konfigurasi mysql Anda 'my.cnf' dan cari baris yang terlihat seperti ini:
dan komentari menggunakan '#':
Kemudian restart layanan mysql Anda.
Semoga ini bisa membantu seseorang yang mengalami masalah yang sama!
sumber
Ini berhasil untuk saya:
sumber
Lihat nama pengguna dan domain Anda sama dengan yang dibuat sebelumnya. Mysql memilih akun dengan dua kolom dalam tabel pengguna. Jika berbeda, mysql mungkin berpikir Anda ingin membuat akun baru dengan hibah, yang tidak didukung setelah versi 8.0.
sumber
Spesifikasi Saya:
Apa yang berhasil untuk saya:
sumber
Nah, saya baru saja mengalami masalah yang sama. Bahkan jika rute memiliki '%' tidak dapat terhubung dari jarak jauh. Sekarang, melihat
my.ini
file (file config di windows)bind-address
pernyataan itu tidak terjawab.Jadi ... Saya meletakkan ini
bind-address = *
setelahnya[mysqld]
dan memulai kembali layanan. Sekarang berhasil!sumber
1. memberikan hak istimewa
mysql> BERIKAN SEMUA HAK ISTIMEWA. UNTUK 'root' @ '%' DENGAN OPSI GRANT;
mysql> HAK ISTIMEWA FLUSH
2. periksa tabel pengguna:
mysql> gunakan mysql
mysql> pilih host, pengguna dari pengguna
3. Ubah file konfigurasi
mysql default bind ip : 127.0.0.1, jika kita ingin mengunjungi layanan remote, hapus config
4. akhirnya restart layanan
layanan brew restart mysql
sumber
Ini mungkin berhasil:
sumber
Saya memiliki masalah yang sama, yang membawa saya ke sini. Secara khusus, untuk pembangunan lokal, saya ingin bisa hidup
mysql -u root -p
tanpanyasudo
. Saya tidak ingin membuat pengguna baru. Saya ingin menggunakanroot
dari aplikasi web PHP lokal.Pesan kesalahan ini menyesatkan, karena tidak ada yang salah dengan
'root'@'%'
hak istimewa pengguna default .Sebaliknya, seperti yang disebutkan beberapa orang dalam jawaban lain, solusinya hanya diatur,
bind-address=0.0.0.0
bukanbind-address=127.0.0.1
di/etc/mysql/mysql.conf.d/mysqld.cnf
konfigurasi saya . Tidak ada perubahan yang diperlukan.sumber
Saya memiliki masalah yang sama di CentOS dan ini berhasil untuk saya (versi: 8.0.11):
sumber