MySQL veritabanı root
kullanıcı şifrenizi mi unuttunuz? Telaşa gerek yok!
Ubuntu Linux’ta MySQL 8’de Kök Parolayı Sıfırla
1. İlk olarak, MySQL hizmetini şu komutu kullanarak durdurun:
$ sudo systemctl stop mysql
Bukomut , çalışıyorsa MySQL hizmetini durduracaktır. MySQL hizmetinin durumunu şu komutla doğrulayabilirsiniz:
$ sudo systemctl durumu mysql
● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: inactive (dead) since Mon 2021-05-31 11:01:15 UTC; 1min 15s ago Process: 1446 ExecStart=/usr/sbin/mysqld (code=exited, status=0/SUCCESS) Main PID: 1446 (code=exited, status=0/SUCCESS) Status: "Server shutdown complete"
2. Ardından, yönetici yetkisi ile MySQLhizmetini düzenleyin. Bunu yapmak için aşağıdaki komutu çalıştırın:
$ sudo systemctl edit mysql
Bu komut, varsayılan metin düzenleyiciniz ile mysql systemd yapılandırma dosyasını açacaktır. Benim tercihim , nano editörü.
İçine aşağıdaki satırları ekleyin:
[Service] ExecStart= ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
Yukarıdaki satırları ekledikten sonra CTRL+O
ve tuşlarına basarak ENTER
dosyayı kaydedin ve ardından CTRL+X
kapatmak için tuşuna basın .
Buradaki --skip-grant-tables
seçeneği, MySQL veritabanı sunucusuna parola olmadan ve tüm ayrıcalıklarla bağlanmanızı sağlar. Ayrıca ALTER USER
ve SET PASSWORD
gibi hesap yönetimi bildirimlerini de devre dışı bırakır . Ve --skip-networking
seçeneği, diğer istemcilerin veritabanı sunucusuna bağlanmasını önlemek için kullanılır. Tüm uzak bağlantıları devre dışı bıraktığı için, siz veritabanı sunucusunu normal şekilde yeniden başlatana kadar istemcilerin hiçbiri veritabanı sunucusuna erişemez.
3. systemd
Komutu kullanarak yapılandırmayı yeniden yükleyin:
$ sudo systemctl daemon-reload
4. MySQL hizmetini başlatın:
$ sudo systemctl start mysql
5. Şimdi MySQL sunucusuna şifresiz root kullanıcısı olarak bağlanın:
$ sudo mysql -u root
6. Tabloları yüklemeden veritabanı sunucusuna giriş yaptık (çünkü --skip-grant-tables
seçeneği kullandık ). Bu yüzden şifreyi sıfırlamak için ihtiyaç duyduğumuz ALTER USER
komutunu kullanamıyoruz . Tabloları yüklemek için MySQL kabuk isteminden aşağıdaki komutu çalıştırın:
mysql> FLUSH PRIVILEGES;
7. Ardından, MySQL root
parolasını sıfırlamak için aşağıdaki komutlardan size uygun olanını çalıştırın .
Eğer caching_sha2_password
eklentisi kullanıyorsanız , bu komutu çalıştırın:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Password123#@!';
mysql_native_password eklentisi kullanıyorsanız, bu komutu çalıştırın:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password123#@!';
MySQL root
şifresini değiştirdikten sonra MySQL kabuk isteminden çıkın:
mysql> exit
8. Değiştirilen systemd
konfigürasyonunu şu komutu kullanarak normal ayarlara geri döndürün :
$ sudo systemctl revert mysql
9. Değişiklikleri uygulamak için systemd yapılandırmasını yeniden yükleyin:
$ sudo systemctl daemon-reload
10. Son olarak, MySQL sunucusunu normal şekilde yeniden başlatın:
$ sudo systemctl restart mysql
11. Şimdi root
, new password
using komutuyla MySQL veritabanına kullanıcı olarak bağlanabilmelisiniz :
$ mysql -u root -p
Yazının orijinalini buradan okuyabilirsiniz.