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.
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".
*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<hostname> -u<somebody> -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 <mysqlclient>
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 (<ipaddress> <fullyqualifiedhostname> <hostname>
<- Buradaki sıra önemli olabilir).
Sunucumun ana bilgisayar dosyasında MySQL istemcisinin ters aramasına izin veren bir girdi bu sorunu çözdü.
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.