Başka bir sunucuya mysql bağlantı erişimi vermek

Birden fazla yapılandırılmış sunucuları olan arkadaşların karşılaştığı konulardan biriside kullanılan mysql sunucusuna diğer sunuculardan erişim izni vermektir. Bu konuda yeniyseniz bir süre problemi çözene kadar kafanızı ağrıtabilir, benim öyle olmuştu (bir zamanlar).

Kullandığınız mysql sunucusundaki bir veritabanına başka ip’li yada domainli sunucudan bağlanma yetkisi vermek için aşağıdaki yazacaklarımı uygulayın.

SSH ile mysql sunucusuna bağlanın ve komut satırında aşağıdaki parametreyi çalıştırarak mysql komut alanına girin:

mysql

#yada

mysql -u root -p

İlk komut işinizi görecektir, ancak görmezse ikinciyi çalıştırın. Eğer şifre isterse mysql şifrenizi girip komut alanına girelim. (Eğer mysql ye özel şifre vermediyseniz, sunucunun root şifresini deneyin)

Komut satırına asagidaki parametreleri sırası ile ekleyip, çalıştırarak enter yapın (her satırı yazıp enter yapın) Satırlardaki alanları kendinize göre düzenlemeyi unutmayın:

GRANT USAGE ON VERITABANI_ADI.* to [email protected]_VERILECEK_SUNUCU_IP_YADA_SUNUCU_DOMAIN IDENTIFIED BY 'VERITABANI_ERISIM_YETKISI_OLAN_KULLANICI_SIFRESI';

GRANT ALL ON VERITABANI_ADI.* to [email protected]_VERILECEK_SUNUCU_IP_YADA_SUNUCU_DOMAIN ;

flush privileges;

Açıklamaları iyi anlamanız için uzun tuttum, bir örnek ekleyerek aklınızdaki karışıklığı gidereyim :)

GRANT USAGE ON DB_kuaza.* to [email protected] IDENTIFIED BY 'KULLANICI_sifre';

GRANT ALL ON DB_kuaza.* to [email protected];

flush privileges;

* Guncelleme: 03/06/2016

Ayri olarak /etc/my.cnf dosyasinda da bir kac degisiklik yapmak gerekecek.

/etc/my.cnf dosyasini duzenleme uygulamasi ile acin ve icerisindeki ‘skip-networking’ ayarinin basina # isaretini koyun, asagidaki gibi olacak:

#skip-networking

Asagidaki ayarida varsa ekleyin:

symbolic-links=0

Ornek my.cnf dosyasi bu sekilde olmali.

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# skip-networking
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address            = 81.91.111.111

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

UYARI: ornek ayar dosyasindaki datadir, socket, log-error, pid-file ayari sizin sunucuzda farkli olabilir, eger bunlar hata verirse o ayarlarin basina # isareti koyarak etkisizlestirin.3

Sonrasinda mysql sunucumuza restart atalim ve ayarlari onaylayalim.

service mysqld restart

* Mysql portunu acalim ve belirli IPlere izin verelim:

Belirli iplere izin vererek mysql guvenliginizi artirabilirsiniz. Bunun icin asagidaki sekilde yapilanlari uygulayin.

nano /etc/sysconfig/iptables

COMMIT kelimesinden uste asagidaki kodu ekleyin:

-A INPUT -s 77.48.155.154/32 -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

Bu sekilde bir kullanim ile mysql portu olan :3306 portuna sadece bu ip adresinden istek gelirse cevap verilecek demek oluyor: 77.48.155.154

Dosyayi kapatmak icin ctrl + x, y enter, enter yaptiginizda kaydedip cikacak. Bunun akabinde ayarlarin aktif olmasi ve porton acilmasi icin iptables programina restart atalim.

service iptables restart

Bu işlemlerden sonra yetki verdiğiniz sunucudan artık mysql serveriniza bağlantı yapabileceksiniz, localhost yerine mysql ip adresini kullanmayıda unutmamanız gerek.

2 YORUMLAR

CEVAP VER

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.