Yerel makineme MySQL Community Edition 5.5 yükledim ve harici kaynaktan bağlanabilmem için uzak bağlantılara izin vermek istiyorum.
Bunu nasıl yapabilirim?
MySQL'de varsayılan olarak buna izin verilir.
Varsayılan olarak devre dışı bırakılan şey uzaktan root
erişimidir. Bunu etkinleştirmek istiyorsanız, bu SQL komutunu yerel olarak çalıştırın:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Ardından aşağıdaki satırı bulun ve Unix/OSX sistemlerinde genellikle /etc/mysql/my.cnf' dosyasında bulunan
my.cnf' dosyanızda yorumlayın. Bazı durumlarda dosyanın konumu /etc/mysql/mysql.conf.d/mysqld.cnf şeklindedir).
Eğer bir Windows sistemiyse, bunu MySQL kurulum dizininde bulabilirsiniz, genellikle C:\Program Files\MySQL\MySQL Server 5.5\
gibi bir şeydir ve dosya adı my.ini
olacaktır.
Değişim hattı
bind-address = 127.0.0.1
için
#bind-address = 127.0.0.1
Ve değişikliklerin etkili olması için MySQL sunucusunu yeniden başlatın (Unix/OSX ve Windows).
Benim durumumda cent OS üzerindeki uzak bir mysql sunucusuna bağlanmaya çalışıyordum. Birçok çözümden geçtikten sonra (tüm ayrıcalıkları vermek, ip bağlarını kaldırmak, ağı etkinleştirmek) sorun hala çözülmüyordu.
Çeşitli çözümleri araştırırken iptables ile karşılaştım ve bu sayede 3306 numaralı mysql portunun bağlantı kabul etmediğini fark ettim.
Bu sorunu nasıl kontrol ettiğime ve çözdüğüme dair küçük bir not.
telnet (mysql sunucu ip) [portNo]
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
service iptables stop
Umarım bu yardımcı olur.
MySQL sunucu işleminiz yalnızca 127.0.0.1 veya ::1 adresini dinliyorsa, uzaktan bağlanamazsınız. Eğer /etc/my.cnf
içinde bir bind-address
ayarınız varsa sorunun kaynağı bu olabilir.
Ayrıca localhost
olmayan bir kullanıcı için de ayrıcalıklar eklemeniz gerekecektir.