Uzak MySQL Veritabanı Bağlantısı
Kullandığım farklı 2 uzak sunucu ve bilgisayarım arasında ortak bir veritabanında bazı derlenmiş veriler tutuyorum. Farklı erişim yöntemleri (programlama dili, uygulama vb.) söz konusu olabilir elbette1.
Veri görselleştirme sürecinde Tableau ve R programlama ile erişim sağlıyorum. Sunucu ve bilgisayarda yer alan kurulumlarda localhost
(veya 127.0.0.1
) ile kolaylıkla erişim sağlayabildiğiniz veritabanı sunucusu uzak erişimlerde bir takım ayarlamalar gerektirmekte.
Bu yazıda paylaşımlı hosting ve DigitalOcean üzerinden oluşturduğunuz One-click apps > MySQL on Ubuntu veritabanına nasıl uzak erişim sağlayabileceğinizden bahsedeceğim.
MySQL Veritabanı’na Uzak Erişim Sağlamak
UFW (Uncomplicated Firewall) ve Güvenlik Duvarı İşlemleri başlıklı yazıdan da hazırlayabileceğiniz gibi port kontrollerimizi kolaylıkla SSH bağlantısı üzerinden sunucuya erişerek gerçekleştirebilmekteyiz. Port kontrollerimizi gerçekleştirelim.
ufw status
Eğer 3306
numaralı porta erişim izni (ALLOW
) tanımlanmamışsa ilgili portu yapılandırmalıyız.
sudo ufw allow 3306/tcp
sudo service ufw restart
DigitalOcean ön tanımlı olarak MySQL kurulumunda 3306/tcp
portu üzerinden erişim sunmakta2. Yapılması gereken son işlem ise IP izninin tanımlanması. Bu işlem için MySQL erişimine ihtiyacımız var.
mysql -u [kullanici-adi] -p [şifre]
Erişim sağlandıktan sonra izin işlemini gerçekleştirmeliyiz.
GRANT ALL PRIVILEGES ON [veritabani-adi].* TO [kullanici-adi]@[erisim-saglanacak-cikis-ip-degeri] IDENTIFIED BY '[sifre]';
FLUSH PRIVILEGES;
Şimdiye kadar olan süreç hemen hemen tüm sunucularda benzerlik taşıyacaktır. [erisim-saglanacak-cikis-ip-degeri]
farklı bir sunucu ya da bilgisayarınızdan erişim sağlıyorsanız sunucu veya bilgisayarınızın IP adresi olmalı. Bu pratik yöntem dışında SSH Tunnel yöntemini de deneyebilirsiniz. Bu sayede localhost üzerinden çıkış yaparak veritabanı erişimi sağlayabilirsiniz3. Tanımladığınız bu erişimler phpMyAdmin > Kullanıcı Hesapları altında listelenmektedir.
MySQL erişimleriyle ilgili kontrolleri ise SHOW GRANTS FOR
ile gerçekleştirebilirsiniz4 5.
SHOW GRANTS FOR 'admin'@'localhost';
SHOW GRANTS FOR 'admin'@'[erisim-saglanacak-cikis-ip-degeri]';
Paylaşımlı hosting üzerinden erişim tanımlama aşamasında yukarıdaki işlemlere ek olarak phpMyAdmin üzerinden Kullanıcı Hesapları > Yeni > Kullanıcı Hesabı Ekle linkini tıklamanız gerekmekte. Ardından açılacak olan Kullanıcı hesabı ekle sayfasında ilgili alanlara Kullanıcı adı, Anamakine adı, Parola alanlarını doldurmanız gerekmekte. Anamakine adı yine erişim sağlamak istediğiniz (herhangi bir anamakine adı: %) bilgisayar/sunucuya ait IP adresi olmalı.
Genel yetkiler alanını ise gerçekleştireceğiniz işlemlere uygun olarak belirlemelisiniz. Tüm yetkilendirmeler için Tümünü işaretle seçimini yapabilirsiniz.
- Justin Ellingwood. (2014). How To Set Up a Remote Database to Optimize Site Performance with MySQL ↩
- Brian Boucheron. (2017). How To Set Up a Remote Database to Optimize Site Performance with MySQL on Ubuntu 16.04 ↩
- Jon Schwenn. (2016). How to Connect to a MySQL Server Remotely with MySQL Workbench ↩
- MySQL: Show grants for a user in MySQL. Tech on the Net ↩
- SHOW GRANTS Statement. MySQL Documentation ↩