Uzaktan Erişimi Etkinleştir (Hibe) Ana Sayfa / Eğiticiler / Mysql / Uzaktan Erişimi Etkinleştir (Hibe) mysql sunucunuza uzak makineden bağlanmayı denerseniz ve aşağıdaki gibi bir hatayla karşılaşırsanız, bu makale tam size göre.
HATA 1130 (HY000): '1.2.3.4' ana bilgisayarının bu MySQL sunucusuna bağlanmasına izin verilmiyor
MySQL yapılandırmasını değiştir
Mysql config dosyasını düzenlemeye başlayın
vim /etc/mysql/my.cnf
Aşağıdaki satırları yorumlayın.
#bind-address = 127.0.0.1
#skip-networking
Atlama ağı hattını bulamazsanız ekleyin ve yorum yapın.
MySQL sunucusunu yeniden başlatın.
~ /etc/init.d/mysql restart
GRANT ayrıcalığını değiştir
Yukarıdaki değişiklikten sonra bile uzaktan erişim veya erişim elde edemediğinizi ancak tüm veritabanlarına erişemediğinizi görmek sizi şaşırtabilir.
Varsayılan olarak, kullandığınız mysql kullanıcı adı ve parolasının yerel olarak mysql sunucusuna erişmesine izin verilir. Bu yüzden ayrıcalığı güncellemeniz gerekiyor.
Tüm makinelerden erişmek için aşağıdaki gibi bir komut çalıştırın. (Değiştirin USERNAME
ve PASSWORD
kimlik bilgilerinizle.)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Belirli bir IP'den erişim vermek için aşağıdaki gibi bir komut çalıştırın. (Değiştirin USERNAME
ve PASSWORD
kimlik bilgilerinizle.)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
1.2.3.4'ü IP'nizle değiştirebilirsiniz. Birden çok IP'den erişim vermek için yukarıdaki komutu defalarca çalıştırabilirsiniz.
Ayrıca ayrı bir USERNAME
&PASSWORD
uzaktan erişim için .
Nihai sonucu aşağıdaki yollarla kontrol edebilirsiniz:
SELECT * from information_schema.user_privileges where grantee like "'USERNAME'%";
Son olarak, şunları da çalıştırmanız gerekebilir:
mysql> FLUSH PRIVILEGES;
Test bağlantısı
Terminal / komut satırından:
mysql -h HOST -u USERNAME -pPASSWORD
Bir mysql kabuğu alırsanız, show veritabanlarını çalıştırmayı unutmayın; uzak makinelerden doğru ayrıcalıklara sahip olup olmadığınızı kontrol etmek için.
Bonus İpucu: Erişimi İptal Et
Bir kullanıcıya yanlışlıkla erişim izni verirseniz, iptal etme seçeneğinin kullanışlı olması daha iyidir.
Aşağıda, tüm makinelerden USERNAME için tüm seçenekler iptal edilecektir:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'%';
Following will revoke all options for USERNAME from particular IP:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'1.2.3.4';
Its better to check information_schema.user_privileges table after running REVOKE command.
REVOKE komutunu çalıştırdıktan sonra KULLANIM ayrıcalığı görürseniz, sorun değil. Hiç bir ayrıcalık kadar iyidir. İptal edilip edilemeyeceğinden emin değilim.