Kök ve normal kullanıcılar için MySQL parolasını değiştirme
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.
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.
'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:
- Kök olarak MySQL sunucusuna bağlanın:
mysql -u root -p
MySQL kök parolanızı girin.
- 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