Daha fazla
- Cinsiyet
- Erkek
- Meslek
- Öğrenci
Merhaba arkadaşlar,
Bitirme projem için üzerinde çalışma yürüttüğüm Raspberry Pi Zero cihazıma LEMP kurulumunun ayarlarını yaparken MariaDB kurulumu sonrası yerel makine dışında (yani localhost dışında) MariaDB'de tanımladığım kullanıcıma erişim sağlayamıyordum. Bu soruna hakkında araştırma yaparken ne MariaDB'nin rehber belgelerinde ne Raspberry rehberlerinde ne de internetteki bilinen kaynaklarda bu soruna karşı bir çözüme denk gelemedim. Bugün sorunla ilgili farklı anahtar kelimelerini ararken bir rehber buldum ve rehberdeki ufak bir bilgi notu sorunun kaynağını anlamama sebep oldu.
İşte sorunu çözme adımlarımız:
Ve gördüğünüz gibi hedefimize ulaştık. Artık veritabanımıza yerel makine (localhost) dışında dışarıdan başka bir cihaz ile bağlanabiliyoruz.
Çözümü bulmama yardımcı olan siteyi de şuraya bırakalım: Configure Remote Access to MySQL / MariaDB Databases | Website for Students
Bitirme projem için üzerinde çalışma yürüttüğüm Raspberry Pi Zero cihazıma LEMP kurulumunun ayarlarını yaparken MariaDB kurulumu sonrası yerel makine dışında (yani localhost dışında) MariaDB'de tanımladığım kullanıcıma erişim sağlayamıyordum. Bu soruna hakkında araştırma yaparken ne MariaDB'nin rehber belgelerinde ne Raspberry rehberlerinde ne de internetteki bilinen kaynaklarda bu soruna karşı bir çözüme denk gelemedim. Bugün sorunla ilgili farklı anahtar kelimelerini ararken bir rehber buldum ve rehberdeki ufak bir bilgi notu sorunun kaynağını anlamama sebep oldu.
İşte sorunu çözme adımlarımız:
- Önce MariaDB'yi sistemimize aşağıdaki komut kuralım.
sudo apt install mariadb-server -y
- Ardından MariaDB'nin ilk çalıştırma ayarlarını aşağıdaki komut ile çalıştırıp çıkan adımları kendinize uyan şekilde tamamlayın.
sudo mariadb-secure-installation
- MariaDB kurulumumuzu tamamladığımıza göre artık MariaDB yöneticisini çalıştırabiliriz.
sudo mariadb
MariaDB'nin konsol istemcisine artık "root" olarak giriş yaptık. Şimdi kendimize yeni bir SQL kullanıcısı oluşturalım. Zira her işimize "root" kullanıcısı ile devam edemeyiz. Aşağıdaki komutu MariaDB'nin istemcisine girelim.
CREATE USER 'kullanici_adi'@'%' IDENTIFIED BY 'kullanici_sifresi';
Artık bu komut ile global erişime sahip "kullanici_adi" adında ve "kullanici_sifresi" şifreli bir kullanıcı hesabı açtık. Global erişimi kullanıcı adınından sonra gelen@'%'
etiketi ile göstermiş oluyoruz.@
bize burada hangi alan adı aralığında olduğunu tanımlamamıza yarıyor.'%'
ise burada joker karakter işlevi görüyor ve gelen her türlü isteği kabul ediyor.
Kullanıcı adını oluşturma işlemini gerçekleştirdikten sonra aşağıdaki komut ile yeni tanımladığımız kullanıcıya erişim izni veriyoruz.
UPDATE mysql.user SET grant_priv='Y', super_priv='Y' WHERE User='kullanici_adi'; FLUSH PRIVILEGES; GRANT ALL ON veritabani_adi.tablo_adi TO 'kullanici_adi'@'%';
grant.priv
vesuper.priv
ile ilgili kullanıcıya süper kullanıcı yetkisi veriyoruz. Ardından gelenFlush Privileges
komutu ile veritabanı yazılımının yetkili kullanıcı tablosunu güncellemesini sağlıyoruz.Grant All on
kısmı ile ise belirli veritabanlarına erişim izni veriyoruz. Burada dikkat edilmesi gereken noktaveritabani_adi.tablo_adi
kısmıdır. Bu kısımda sadece kullanacağımız veritabanlarında işlem yapmasını sağlayabileceğimiz gibi*.*
gibi joker tanımlama ile tüm veritabanlarına ve içerilerindeki tablolara veyaveritabani_adi.*
gibi bir joker tanımlama ile belirlediğimiz veritabanına ait tüm tablolara erişim ve kullanım yetkisi vermekteyiz. - Tüm bu kullanıcı oluşturma, izinleri verme ve erişilebilir veritabanlarını tanımlama işlemlerinden sonra
exit
yazarak MariaDB arayüzünden çıkış yapabiliriz. Şimdi sırada MariaDB'nin sunucu konfigürasyonunu güncellemek kaldı. - Bunun için aşağıdaki komutu konsola yazıyoruz.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
- Önümüze nano metin düzenleyicisi geldikten sonra aşağıdaki gibi bir konfigürasyon dosyası görmemiz gerekli.
Şimdi yapmamız gereken sadece 2 adet satırı düzenlemek.
#port 3306
yazan satırıport 3306
şeklinde düzenliyoruz.bind-address 127.0.0.1
yazan satırı isebind-address 0.0.0.0
şeklinde düzenliyoruz. Son halinde dosyamız aşağıdaki gibi gözükmeli:
Resimdeki gibi gözüküyorsa eğer dosyamız sırasıylaCtrl + S
veCtrl + X
kombinasyonlarını kullanıp dosyamızı kaydedelim ve nano'dan çıkış yapalım. - Evet, artık geriye kalan tek işlem MariaDB işlemlerini yeniden başlatmak ve sunucumuza bağlanmaya çalışmak. Bunun için aşağıdaki komutları sırasıyla giriyoruz.
sudo systemctl restart mysql.service
sudo systemctl restart mariadb.service
Hizmetleri yeniden başlattığımıza göre son bir kontrol olarak 3306 (varsayılan MySQL/MariaDB veritabanı portunu) kontrol edelim. Bunun içinsudo netstat -anp | grep 3306
komutunu çalıştıralım. Bize aşağıdaki gibi bir çıktı vermesi gerekli.
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN [işlemin_pid_numarası]/mysqld
- Son olarak herhangi bir MariaDB destekli veritabanı yönetimi yazılımı ile (ben Navicat'ı tercih ediyorum) ile MariaDB sunucumuzun bilgilerini girip bağlantı testini deneyelim.
Ve gördüğünüz gibi hedefimize ulaştık. Artık veritabanımıza yerel makine (localhost) dışında dışarıdan başka bir cihaz ile bağlanabiliyoruz.
Çözümü bulmama yardımcı olan siteyi de şuraya bırakalım: Configure Remote Access to MySQL / MariaDB Databases | Website for Students