Ana içeriğe geç

Kök ve normal kullanıcılar için MySQL parolasını değiştirme

· 3 dakikalık okuma
Customer Care Engineer

MySQL kök parolasını mı unuttunuz? Endişelenmeyin, deneyimli yöneticiler bile başına gelir. Bu makalede, farklı sürümler için MySQL kök parolasını nasıl sıfırlayacağınızı açıklayacağız: MySQL 5.7 ve MySQL 8.0+. Ek olarak, normal bir veritabanı kullanıcısının parolasını nasıl sıfırlayacağımızı da ele alacağız.

MariaDB için lütfen ayrı rehberimize bakın.

bilgi

Kök, ana veritabanı yöneticisidir. Tüm verilere ve ayarlara tam erişime sahiptirler. Bu parolayı kaybederseniz, belirli ayarları değiştirmek ve bazı komutları çalıştırmak artık mümkün olmayacaktır.

Tüm işlemler SSH üzerinden komut satırı aracılığıyla yapılacaktır. Bu protokolü kullanarak sunucunuza bağlanma konusunda daha ayrıntılı talimatları bu makalede bulabilirsiniz.

Devam etmeden önce /root/.my.cnf dosyasının içeriğini kontrol edin. Genellikle, MySQL'e erişim için geçerli kök parolasını içerir.

Bağlantıyı şu komutu kullanarak test edebilirsiniz:

mysql -u root -p

Ardından, .my.cnf dosyasındaki parolayı girin.

Parola çalışmazsa, aşağıdaki talimatları izleyin.


Kök MySQL parolasını sıfırlama

Adım 1: MySQL'i Durdur

Parolayı sıfırlamak için önce MySQL'i durdurmanız gerekir. Aşağıdaki komutu girin:

  • Debian ve Ubuntu için:
systemctl stop mysql
  • CentOS/RockyLinux/AlmaLinux için:
systemctl stop mysqld

Adım 2: Sunucuyu güvenli modda yeniden başlatma

  • Debian ve Ubuntu için:

MySQL'in çalıştırılacağı dizinin var olduğundan ve uygun sahibinin olduğundan emin olun:

mkdir -p /var/run/mysqld/ && chown -R mysql: /var/run/mysqld/

Erişim kontrolü olmadan MySQL sunucusunu başlatın:

mysqld_safe --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock &

MySQL doğru başlarsa, şunu göreceksiniz:

2024-11-28T23:50:19.298141Z mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

Komut satırında çalışmaya devam etmek için "Ctrl + C" tuşlarına basın.

  • CentOS/RockyLinux/AlmaLinux için:
sudo -u mysql mysqld --skip-grant-tables --socket=/var/run/mysqld/mysqld.sock &

Adım 3: MySQL'e bağlanın

mysql --socket=/var/run/mysqld/mysqld.sock

Adım 4: Parolayı sıfırlayın

  • MySQL 5.7 için aşağıdaki komutları sırayla çalıştırın:
FLUSH PRIVILEGES;

Yerel bir kullanıcı için:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YeniParola';

Ağ kullanıcısı için (varsa):

ALTER USER 'root'@'%' IDENTIFIED BY 'YeniParola';

Sonra:

FLUSH PRIVILEGES;

YeniParola kısmını istediğiniz yeni parolayla değiştirin.

bilgi

'kullanıcı'@'localhost', soket veya localhost üzerinden bağlanan yerel bir kullanıcıyı ifade eder. 'kullanıcı'@'%' herhangi bir IP adresinden erişimi olan bir ağ kullanıcısını ifade eder.

Bu kullanıcılar için aynı veya farklı parolalar belirleyebilirsiniz. Ağ kullanıcısı mevcut değilse, @'%' komutu bir hataya neden olur.

exit komutunu kullanarak veya “Ctrl + D” tuşlarına basarak MySQL'den çıkın.

  • MySQL 8.0+ için aşağıdaki komutları çalıştırın:
FLUSH PRIVILEGES;

Yerel bir kullanıcı için:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YeniParola';

Ağ kullanıcısı için (varsa):

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'YeniParola';

Sonra:

FLUSH PRIVILEGES;

YeniParola kısmını istediğiniz yeni parolayla değiştirin.

Exit komutunu kullanarak veya "Ctrl + D" tuşlarına basarak MySQL'den çıkın.

Adım 5: MySQL'i Yeniden Başlatma

MySQL'i durdurun:

mysqladmin shutdown --socket=/var/run/mysqld/mysqld.sock -p

Ardından, daha önce ayarlanan kök parolasını girin.

MySQL'i normal modda başlatın:

  • Debian ve Ubuntu için:
systemctl start mysql
  • CentOS/RockyLinux/AlmaLinux için:
systemctl start mysqld

Normal kullanıcılar için parolayı sıfırlama

Kök dışındaki bir kullanıcı için parolayı unuttuysanız, yaklaşım benzerdir:

  1. Kök olarak MySQL sunucusuna bağlanın:
mysql -u root -p

MySQL kök parolanızı girin.

  1. Parolayı değiştirmek için komutu çalıştırın:
  • MySQL 5.7:

Yerel bir kullanıcı için:

ALTER USER 'kullanıcıadı'@'localhost' IDENTIFIED BY 'YeniKullanıcıParolası';

Ağ kullanıcısı için (varsa):

ALTER USER 'kullanıcıadı'@'%' IDENTIFIED BY 'YeniKullanıcıParolası';

Sonra:

FLUSH PRIVILEGES;

'kullanıcıadı' kısmını mevcut kullanıcı adıyla ve 'YeniKullanıcıParolası' kısmını yeni istediğiniz parolayla değiştirin.

exit komutunu kullanarak veya “Ctrl + D” tuşlarına basarak MySQL'den çıkın.

  • MySQL 8.0+:

Yerel bir kullanıcı için:

ALTER USER 'kullanıcıadı'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YeniParola';

Ağ kullanıcısı için (varsa):

ALTER USER 'kullanıcıadı'@'%' IDENTIFIED WITH mysql_native_password BY 'YeniParola';

'kullanıcıadı' kısmını mevcut kullanıcı adıyla ve 'YeniKullanıcıParolası' kısmını yeni istediğiniz parolayla değiştirin.

Ardından exit komutunu veya "Ctrl + D" tuş kombinasyonunu kullanarak MySQL'den çıkın.

Gerekirse, aşağıdaki sorguyla tüm kullanıcıları listeleyebilirsiniz:

SELECT User, Host FROM mysql.user;

Parola girmeden MySQL'e yerel olarak bağlanma

Sunucunuzdaki komut satırından MySQL'e her bağlandığınızda parolayı manuel olarak girmemek için, bunu /root/.my.cnf dosyasına kaydedebilirsiniz. Dosyayı bir metin düzenleyicide açın:

nano /root/.my.cnf

Aşağıdaki satırları ekleyin:

[client]

user = root
password = SizinKökParolanız

SizinKökParolanız kısmını geçerli kök parolanızla değiştirin.

Ardından dosyayı "Ctrl + O" tuş kombinasyonu ile kaydedin ve "Ctrl + X" ile metin düzenleyicisinden çıkın.

Güvenlik için .my.cnf dosyasına daha sıkı izinler ayarlayın:

chmod 600 /root/.my.cnf

Bu kurulumdan sonra, şu komutu çalıştırarak bağlanabilirsiniz:

mysql -u root