MySQL için yönetici hesabı şifresi nasıl sıfırlanır veya kurtarılır?


14

Ben "devralınan" bir MySQL veritabanı var ve ben yönetici kimlik bilgileri verilmedi. Ancak üzerinde çalıştığı kutuya erişimim var. Yönetici kimlik bilgilerini kurtarmanın veya yenilerini oluşturmanın bir yolu var mı?

Yanıtlar:


15

MySQL Başvuru Kılavuzu'ndaki kök parolayı sıfırlama hakkındaki bölümü okuyun ve yürütün .

Bu yordam, kimlik bilgileri vermeden bağlanmanıza izin veren, yetkisiz olarak mysql arka plan programını başlatır. Bu modda normal olarak bağlanabilir, şifreleri ve hibeleri sıfırlayabilirsiniz. Daha sonra uygun yetkilendirme ile mysql'i yeniden başlatmayı unutmayın.


6

Bu bir Debian / Ubuntu kutusuysa, debian-sys-maint . Şifreyi /etc/mysql/debian.cnf adresinden okuyabilirsiniz.

Bu şifreyi kullanarak mysql'de debian-sys-maint olarak oturum açabilirsiniz:

mysql --defaults-file=/etc/mysql/debian.cnf mysql

Giriş yaptıktan sonra aşağıdakileri yapın:

update user set password=password('<new password>') where user='root';
flush privileges;
quit;

root'a yeni şifrenizle erişilebilmelidir:

mysql -uroot -p

3

Kök kullanıcım yoktu. üzerinde

CREATE USER root@localhost;

Bende var

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

Çözüm

mysqld_safe  --skip-grant-tables &
mysql
INSERT INTO user (Host,User,Password) VALUES ('localhost', 'root', 'changethispassword');
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;

Bundan sonra, tüm yardımları tek tek ekleyerek bundan biraz yardım aldım:

mysql mysql -e "SELECT * FROM user WHERE User='root'\G"|grep N

(ve bu daha fazla otomatikleştirilebilir ve olmalıdır)

Not: içinde doğru 'Y' sayısını bulmak INSERTbir PITA'dır.


0

MySQL Başvuru Kılavuzu'ndaki adımlar çok açık olmadığından, burada daha kolay bir dilde cevap vermeye çalışıyorum. (bu cevap MacBook OSX kullanıcılarıyla ilgilidir):

  1. Mevcut şifreyi bilmediğimiz için, MySQL sunucusunun mevcut giriş bilgilerini atlayarak / atlayarak çalışması gerekiyor. MySQL sunucusuna erişim izni tablosunu şu şekilde atlaması talimatını verin:
    • MySQL sunucunuzu durdurun (zaten çalışıyorsa).
    • MySQL yapılandırma dosyanızı bulun my.cnf. (Benim için yerleştirildi @/Applications/XAMPP/xamppfiles/etc . Sadece bulamazsan arayabilirsin).
    • Açık my.cnfherhangi bir metin editörü dosyası.
    • "skip-grant-tables"Sonuna (tırnak işaretleri olmadan) ekleyin[mysqld]Bölümün ve dosyayı kaydedin.
    • Şimdi MySQL sunucunuzu başlatın. skip-grant-tablesSeçenek ile başlayacaktır .
  2. Terminalve çalıştırmysql komutu
  3. Komutu çalıştır mysql> UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
  4. Komutu çalıştır mysql> FLUSH PRIVILEGES;
  5. Komutu çalıştır mysql> exit
  6. MySQL sunucusunu yeniden başlatın.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.