Mysql'e uzaktan bağlantıya nasıl izin verilir

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?

Çözüm

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 bulunanmy.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).

Yorumlar (27)

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.

  • Bağlantı noktasının bağlantıları kabul edip etmediğini kontrol eder:
telnet (mysql sunucu ip) [portNo]
  • Bağlantı noktasındaki bağlantılara izin vermek için ip tablosu kuralı ekleme:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
  • Bunu üretim ortamı için tavsiye etmem, ancak iptables'ınız düzgün yapılandırılmamışsa, kuralları eklemek sorunu yine de çözmeyebilir. Bu durumda aşağıdakiler yapılmalıdır:
service iptables stop

Umarım bu yardımcı olur.

Yorumlar (0)

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.

Yorumlar (2)