Rehber Linux Sunucuya MySQL Kurulumu + Uzak Erişim Ayarları (UFW, Bind, Kullanıcı Yetkileri)

r00ts

Hectopat
Katılım
11 Mart 2022
Mesajlar
330
Makaleler
1
Çözümler
3
Yer
Frankfurt
Daha fazla  
Cinsiyet
Erkek
Bu rehber, hem yerel hem de uzaktan MySQL veri tabanı erişimi sağlamak isteyenler için hazırlanmıştır. Kurulumdan güvenlik ayarlarına kadar her adım detaylı ve sade şekilde açıklanmıştır.

Bu rehber aşağıdaki Linux dağıtımları ile tam uyumludur:
Ubuntu (örneğin: 18.04, 20.04, 22.04)
Debian (örneğin: 10 buster, 11 bullseye, 12 bookworm)
Linux Mint.
Pop!_OS
Zorin OS.
Kali Linux
(Debian tabanlı olduğu için)

--------------------------------------------------

Adım 1: MySQL kurulumu

Kod:
sudo apt update.
sudo apt install mysql-server -y

--------------------------------------------------

Adım 2: güvenlik ayarlarını yapılandırma (mysql_secure_installation)​

Kod:
sudo mysql_secure_installation

Root şifresi belirle.
Anonymous kullanıcıyı sil.
Uzaktan root erişimini kapat.
Test veritabanını sil.
Yetkileri yeniden yükle.

--------------------------------------------------

Adım 3: MySQL'e root olarak giriş

Kod:
sudo mysql -u root -p

--------------------------------------------------

Adım 4: uzak erişime izin ver
1. bind-address ayarını düzenleyin:

Kod:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Şu satırı bul:

Kod:
bind-address = 127.0.0.1

Bunu şu şekilde değiştirin:

Kod:
bind-address = 0.0.0.0

Kaydedip çıkın (CTRL+X → y → enter)

--------------------------------------------------

Adım 5: Ufw güvenlik duvarı ayarları
Tüm IP'lere değil, sadece güvenilir IP'ye port açmak en doğrusudur:

Kod:
sudo ufw allow from <GUVENILIR_IP> to any port 3306 proto tcp.
sudo ufw reload

--------------------------------------------------

Adım 6: uzak kullanıcı oluştur
MySQL terminalinde şu komutları girin:

Kod:
CREATE USER 'kullanici'@'%' IDENTIFIED BY 'guclu_sifre';
GRANT ALL PRIVILEGES ON *.* TO 'kullanici'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

--------------------------------------------------

Adım 7: servisi yeniden başlat

Kod:
sudo systemctl restart mysql

--------------------------------------------------

Ekstra bilgilendirme:

'%' Yerine sabit IP adresi kullanmak güvenlik açısından daha iyidir.
Mysql_secure_installation kurulumu güçlendirmek için önemlidir.
Bu yapılandırma, DBeaver ve navicat gibi GUI araçlarıyla bağlantıya uygundur.
 
Güzel içerik.

Sana zahmet olmaz ise, erişimde root izni yerine her dB için farklı kullanıcı adı ve şifresi için atamayı da ekler misin?
Millet bir kere root bağlantısına alışınca bırakamıyor. Hatta front end kısmında root ile bağlantı yapana da denk geliyorum.

Yani Ali1 diye bir kullanıcı oluşturup, DB1 içindeki tablolar üzerinde limitli yetkileri de eklersen, genç arkadaşlara daha faydalı olacaktır. Ali2 kullanıcısı da sadece DB1 içinde tablo oluşturma - değiştirme yetkilerine sahip olsun. 😇

Selamlar.
 
Güzel içerik.

Sana zahmet olmaz ise, erişimde root izni yerine her dB için farklı kullanıcı adı ve şifresi için atamayı da ekler misin?
Millet bir kere root bağlantısına alışınca bırakamıyor. Hatta front end kısmında root ile bağlantı yapana da denk geliyorum.

Yani Ali1 diye bir kullanıcı oluşturup, DB1 içindeki tablolar üzerinde limitli yetkileri de eklersen, genç arkadaşlara daha faydalı olacaktır. Ali2 kullanıcısı da sadece DB1 içinde tablo oluşturma - değiştirme yetkilerine sahip olsun. 😇

Selamlar.

Ek rehber olarak paylaşıldı, tavsiye için teşekkürler.
 

Technopat Haberler

Geri
Yukarı