Akses ke server MySQL melalui VirtualBox

20

Saya mencoba untuk mendapatkan server MySQL (yang ada di dalam VM) untuk menanggapi klien (yang ada di mesin host). Semua metode kembali sama:

Host '10.0.2.2' is not allowed to connect to this MySQL server

Saya telah memastikan port forwardind yang tepat. Saya juga memastikan, bahwa dalam my.cnfsaya memiliki garis berikut:

skip-external-locking
bind-address = 0.0.0.0

Ini tidak berhasil bagi saya. Saya juga mencoba bermain sedikit sebagai berikut:

bind-address = 10.0.2.2

Tapi ini juga tidak berhasil bagi saya - server tidak bisa memulai.

Ada ide, di mana saya salah?

MEMPERBARUI. Saya tidak memeriksa hak istimewa root@%seperti pada Bagaimana cara mengubah hak istimewa untuk pengguna MySQL yang sudah dibuat?

TERPECAHKAN.

pembelaan diri
sumber
Akun pengguna apa yang Anda buat dalam MySQL?
Shane Madden
Akun saya adalah root:root. Saya ragu masalah ada di login, jika tidak pesan kesalahan akan menyatakan sesuatu lile Access denied for [email protected]atau sesuatu.
defance
@ShaneMadden Maaf. Kamu benar sekali. Masalahnya adalah untuk hak istimewa root@%. Salahku.
bertahan

Jawaban:

37

Akun root hanya untuk host lokal di sebagian besar instalasi default, apakah Anda yakin Anda mengizinkannya masuk dari sistem lain? Dari manual referensi MySQL :

itu berarti bahwa tidak ada baris di tabel pengguna dengan nilai Host yang cocok dengan host klien

Jadi, tidak ada %atau tidak ada 10.0.2.2di Hostkolom sama sekali. Periksa konfigurasi Anda saat ini:

select user,host from mysql.user where user='root';

Anda mungkin ingin membuat entri root baru dengan kata sandi yang sama seperti yang Anda miliki sekarang.

create user 'root'@'10.0.2.2' identified by 'yourpassword';
grant all privileges on *.* to 'root'@'10.0.2.2' with grant option;
flush privileges;
Shane Madden
sumber
1
Ya. Terima kasih. Saya juga menyelesaikannya beberapa saat yang lalu seperti yang Anda nyatakan di sini. Itulah masalah saya.
defance
1
Jawaban Shane benar dan dapat dijalankan dalam satu perintah, membantu jika Anda menggunakan sesuatu seperti skrip Anonim / Gelandangan untuk mengotomatisasi:mysql -e "create user 'root'@'10.0.2.2' identified by 'yourpassword'; grant all privileges on *.* to 'root'@'10.0.2.2' with grant option; flush privileges;"
KayakinKoder