Linux

MariaDB Root Şifresi Nasıl Sıfırlanır?

MariaDB vs. MySQL: Hangisi Daha İyi Bir Seçenek?
Share

Giriş

Parolaları unutmak çoğumuzun başına gelir. MySQL veya MariaDB veritabanınızın kök parolasını unutursanız veya kaybederseniz, sunucuya erişiminiz ve sudoetkinleştirilmiş bir kullanıcı hesabınız varsa yine de erişim kazanabilir ve parolayı sıfırlayabilirsiniz.

Bu eğitici, MySQL ve MariaDB’nin eski ve yeni sürümleri için kök parolanın nasıl sıfırlanacağını kapsayacaktır.

Önkoşullar
Kök MySQL/MariaDB parolanızı kurtarmak için ihtiyacınız olacak:

Bir sudo kullanıcısı ile MySQL veya MariaDB çalıştıran Linux sunucusuna erişim.

Adım 1 — Veritabanı Sürümünü Belirleme

Modern Linux dağıtımlarının çoğu MySQL veya MySQL ile tamamen uyumlu, popüler bir drop-in değişimi olan MariaDB ile birlikte gelir. Kullanılan veritabanına ve sürümüne bağlı olarak, root parolasını kurtarmak için farklı komutlar kullanmanız gerekecektir.

Sürümünüzü aşağıdaki komutla kontrol edebilirsiniz:

mysql –version

MySQL ile bunun gibi bazı çıktılar göreceksiniz:

MySQL output
mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper

Veya MariaDB için şöyle bir çıktı alın:

MariaDB output
mysql Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

Daha sonra kullanacağınız için hangi veritabanını ve hangi sürümü çalıştırdığınızı not edin. Ardından, manuel olarak erişebilmek için veritabanını durdurmanız gerekir.

Adım 2 — Veritabanı Sunucusunu Durdurma
Kök şifresini değiştirmek için önceden veritabanı sunucusunu kapatmanız gerekir.

Bunu MySQL için şu şekilde yapabilirsiniz:

sudo systemctl stop mysql
Ve MariaDB için:

sudo systemctl stop mariadb

Veritabanı sunucusu durdurulduktan sonra, kök parolayı sıfırlamak için sunucuya manuel olarak erişeceksiniz.

Adım 3 — Veritabanı Sunucusunu İzin Kontrolü Olmadan Yeniden Başlatma
MySQL ve MariaDB’yi kullanıcı ayrıcalıkları hakkında bilgi yüklemeden çalıştırırsanız, veritabanı komut satırına parola girmeden root ayrıcalıklarıyla erişmenize olanak tanır. Bu, veritabanına bilmeden erişmenizi sağlayacaktır.

Bunu yapmak için, veritabanının kullanıcı ayrıcalık bilgilerini depolayan grant tablolarını yüklemesini durdurmanız gerekir . Bu biraz güvenlik riski oluşturduğundan, diğer istemcilerin bağlanmasını önlemek için ağ bağlantısını da atlamalısınız.

Hibe tablolarını yüklemeden veya ağı etkinleştirmeden veritabanını başlatın:

sudo mysqld_safe –skip-grant-tables –skip-networking &
Bu komutun sonundaki ve işareti, terminalinizi kullanmaya devam edebilmeniz için bu işlemin arka planda çalışmasını sağlayacaktır.

Artık veritabanına, şifre istememesi gereken kök kullanıcı olarak bağlanabilirsiniz.

mysql -u root
Bunun yerine hemen bir veritabanı kabuğu istemi göreceksiniz.

MySQL istemi
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>
MariaDB istemi
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]>
Artık root erişiminiz olduğuna göre, root şifresini değiştirebilirsiniz.

Adım 4 — Root Parolasını Değiştirme
MySQL’in modern sürümleri için root parolasını değiştirmenin basit bir yolu, komutu kullanmaktır ALTER USER. Ancak, grant tabloları yüklenmediği için bu komut şu anda çalışmaz.

Komutu vererek veritabanı sunucusuna grant tablolarını yeniden yüklemesini söyleyelim FLUSH PRIVILEGES.

FLUSH PRIVILEGES;
Artık root şifresini gerçekten değiştirebiliriz.

MySQL 5.7.6 ve daha yenisi ile MariaDB 10.1.20 ve daha yenisi için aşağıdaki komutu kullanın.

ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password’;

MySQL 5.7.5 ve daha eski sürümlerin yanı sıra MariaDB 10.1.20 ve daha eski sürümler için şunları kullanın:

SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘new_password’);

new_passwordSeçtiğiniz yeni şifrenizle değiştirdiğinizden emin olun .

Not : ALTER USER Komut çalışmazsa, bu genellikle daha büyük bir sorunun göstergesidir. UPDATE … SETAncak, bunun yerine root parolasını sıfırlamayı deneyebilirsiniz .

UPDATE mysql.user SET authentication_string = PASSWORD(‘new_password’) WHERE User = ‘root’ AND Host = ‘localhost’;

Bundan sonra hibe tablolarını yeniden yüklemeyi unutmayın.

Her iki durumda da, komutun başarıyla yürütüldüğüne dair onay görmelisiniz.

Output
Query OK, 0 rows affected (0.00 sec)
Parola değiştirildi, böylece artık veritabanı sunucusunun manuel örneğini durdurabilir ve eskisi gibi yeniden başlatabilirsiniz.

Adım 5 — Veritabanı Sunucusunu Normal Olarak Yeniden Başlatın

Öncelikle, Adım 3’te manuel olarak başlattığınız veritabanı sunucusu örneğini durdurun. Bu komut, MySQL veya MariaDB işleminin PID’sini veya işlem kimliğini arar ve temizleme işlemlerini gerçekleştirdikten sonra sorunsuz bir şekilde çıkmasını söylemek için gönderir SIGTERM. Bu Linux süreç yönetimi eğitiminde daha fazla bilgi edinebilirsiniz .

MySQL için şunları kullanın:

sudo kill `cat /var/run/mysqld/mysqld.pid`
MariaDB için şunları kullanın:

sudo kill `/var/run/mariadb/mariadb.pid`
Ardından, kullanarak hizmeti yeniden başlatın systemctl.

MySQL için şunları kullanın:

sudo systemctl start mysql
MariaDB için şunları kullanın:

sudo systemctl start mariadb
Şimdi aşağıdakileri çalıştırarak yeni parolanın doğru şekilde uygulandığını onaylayabilirsiniz:

mysql -u root -p
Komut şimdi yeni atanan parolayı sormalıdır. Girin ve beklendiği gibi veritabanı istemine erişmelisiniz.

Çözüm
Artık geri yüklenen MySQL veya MariaDB sunucusuna yönetici erişiminiz var. Seçtiğiniz yeni kök parolanın güçlü ve güvenli olduğundan emin olun ve güvenli bir yerde saklayın.