Saya memiliki server dengan sejumlah besar database mysql. Baru-baru ini beberapa skema telah berhenti ditampilkan ketika masuk sebagai Root.
Jika saya menggunakan login untuk database spesifik itu maka saya bisa melihatnya.
'Pemilik' untuk database ini adalah root tetapi yang lain yang juga tidak terlihat oleh root dimiliki oleh orang lain.
Tampaknya ini adalah basis data yang telah kami akses dan kerjakan baru-baru ini yang hilang tetapi sekarang ada lebih dari 5 yang tidak terlihat. Ini bukan cache lokal dan siapa pun yang menggunakan login root memiliki masalah yang sama.
mysql
database
phpmyadmin
TomFirth
sumber
sumber
SELECT USER() AttemptedToConnectAsUser,CURRENT_USER() AllowedToConnectAsUser;
Apa outputnya ???Jawaban:
Jika CURRENT_USER () Anda tidak mengatakan
root@localhost
, maka Anda tidak memiliki hak akses root dan tidak diizinkan untuk terhubung.Untuk melihat hak istimewa apa yang sebenarnya Anda miliki setelah terhubung, jalankan ini
Saat Anda terhubung ke database tertentu, Anda seharusnya bisa melihatnya
Katakanlah, misalnya, Anda terhubung ke buyspace_systdb
Output dari
SHOW GRANTS;
kemungkinan besar akan muncul seperti iniPengguna
root@localhost
akan bekerja jika Anda masuk dari dalam server lokal itu. Jika Anda masuk secara jarak jauh,root@localhost
tidak akan mengizinkan USER () untuk mengautentikasi sebagai CURRENT_USER () . Buktinya ada di tampilan pertama dalam pertanyaan Anda. Perhatikan bahwa Anda hanya dapat melihat information_schema. Ini akan hampir kosong dengan pengecualian information_schema.schemata yang akan memiliki 1 atau 2 entri. Jikaroot@'%'
adamysql.user
dan memiliki hak yang samaroot@localhost
, maka akan diizinkan untuk melihat semuanyaroot@localhost
.MySQL memiliki skema otentikasi yang memiliki efek spiral ke bawah. Jika pengguna yang Anda coba hubungi tidak ada, itu akan mencoba nama pengguna yang lebih samar (memungkinkan untuk wildcard atau hak terbatas). Lihat posting DBA StackExchange saya kesalahan MySQL: Akses ditolak untuk pengguna 'a' @ 'localhost' (menggunakan kata sandi: YES) untuk rincian lebih lanjut tentang ini.
Intinya : Anda tidak dapat terhubung
root@localhost
dari lokasi yang jauhsumber