Jawaban:
Hentikan proses MySQL.
Mulai proses MySQL dengan opsi --skip-grant-tables.
Mulai klien konsol MySQL dengan opsi -u root.
Daftar semua pengguna;
SELECT * FROM mysql.user;
Setel ulang kata sandi;
UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Tapi JANGAN LUPA untuk
Hentikan proses MySQL
Mulai Proses MySQL secara normal (yaitu tanpa opsi --skip-grant-tables)
ketika kamu selesai. Jika tidak, keamanan basis data Anda dapat terganggu.
dpkg-reconfigure mysql-server-5.5
perintah untuk mereset password root MySQL?
-u
diabaikan ketika server dimulai --skip-grant-tables
.
mysql.user
dipanggil password
, gunakan authentication_string
saja.
Sayangnya kata sandi pengguna Anda tidak dapat diperbaiki. Telah hash dengan hash satu arah yang jika Anda tidak tahu tidak dapat dikembalikan. Saya sarankan pergi dengan Xenph Yan di atas dan buat yang baru.
Anda juga dapat menggunakan prosedur berikut dari manual untuk mengatur ulang kata sandi untuk setiap akun root MySQL di Windows:
Menu Mulai -> Panel Kontrol -> Alat Administratif -> Layanan
Kemudian temukan layanan MySQL dalam daftar, dan hentikan. Jika server Anda tidak berjalan sebagai layanan, Anda mungkin perlu menggunakan Task Manager untuk memaksanya berhenti.
Buat file teks dan tempatkan pernyataan berikut di dalamnya. Ganti kata sandi dengan kata sandi yang ingin Anda gunakan.
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
Pernyataan UPDATE dan FLUSH masing-masing harus ditulis dalam satu baris. The UPDATE pernyataan me-reset password untuk semua account akar yang ada, dan FLUSH pernyataan memberitahu server untuk reload tabel hibah ke dalam memori.
Buka jendela konsol untuk menuju ke prompt perintah:
Menu Mulai -> Jalankan -> cmd
Mulai server MySQL dengan opsi --init-file khusus :
C:\> C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt
Jika Anda menginstal MySQL ke lokasi selain C: \ mysql , sesuaikan perintahnya.
Server mengeksekusi konten file yang dinamai oleh opsi --init-file saat startup, mengubah setiap kata sandi akun root .
Anda juga dapat menambahkan opsi --console ke perintah jika Anda ingin output server muncul di jendela konsol daripada di file log.
Jika Anda menginstal MySQL menggunakan Wisaya Instalasi MySQL, Anda mungkin perlu menentukan opsi --defaults-file :
C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=C:\mysql-init.txt
Pengaturan --defaults-file yang sesuai dapat ditemukan menggunakan Manajer Layanan:
Menu Mulai -> Panel Kontrol -> Alat Administratif -> Layanan
Temukan layanan MySQL dalam daftar, klik kanan padanya, dan pilih opsi Properties. Kolom Path to executable berisi pengaturan --defaults-file .
Anda sekarang harus dapat terhubung ke MySQL sebagai root menggunakan kata sandi baru.
mysqld-nt
bukan mysqld
?
Perbaikan untuk jawaban yang paling berguna di sini:
1] Tidak perlu me-restart server mysql
2] Masalah keamanan untuk server MySQL yang terhubung ke jaringan
Tidak perlu me-restart server MySQL.
gunakan FLUSH PRIVILEGES;
setelah pembaruan pernyataan mysql.user untuk perubahan kata sandi.
Pernyataan FLUSH memberi tahu server untuk memuat ulang tabel hibah ke dalam memori sehingga pemberitahuan perubahan kata sandi.
The --skip-grant-options
memungkinkan orang untuk terhubung tanpa password dan dengan semua hak istimewa. Karena ini tidak aman, Anda mungkin mau
gunakan --skip-grant-tables bersamaan dengan --skip-networking untuk mencegah klien jarak jauh terhubung.
dari: referensi: reset-permissions-generic
mysql.user
? Namun seringkali, bukan itu masalahnya.
Meskipun Anda tidak dapat langsung memulihkan kata sandi MySQL tanpa memaksa, mungkin ada cara lain - jika Anda telah menggunakan MySQL Workbench untuk terhubung ke database, dan telah menyimpan kredensial ke "vault", Anda adalah emas.
Pada Windows, kredensial disimpan dalam % APPDATA% \ MySQL \ Workbench \ workbench_user_data.dat - dienkripsi dengan CryptProtectData (tanpa entropi tambahan). Penguraian dekripsi mudah dilakukan:
std::vector<unsigned char> decrypt(BYTE *input, size_t length) {
DATA_BLOB inblob { length, input };
DATA_BLOB outblob;
if (!CryptUnprotectData(&inblob, NULL, NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &outblob)) {
throw std::runtime_error("Couldn't decrypt");
}
std::vector<unsigned char> output(length);
memcpy(&output[0], outblob.pbData, outblob.cbData);
return output;
}
Atau Anda dapat memeriksa utas DonationCoder ini untuk sumber + yang dapat dieksekusi dari implementasi cepat dan kotor.
Jalankan perintah berikut di Terminal untuk terhubung ke DBMS (Anda perlu akses root):
sudo mysql -u root -p;
jalankan perbarui kata sandi pengguna target (misalnya nama pengguna saya mousavi
dan kata sandinya 123456
):
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='mousavi';
pada titik ini Anda perlu melakukan flush untuk menerapkan perubahan:
FLUSH PRIVILEGES;
Selesai! Anda melakukannya tanpa berhenti atau mulai ulang layanan mysql.
Jika Anda memiliki akses root ke server tempat mysql berjalan, Anda harus menghentikan server mysql menggunakan perintah ini
sudo service mysql stop
Sekarang mulai mysql menggunakan perintah ini
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
Sekarang Anda dapat masuk ke mysql menggunakan
sudo mysql
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Instruksi lengkap dapat ditemukan di sini http://www.techmatterz.com/recover-mysql-root-password/
Login MySql dari windows cmd menggunakan pengguna yang ada:
mysql -u username -p
Masukkan kata sandi: ****
Kemudian jalankan perintah berikut:
mysql> SELECT * FROM mysql.user;
Setelah itu menyalin kata sandi md5 terenkripsi untuk pengguna yang sesuai dan ada beberapa aplikasi dekripsi kata sandi online yang tersedia di web. Gunakan kata sandi dekripsi ini dan gunakan ini untuk login di lain waktu. atau perbarui kata sandi pengguna menggunakan perintah mengalir:
mysql> UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Kemudian login menggunakan kata sandi dan pengguna baru.
JIKA Anda mengatur ODBC, Anda bisa mendapatkan kata sandi dari file konfigurasi ODBC. Ini ada di /etc/odbc.ini untuk Linux dan di folder Software / ODBC di registri di Windows (ada beberapa - mungkin perlu berburu)
Simpan file. Untuk contoh ini, file tersebut akan dinamai C: \ mysql-init.txt. itu meminta izin administratif untuk menyimpan file
Meskipun interpretasi yang ketat, logis, ilmu komputer tentang pertanyaan op akan memerlukan baik "Bagaimana cara mengambil nama pengguna MySQL saya" dan "kata sandi" - saya pikir Mungkin berguna bagi seseorang untuk juga mengatasi interpretasi OR . Dengan kata lain ...
1) Bagaimana cara mengambil nama pengguna MySQL saya?
ATAU
2) kata sandi
Kondisi yang terakhir ini sepertinya sudah banyak ditangani sehingga saya tidak akan repot-repot dengan itu. Berikut ini adalah solusi untuk kasus "Bagaimana cara saya mengembalikan nama pengguna MySQL saya" saja. HIH.
Untuk menemukan nama pengguna mysql Anda, jalankan perintah berikut dari shell mysql ...
PILIH Pengguna DARI mysql.user;
itu akan mencetak tabel semua pengguna mysql.