Ketika saya menggunakan kode mysqld_safe --skip-grant-tables &
tetapi saya mendapatkan kesalahan:
Direktori mysqld_safe '/ var / run / mysqld' untuk file socket UNIX tidak ada.
$ systemctl stop mysql.service
$ ps -eaf|grep mysql
$ mysqld_safe --skip-grant-tables &
Saya memecahkan:
$ mkdir -p /var/run/mysqld
$ chown mysql:mysql /var/run/mysqld
Sekarang saya menggunakan kode yang sama mysqld_safe --skip-grant-tables &
dan dapatkan
mysqld_safe Memulai daemon mysqld dengan database dari / var / lib / mysql
Jika saya menggunakan $ mysql -u root
saya akan mendapatkan:
Versi server: 5.7.18-0ubuntu0.16.04.1 (Ubuntu)
Hak Cipta (c) 2000, 2017, Oracle dan / atau afiliasinya. Seluruh hak cipta.
Oracle adalah merek dagang terdaftar dari Oracle Corporation dan / atau afiliasinya. Nama lain mungkin merupakan merek dagang dari pemiliknya masing-masing.
Ketik 'bantuan;' atau '\ h' untuk bantuan. Ketik '\ c' untuk menghapus pernyataan input saat ini.
mysql>
Sekarang saatnya untuk mengubah kata sandi:
mysql> use mysql
mysql> describe user;
Membaca informasi tabel untuk penyelesaian nama tabel dan kolom Anda dapat mematikan fitur ini untuk mendapatkan startup yang lebih cepat dengan -A
Basis data berubah
mysql> FLUSH PRIVILEGES;
mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('newpwd');
atau Jika Anda memiliki akun root mysql yang dapat terhubung dari mana saja, Anda juga harus melakukan:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
Metode Alternatif:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = 'localhost' AND User = 'root';
Dan jika Anda memiliki akun root yang dapat diakses dari mana saja:
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';`enter code here
sekarang perlu quit
dari mysql dan stop / start
FLUSH PRIVILEGES;
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start
sekarang lagi `mysql -u root -p 'dan gunakan kata sandi baru untuk mendapatkannya
mysql>