Ana bilgisayar 'xxx.xx.xxx.xxx' bu MySQL sunucusuna bağlanmasına izin verilmiyor

Bunun son derece basit olması gerekiyor, ama ben çalıştıramıyorum.
Sadece MySQL sunucuma uzaktan bağlanmaya çalışıyorum.

olarak bağlanıyor

mysql -u root -h localhost -p  

iyi çalışıyor, ancak

mysql -u root -h 'any ip address here' -p

hata ile başarısız olur

ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server

mysql.user` tablosunda, ana bilgisayar 'localhost' olan 'root' kullanıcısı için ana bilgisayar '%' olan bir diğeriyle tamamen aynı girdi vardır.

Aklımı kaçırmış durumdayım ve nasıl ilerleyeceğim konusunda hiçbir fikrim yok. Her türlü fikre açığım.

Çözüm

Muhtemelen bir güvenlik önlemi. Yeni bir yönetici hesabı eklemeyi deneyebilirsiniz:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;

Pascal ve diğerlerinin de belirttiği gibi, bu tür bir erişime sahip bir kullanıcının herhangi bir IP'ye açık olması iyi bir fikir değildir. Eğer yönetici bir kullanıcıya ihtiyacınız varsa, root kullanın ve localhost'ta bırakın. Diğer tüm eylemler için tam olarak ihtiyacınız olan ayrıcalıkları belirtin ve Pascal'ın aşağıda önerdiği gibi kullanıcının erişilebilirliğini sınırlayın.

Düzenle:

MySQL SSS'den:

Eğer neden aldığınızı anlayamıyorsanız Erişim reddedildi, kullanıcıdan kaldır Host'a sahip tüm girişleri tablolayın joker karakterler içeren değerler (girişler '%' veya '_' karakterlerini içeren). A çok yaygın bir hata, yeni bir Host='%' ile giriş ve Kullanıcı='bazı_kullanıcı', bunun için localhost belirtmenizi sağlar aynı makineden bağlanın. Bu Bunun işe yaramamasının nedeni şudur varsayılan ayrıcalıklar bir Host='localhost' ile giriş ve Kullanıcı=''. Çünkü bu girişin bir Ana Bilgisayar değeri 'localhost' daha fazladır '%''den daha spesifiktir, aşağıdaki durumlarda kullanılır olduğunda yeni giriş tercihi localhost'tan bağlanılıyor! Doğru prosedür ikinci bir giriş eklemektir Host='localhost' ile ve User='some_user' veya silmek için Host='localhost' ile giriş ve Kullanıcı=''. Girişi sildikten sonra, FLUSH PRIVILEGES vermeyi unutmayın deyimiyle hibe tablolarını yeniden yükleyin. Ayrıca bkz. Bölüm 5.4.4, "Erişim Kontrol, Aşama 1: Bağlantı Doğrulama".

Yorumlar (8)

*Host ''xxx.xx.xxx.xxx'' mesajının bu MySQL sunucusuna bağlanmasına izin verilmiyor MySQL sunucusundan MySQL istemcisine verilen bir yanıttır. Ana bilgisayar adını değil IP adresini nasıl döndürdüğüne dikkat edin.

Eğer mysql -h -u -p ile bağlanmaya çalışıyorsanız ve IP adresi ile birlikte bu mesajı döndürüyorsa, MySQL sunucusu istemci üzerinde ters arama yapamıyor demektir. Bu kritiktir çünkü MySQL istemcisini bağışçılarla bu şekilde eşleştirir.

MySQL sunucusundan nslookup yapabildiğinizden emin olun. Eğer bu işe yaramazsa, DNS sunucusunda bir giriş yok demektir. Alternatif olarak, MySQL sunucusunun HOSTS dosyasına bir giriş koyabilirsiniz (` `

Yorumlar (1)

Hibe tablolarını manuel olarak değiştirirseniz (INSERT, UPDATE vb. kullanarak), şu komutu çalıştırmanız gerekir Sunucuya izin tablolarını yeniden yüklemesini söylemek için bir FLUSH PRIVILEGES deyimi.

Not: herhangi bir ana bilgisayarın herhangi bir kullanıcı için bağlanmasına izin vermenizi tavsiye etmem (özellikle root kullanımı için). Eğer mysql'i bir istemci/sunucu uygulaması için kullanıyorsanız, bir alt ağ adresini tercih edin. Eğer mysql'i bir web sunucusu veya uygulama sunucusu ile kullanıyorsanız, belirli IP'ler kullanın.

Yorumlar (0)