MySQL kurulu linux sunucularda bazı durumlarda farklı bir sunucu ip sine erişim izni vermek isteyebilirsiniz. Elbette sunucu ip adresinden kasıt kişisel kullandığınız bilgisayarlarınızın çıkış ip adresi de olabilir. Bazen local çalışmak isteyebilirsiniz.
Bu makalede yer alan mysql uzak bağlantı ayarlarını tüm VDS paketlerinde gerçekleştirebilirsiniz!
Öncelikle my.cnf dosyamızı nano ile açıyoruz ;
1 |
nano /etc/my.cnf |
[mysqld] satırının hemen altına aşağıdaki satırı sunucu ip adresiniz ile değiştirerek ekliyoruz ;
1 |
bind-address=sunucuipadresi |
Eğer my.conf dosyamızda daha önceden var olan skip-networking satırı bulunuyor ise başına # ekleyerek etkisiz hale getirmeliyiz ;
1 |
# skip-networking |
Şimdi dışarıdan mysql sunucumuza erişim yapacak ip adresini tanımlayacağız. Öncelikle mysql e erişiyoruz. Mysql root şifrenizi bilmeniz gerekiyor ;
1 |
mysql -u root -p |
eğer mysql root şifresi sunucunuza tanımlanmamış ise aşağıdaki komut ile erişebilirsiniz ;
1 |
mysql |
Aşağıdaki örnek mysql sorgusu ile bir veritabanı kullanıcısı ve veritabanı için dilediğiniz bir ip adresine erişim izni (mysql uzak sunucu bağlantı izni) verebilirsiniz ;
1 |
mysql> GRANT ALL ON db_adi.tablo_adi TO 'kullanici'@'ip' IDENTIFIED BY 'sifre'; |
Açıklayacak olur isek ;
db_adi: izin verilecek veritabanı adıdır. Tüm veritabanlarına izin vermek için * yazın.
tablo_adi: izin verilecek tablonun adıdır. Tüm tablolara izin vermek için * yazın.
kullanici: izin verilecek veritabanı kullanıcısıdır.
sifre: izin verilecek mysql kullanıcısının şifresidir.
ip: izin verilecek ip adresidir. Eğer % yazarsanız tüm ip adresine erişim izni vermiş olursunuz.
Örnek 1 : admin_cliaweb veritabanı ve kullacısının tüm tablolarına 88.244.29.252 ip adresi için erişim izni veriyoruz
1 |
mysql> GRANT ALL ON admin_cliaweb.* TO admin_cliaweb@'88.244.29.252' IDENTIFIED BY 'd99c.89v3'; |
Örnek 2 : admin_cliaweb veritabanı ve kullacısının tüm tablolarına tüm ip adresleri için erişim izni veriyoruz
1 |
mysql> GRANT ALL ON admin_cliaweb.* TO 'admin_cliaweb'@'%' IDENTIFIED BY 'd99c.89v3'; |
Örnek 3 : admin_cliaweb mysql kullanıcısına tüm veritabanları için tüm ip adreslerinden erişim izni veriyoruz
1 |
mysql> GRANT ALL ON *.* TO 'admin_cliaweb'@'%' IDENTIFIED BY 'd99c.89v3'; |
İşlemimizi tamamladığımızda mysql> ekranından exit diyerek çıkış yapıyoruz.
İlgili değişikliklerin çalışabilmesi için mysql sunucumuzu yeniden başlatıyoruz ;
1 |
service mysqld restart |
Linux sunucunuzda firewall mevcut ise bazı durumlarda 3306 portuna erişim olmayabilir. Aşağıdaki komut ile açabilirsiniz ;
1 2 3 |
service iptables stop /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT service iptables start |
İşlemler bu kadar 🙂