Kodu kullandığımda mysqld_safe --skip-grant-tables &
ama hatayı alıyorum:
mysqld_safe UNIX soket dosyası için '/ var / run / mysqld' dizini mevcut değil.
$ systemctl stop mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &
Çözdüm:
$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld
Şimdi aynı kodu kullanıyorum mysqld_safe --skip-grant-tables &
ve
mysqld_safe mysqld arka plan programının / var / lib / mysql veritabanlarıyla başlatılması
Eğer kullanırsam $ mysql -u root
alacağım:
Sunucu sürümü: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)
Telif Hakkı (c) 2000, 2017, Oracle ve / veya bağlı kuruluşları. Tüm hakları Saklıdır.
Oracle, Oracle Corporation ve / veya bağlı şirketlerinin tescilli ticari markasıdır. Diğer adlar, ilgili sahiplerinin ticari markaları olabilir.
'Help;' yazın; veya '\ h' yardım için. Geçerli giriş deyimini silmek için '\ c' yazın.
mysql>
Şimdi şifreyi değiştirme zamanı:
mysql> use mysql
mysql> describe user;
Tablo ve sütun adlarının tamamlanması için tablo bilgilerini okuma -A ile daha hızlı bir başlangıç yapmak için bu özelliği kapatabilirsiniz
Veritabanı değişti
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');
veya Her yerden bağlanabilecek bir mysql kök hesabınız varsa, şunları da yapmalısınız:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Alternatif Yöntem:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = 'localhost' AND User = 'root';
Ve her yerden erişebilen bir kök hesabınız varsa:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';`enter code here
şimdi quit
mysql ve durdur / başlat gerekir
FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
şimdi tekrar `` mysql -u root -p '' ve almak için yeni şifreyi kullanın
mysql>