Ubuntu 18 mysql uzaktan bağlantı, remote connection ayarları

Ubuntu’nun yeni sürümüyle beraber mysql kurulumu ve ayarları ile bir takım değişiklikler yapıldı. Artık Ubuntu 14.04 de olduğu gibi kurulum esnasında bizden şifre istemiyor. Bash scriptleri ile kurulum yaparken kurulum bölünmesin diye böyle bir karar alınmış olabilir. Artık şifreyi belirlemek için mysql_secure_installation komutundan yararlanıyoruz. Bu yazıda mysql remote connection yani uzaktan bağlantı ayarları nasıl olur onu anlatmaya çalışacağım.

Buradan şifre belirledikten ve remote bağlantılara da izin verdikten sonra mysql config dosyası üzerinden de mysql server servisini dışarıya açmamız gerekiyor. Bunun için bind-adress satırını 0.0.0.0 olarak değiştiriyoruz.

Ardından mysql sunucusunu service mysql restart ile yeniden başlatıyoruz. Artık netstat -tlnp ile baktığımızda da 127.0.0.1 üzerinden değil 0.0.0.0 dinleme yaptığını görebiliriz.

Şimdi uzaktan root kullanıcısı ve belirlediğimiz şifre ile bağlanmaya çalıştığımızda izin verilmedi hatası aldığımızı göreceğiz. Yani dışarıdan sunuya erişebiliyoruz fakat mysql bizi kabul etmiyor. Bunun için mysql üzerinden root kullanıcısına uzaktan bağlantı izni vermemiz gerekiyor. mysql komutu ile mysql komut satırını başlatıp alttaki komutları çalıştırıyoruz. Burada şifre de belirtmemiz gerekiyor:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MYSQLSIFREMIZ' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Artık sqlyog, mysql workbench gibi programlarla mysql sunucusuna root kullanıcısı üzerinden bağlanabiliriz

mysql 8 ile birlikte ortalık biraz daha karıştı. Şifreleme algoritması değişti. Eğer bağlantı sorunları yaşarsanız alttaki komutlar ile farklı türde kullanıcılar oluşturmayı deneyin.

DROP USER 'root'@'%';
 CREATE USER 'root'@'%' IDENTIFIED BY 'MYSQLSIFRENIZ';
 CREATE USER 'root'@'localhost' IDENTIFIED BY 'MYSQLSIFRENIZ';
 CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password  BY 'MYSQLSIFRENIZ';
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MYSQLSIFRENIZ';
 ALTER USER 'root'@'localhost' IDENTIFIED BY 'MYSQLSIFRENIZ';
 GRANT ALL PRIVILEGES ON . TO 'root'@'%' WITH GRANT OPTION;
 GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

ubuntu 20 de mysql in listen adresini değiştireceğiniz config dosyası da standart yerinde değil. /etc içinde kaybolsanız aradığınız dosya şurada: /etc/mysql/mysql.conf.d/mysqld.cnf

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir