localhost tidak cocok dengan % di MySQL. Sepertinya harus, tapi nyatanya tidak. Anda harus memberikan hak istimewa secara terpisah kepada example@sqldat.com , keduanya untuk USAGE hak istimewa, dan untuk hak istimewa pada setiap database.
Atau Anda dapat terhubung sebagai example@sqldat.com yang melakukannya cocokkan % . Menggunakan alamat IP untuk localhost sepertinya harus bekerja secara identik dengan localhost, tetapi tidak. Anda harus memiliki dua baris di mysql.user tabel (dan juga di mysql.db tabel dalam kasus Anda) untuk mengaktifkan keduanya.
Untuk menunjukkan perbedaan antara localhost dan 127.0.0.1:
Menghubungkan sebagai mysql -h localhost menggunakan antarmuka soket UNIX, dan melewati TCP/IP. Ini bisa sedikit lebih baik untuk kinerja, tetapi memiliki efek pada pencocokan hibah yang dijelaskan di atas.
Anda dapat memaksa koneksi TCP/IP lokal dengan menghubungkan sebagai mysql -h 127.0.0.1 . Kemudian ia akan mengambil hibah yang telah Anda buat ke example@sqldat.com% .
Jadi untuk mendapatkan pengguna, sandi, dan hak istimewa yang sama untuk antarmuka soket dan antarmuka TCP/IP, Anda harus menjalankan semua dari pernyataan berikut:
GRANT USAGE ON *.* TO 'myuser'@'%' IDENTIFIED BY PASSWORD '*7733323232...'
GRANT USAGE ON *.* TO 'myuser'@'localhost' IDENTIFIED BY PASSWORD '*7733323232...'
GRANT ALL PRIVILEGES ON `db1`.* TO 'myuser'@'%'
GRANT ALL PRIVILEGES ON `db1`.* TO 'myuser'@'localhost'
GRANT ALL PRIVILEGES ON `db2`.* TO 'myuser'@'%'
GRANT ALL PRIVILEGES ON `db2`.* TO 'myuser'@'localhost'