VirtualBox ile MySQL sunucusuna erişim


20

(Ana makine üzerinde) istemciye yanıt vermek için (VM içinde) MySQL sunucusu almaya çalışıyorum. Tüm yöntemler aynı döndürür:

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

Ileriye doğru liman sağladım. Ben de sağladım, içinde my.cnfşu şekilde:

skip-external-locking
bind-address = 0.0.0.0

Bu benim için işe yaramadı. Ben de biraz oyun oynamayı denedim:

bind-address = 10.0.2.2

Ama bu da bana işe yaramadı - sunucu başlayamadı.

Yanlış olduğum herhangi bir fikir var mı?

GÜNCELLEME. Önceden oluşturulmuş MySQL kullanıcısı için ayrıcalıkları nasıl değiştirebilirim? Bölümünde olduğu root@%gibi ayrıcalıkları kontrol etmedim.

ÇÖZÜLDÜ.


MySQL içinde hangi kullanıcı hesaplarını oluşturdunuz?
Shane Madden

Benim hesabım root:root. Sorunun oturum açmada olduğundan şüpheliyim, aksi takdirde hata mesajı lile Access denied for root@10.0.2.2veya başka bir şey ifade eder.
kusur

@ShaneMadden Üzgünüm. Çok haklıydın. Şey ayrıcalık içindeydi root@%. Benim hatam güzel.
kusur

Yanıtlar:


37

Kök hesabın localhost-sadece varsayılan kurulumların büyük çoğunluğunda, diğer sistemden oturum açmasına izin verdiğinizden emin misiniz? Gönderen MySQL referans kılavuzun :

kullanıcı tablosunda, istemci ana bilgisayarla eşleşen bir Ana Bilgisayar değeri olan bir satır olmadığı anlamına gelir

Yani, orada %ya 10.0.2.2içinde Hosthiç kolona. Mevcut yapılandırmanızı kontrol edin:

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

Muhtemelen şu andaki şifreyle yeni bir root girişi oluşturmak istersiniz.

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;

1
Evet. Teşekkür ederim. Burada belirttiğiniz gibi, bir dakika önce de çözdüm. Bu benim sorunumdu.
kusur

1
Shane'in cevabı doğrudur ve tek bir komutta çalıştırılabilir, otomatikleştirmek için Ansible komut dosyası / Vagrant gibi bir şey kullanıyorsanız: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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.