Bagaimana cara mengubah kata sandi root mysql saya kembali menjadi kosong?

43

Ketika saya bekerja secara lokal, saya tidak benar-benar perlu memasukkan kata sandi untuk mengakses database saya. Saya mengubah kata sandi root saya ketika saya pertama kali menginstal mysql, tetapi saya tidak tahu bagaimana cara mengubah kata sandi saya kembali. Apa yang harus saya lakukan?

Andrew
sumber

Jawaban:

43

Untuk mengubah kata sandi root menjadi newpassword:

 mysqladmin -u root -p'oldpassword' password 'newpassword'

Untuk mengubahnya jadi root tidak memerlukan kata sandi:

 mysqladmin -u root -p'oldpassword' password ''

Catatan: Saya pikir penting bahwa tidak ada ruang antara -pdan 'oldpassword'tapi saya mungkin salah tentang itu

Andrew
sumber
3
saya terus mendapatkan kesalahan: akses ditolak untuk 'root' @ localhost. bagaimana saya bisa memperbaikinya?
tq
bekerja untuk saya: mysqladmin -u root -p'oldpassword 'password' '@tq: Anda harus mengetikkan kata sandi yang lama
Nam
15

Daripada menghapus kata sandi (yang mungkin memiliki konsekuensi tidak menyenangkan di masa mendatang jika Anda mengekspos server itu ke alam liar), masukkan kata sandi saat ini (dan nama pengguna Anda) ke ~/.my.cnf(atau mungkin beberapa lokasi yang setara di Windows) yang terlihat seperti ini:

[client]
user = root
password = s3kr1t

Ini memberi MySQL kemampuan luar biasa untuk autologin menggunakan kredensial yang disediakan, tanpa membuat Anda terbuka lebar untuk ketidaknyamanan di masa depan.

womble
sumber
7
  1. Hentikan mysqld dan restart dengan opsi --skip-grant-tables .
  2. Terhubung ke sana menggunakan mysql saja .
  3. Ubah kata sandi root:

    UPDATE mysql.user SET Kata Sandi = PASSWORD ('MyNewPass') WHERE User = 'root';

    PRIVILEGUS FLUSH;

Untuk referensi: dokumen resmi mysql .


sumber
1
Ini bekerja tetapi merupakan cara kasar untuk melakukannya. Ini lebih untuk ketika Anda tidak tahu kata sandi.
David
6

Perhatikan bahwa dimulai dengan MySQL 5.7, plugin validate_password aktif secara default, dan mencegah Anda menggunakan kata sandi kosong.

Anda perlu menonaktifkan plugin ini untuk memungkinkan kata sandi kosong:

UNINSTALL PLUGIN validate_password;
SET PASSWORD FOR root@localhost = PASSWORD('');

Berhati-hatilah bahwa kecuali Anda tidak peduli dengan keamanan, Anda harus mengikuti saran @ womble dan menggunakan kata sandi, bersama dengan .my.cnffile untuk kenyamanan.

Lihat artikel saya Menghapus kata sandi root MySQL pada topik ini!

Benjamin
sumber
Untuk versi> 5.6 ini adalah satu-satunya cara yang berfungsi. Saya menduga bahwa itu harus bekerja pada versi sebelumnya juga.
Diego
1

Dalam versi yang lebih baru

UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root'

dan ini akan menghapus kata sandi

UPDATE mysql.user SET authentication_string=PASSWORD('') WHERE User='root'
Abadis
sumber
-1

Untuk MySQL 5.7.23 terbaru:

mysqladmin -u root password '' -p

maestro
sumber