MySQL kök parolamı anlayamıyorum; bunu nasıl öğrenebilirim? Bu şifrenin saklandığı herhangi bir dosya var mı?
Bu bağlantıyı takip ediyorum ama yerel directadmin dizini yok.
MySQL kök parolamı anlayamıyorum; bunu nasıl öğrenebilirim? Bu şifrenin saklandığı herhangi bir dosya var mı?
Bu bağlantıyı takip ediyorum ama yerel directadmin dizini yok.
Yanıtlar:
@thusharaK sayesinde eski şifreyi bilmeden kök şifresini sıfırlayabilirim.
Ubuntu üzerinde aşağıdakileri yaptım:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking
Sonra mysql'i yeni bir terminalde çalıştırın:
mysql -u root
Ve şifreyi değiştirmek için aşağıdaki sorguları çalıştırın:
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;
MySQL 5.7'de, mysql.user tablo alanındaki parola alanı kaldırıldı, şimdi alan adı 'authentication_string'.
MySQL güvenli modundan çıkın ve MySQL hizmetini şu şekilde başlatın:
mysqladmin shutdown
sudo service mysql start
mysqladmin -u root -p shutdown
Yeni şifre ile kullanmak zorunda kaldım .
mysql -u root
. Hata gösteriyorAccess denied
Karma şifreyi görüntüleyemezsiniz; yapabileceğiniz tek şey sıfırlamak!
MySQL'i durdurun:
sudo service mysql stop
veya
$ sudo /usr/local/mysql/support-files/mysql.server stop
Güvenli modda başlatın:
$ sudo mysqld_safe --skip-grant-tables
(yukarıdaki satır tüm komuttur)
İşlem tamamlanıncaya kadar bu devam eden bir komut olacaktır, bu yüzden başka bir kabuk / terminal penceresi açın, parola olmadan oturum açın:
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
MySQL 5.7 ve üstü:
mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
MySQL'i başlatın:
sudo mysql start
veya
sudo /usr/local/mysql/support-files/mysql.server start
Yeni şifreniz 'şifre'.
mysql_secure_installation
ve kök artık işbirliği yapmıyordu. Ne geliyor authentication_string
ayar yapmak?
mysqladmin -u root -p shutdown
için yeni şifreyi deneyinsudo service mysql start
MySQL 5.7 ve üstü, MySQL günlük dosyasına kök kaydeder.
Lütfen şunu deneyin:
sudo grep 'temporary password' /var/log/mysqld.log
/var/log/mysql/error.log
kök parola boş olduğu hakkında bir uyarı içeriyordu - bu yüzden günümü kurtardı :)
mySQL'in yeni bir kurulumunda beni harekete geçiren ve neden çalışmak için varsayılan şifreyi alamadığım ve neden sıfırlama yöntemlerinin çalışmadığı merak ediyorum. Ubuntu 18'de mysql sunucusunun en son sürümünün varsayılan olarak kök kullanıcı için hiç şifre yetkisi kullanmadığı ortaya çıkıyor. Yani bu, neyi ayarladığınız önemli değil, onu kullanmanıza izin vermeyeceği anlamına gelir. ayrıcalıklı bir soketten giriş yapmanızı bekliyor. yani
mysql -u root -p
Doğru şifreyi kullanıyor olsanız bile hiç çalışmaz !!! ne koyarsanız koyun erişimi reddeder.
Bunun yerine kullanmanız gerekir
sudo mysql
herhangi bir şifre ile çalışır. sonra bir kez sen yazmak gerekir
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';
sonra oturumu kapatın ve şimdi kanlı şey sonunda şifrenizi kabul edecek
Bulamazsın. Erişmek için kök parolaya ihtiyacınız olan bir veritabanında saklanır ve bir şekilde erişmiş olsanız bile, tek yönlü bir karma ile karıştırılır. Sıfırlayabilirsiniz : http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Windows sisteminde parolayı sıfırlamak için şu adımları izleyin
Görev yöneticisinden Mysql hizmetini durdurma
Bir metin dosyası oluşturun ve aşağıdaki ifadeyi yapıştırın
MySQL 5.7.5 ve öncesi:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
MySQL 5.7.6 ve üstü:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';
Farklı kaydedin mysql-init.txt
ve yerleştirin 'C' drive
.
Komut istemini açın ve aşağıdakileri yapıştırın
C:\> mysqld --init-file=C:\\mysql-init.txt
mysqld --init-file=/root/m.txt
. Ben komuta yukarıda eklenen SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
için /root/m.txt
Paket yöneticisi kurulum sırasında kök parolayı girmenizi istemedikçe, varsayılan kök parola boş dizedir. Yeni yüklenen sunucuya bağlanmak için şunu yazın:
shell> mysql -u root --password=
mysql>
Parolayı değiştirmek için unix kabuğunu geri alın ve şunu yazın:
shell> mysqladmin -u root --password= password root
Yeni şifre 'root'tur. Şimdi sunucuya bağlanın:
shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Hata! Şifre değişti. , Yenisini kullanın root
:
shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql>
Bingo! Yeni ilginç bir şey yap
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
Maurycy
Diğer cevaplara ek olarak, bir cpanel kurulumunda, mysql kök şifresi adlı bir dosyada saklanır /root/.my.cnf
. (ve cpanel hizmeti değişikliği yeniden sıfırlar, bu nedenle buradaki diğer yanıtlar yardımcı olmaz)
mysql root şifresini görüntüleyebilirsiniz, iyi i mysql 5.5 üzerinde denedim, bu yüzden diğer yeni sürüm iyi çalışma ya da çalışma hakkında bilmiyorum
nano ~/.my.cnf
Bu benim için çalıştı:
Terminalde aşağıdakileri yazın
$ sudo mysql -u root -p
Şifre girin: // sadece enter tuşuna basın
mysql>
MySQL sunucusunun derhal kurulumundan sonra benim için çalışan varsayılan şifre: mysql
Prosedür MySql sürümüne bağlı olarak değişir. Sürümü tam olarak sürümünüz için açıklanan şekilde uygulayın:
İPUÇLARI - MySql sürümünüzün talimatları sayfasından önce okuyun *
5. Adım: CMD'yi çalıştırmak yerine, masaüstünüzde CDM.exe'yi çağıran bir kısayol oluşturun. Ardından kısayola sağ tıklayın ve "Yönetici Olarak Çalıştır" ı seçin.
6. adımda: Komutun ilk önerilen sürümünü atlayın ve ikincisini --defaults-file parametresine sahip olanı çalıştırın
Komutu yürüttüğünüzde, her şey yolundaysa, CMD penceresi açık kalır ve 6. adımın komutu yürütülmeye devam eder. Pencereyi kapatın ('x' düğmesine tıklayın) ve ardından Görev Yöneticisi'nden MySQl'i kapatmaya zorlayın.
SQL komutları ile dosyayı silin ve MySQL'i yeniden başlatın. Parola şimdi değiştirilmelidir.
5.0 http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
5.1 http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html
... sadece bağlantıdaki sürümü değiştirin (5.5, 5.6, 5.7)
MySQL'in üzerinde çalıştığı veri klasörünün içindeki "hostname" .err dosyanızda, ile başlayan bir dize aramaya çalışın:
"Roor @ localhost için geçici bir şifre üretildi"
kullanabilirsiniz
less /mysql/data/dir/hostname.err
sonra slash komutu ve ardından aramak istediğiniz dize
/"A temporary password"
Ardından Sonraki sonuca gitmek için n tuşuna basın.
Burada verilen cevaplar benim için işe yaramadı, hile olduğu ortaya çıktı: ALTER USER 'root' @ 'localhost' KİMLİKLE mysql_native_password BY 'test';
(cevabı buradan tamamlayın: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/ )
Sistem:
Prosedür:
İki kabuk oturumu açın, birine Linux kök kullanıcısı ve diğeri mysql
komuta erişimi olmayan kök olmayan bir kullanıcı olarak oturum açın .
Kök oturumunuzda, normal mysqld dinleyicisini durdurun ve parola kimlik doğrulamasını atlayan bir dinleyici başlatın ( not: bu,mysql
komuta erişimi olan herkes veritabanlarına parola olmadan erişebileceği için önemli bir güvenlik riskidir . Etkin kabuk oturumlarını kapatmak isteyebilirsiniz ve / veya bunu yapmadan önce kabuk erişimini devre dışı bırakabilirsiniz):
# systemctl stop mysqld
# /usr/sbin/mysqld --skip-grant-tables -u mysql &
Kök olmayan oturumunuzda mysql'de oturum açın ve mysql kök parolasını ayarlayın:
$ mysql
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> quit;
Kök oturumunuzda, şifresiz mysqld örneğini öldürün ve normal mysqld dinleyicisini servise geri yükleyin:
# kill %1
# systemctl start mysqld
Kök olmayan oturumunuzda, yukarıda yapılandırdığınız yeni kök parolayı test edin:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql>
Bunu farklı bir şekilde çözdüm, bazıları için daha kolay olabilir.
Bu şekilde yaptım çünkü güvenli modda başlatmayı denedim ama hatayla bağlanamıyorum: ERROR 2002 (HY000): Yerel MySQL sunucusuna '/var/run/mysqld/mysqld.sock' soketi ile bağlanamıyorum (2)
Yaptığım şey normal olarak root olarak bağlanmaktı:
$ sudo mysql -u root
Sonra yeni bir süper kullanıcı oluşturdum:
mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit
Sonra kullanıcı olarak giriş yap
$ mysql -u myuser -p -h localhost
Parolayı değiştirmeye çalışmak bana hata vermedi ama benim için hiçbir şey yapmadı, bu yüzden root kullanıcısını bıraktım ve yeniden oluşturdum
mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;
Kök kullanıcı şimdi yeni parola ile çalışıyor
PhpMyAdmin> config.inc.php> $ cfg ['Sunucular'] [$ i] ['şifre'] = '';
phpmyadmin
.