Saya telah mencoba mengatur ulang kata sandi root MySQL saya. Saya telah menjalankan mysqld_safe --skip-grant-tables, memperbarui kata sandi root, dan memeriksa tabel pengguna untuk memastikannya ada. Setelah me-restart daemon mysql saya mencoba masuk dengan kata sandi root baru yang baru saja saya atur dan masih mendapatkan Akses ditolak karena kesalahan 'root' pengguna. Saya juga telah mencoba sepenuhnya menghapus dan menginstal ulang mysql (termasuk menghapus file my.cnf) dan masih belum berhasil. Apakah ada yang punya saran tentang apa yang dapat saya lakukan selanjutnya?
Terima kasih sebelumnya
mysql
root
mysqladmin
nick
sumber
sumber
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('somepassword');
adalah yang paling aman.Jawaban:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypass'); FLUSH PRIVILEGES;
sumber
FLUSH PRIVILEGES
untuk membuat perubahan efektif tanpa memulai ulang server database.lihat ini dari manual Referensi MySQL:
Pertama login mysql:
# mysql -u root -p
Kemudian pada prompt mysql jalankan:
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
Kemudian
FLUSH PRIVILEGES;
Lihat halaman ini untuk informasi lebih lanjut: Mengatur Ulang Kata Sandi Root: Sistem Unix
sumber
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Anda dapat menemukan Mengatur Ulang Kata Sandi Root di dokumentasi MySQL.
sumber
mysqld --initialize --console
Ini adalah jawaban terbaru untuk WAMP v3.0.6 dan yang lebih baru
> UPDATE mysql.user > SET authentication_string=PASSWORD('MyNewPass') > WHERE user='root'; > FLUSH PRIVILEGES;
Di MySQL versi 5.7.x, tidak ada lagi kolom kata sandi di tabel mysql. Itu diganti dengan authentication_string. (Ini untuk terminal / CLI)
UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE user='root'; FLUSH PRIVILEGES;
(Ini jika untuk PHPMyAdmin atau GUI Mysql)
sumber
mysql.user
tabel harus diperbarui. Perhatikan bahwa jika Anda menggunakan database lain (diatur olehuse
perintah), Anda akan mendapatkan pesan kesalahan bahwa tabeluser
tidak ada. Terima kasih Pak!mysql.user
tabel. jawaban lain sudah ketinggalanMenemukannya! Saya lupa mencirikan kata sandi ketika saya mengubahnya. Saya menggunakan kueri ini untuk memecahkan masalah saya:
update user set password=PASSWORD('NEW PASSWORD') where user='root';
Saya lupa
PASSWORD('NEW PASSWORD')
dan hanya memasukkan kata sandi baru dalam teks biasasumber
--init-file=
jika Anda melihat keluar.Ikuti langkah-langkah di bawah ini.
Langkah 1. hentikan mysql
Langkah 2.
sudo mysqld_safe --skip-grant-tables
langkah3.
mysql -u root
step4.
use mysql;
step5.
show tables;
step6.
describe user;
step7.
update user set authentication_string=password('1111') where user='root';
login dengan kata sandi 1111
sumber
flush privileges
penting sebagai langkah terakhir.Saya juga mencari-cari dan mungkin beberapa jawaban cocok untuk beberapa situasi,
situasi saya adalah Mysql 5.7 pada sistem Ubuntu 18.04.2 LTS:
(dapatkan hak akses root)
(atur kata sandi untuk pengguna db root + terapkan keamanan dalam langkah-langkah)
# mysql_secure_installation
(berikan akses ke pengguna root melalui kata sandi sebagai ganti soket)
(+ edit: tampaknya Anda perlu menyetel kata sandi lagi?)
(jangan setel ke 'mySecretPassword' !!!)
# mysql -u root mysql> USE mysql; mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root'; mysql> set password for 'root'@'localhost' = PASSWORD('mySecretPassword'); mysql> FLUSH PRIVILEGES; mysql> exit; # service mysql restart
Banyak terima kasih kepada zetacu (dan erich ) untuk jawaban luar biasa ini (setelah mencari beberapa jam ...)
Nikmati :-D
S.
Edit (2020):
Metode ini tidak berfungsi lagi, lihat pertanyaan ini untuk referensi di masa mendatang ...
sumber
Di MySQL 8.0.4+
Untuk memperbarui pengguna root saat ini:
select current_user(); set password = 'new_password';
Untuk memperbarui pengguna lain:
set password for 'otherUser'@'localhost' = 'new_password';
Untuk mengatur kebijakan kata sandi sebelum memperbarui kata sandi:
set global validate_password.policy = 0; set password = 'new_password'; set password for 'otherUser'@'localhost' = 'new_password';
Cara lain / lebih baik untuk memperbarui kata sandi root:
Ingin tetap menggunakan otentikasi 5.x sehingga Anda masih dapat menggunakan aplikasi lama?
Di
my.cnf
Untuk memperbarui root:
set global validate_password.policy = 0; alter user 'root'@'localhost' identified with mysql_native_password by 'new_password';
sumber
Ini berhasil untuk saya -
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
https://dev.mysql.com/doc/mysql-windows-excerpt/5.7/en/resetting-permissions-windows.html
sumber
Anda harus mengatur ulang kata sandi! langkah-langkah untuk mac osx (diuji dan berfungsi) dan ubuntu
Hentikan MySQL
$ sudo /usr/local/mysql/support-files/mysql.server stop
Mulailah dalam mode aman:
$ sudo mysqld_safe --skip-grant-tables
(baris di atas adalah seluruh perintah)
Ini akan menjadi perintah yang berkelanjutan sampai proses selesai jadi buka jendela shell / terminal lain, masuk tanpa kata sandi:
$ mysql -u root mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Mulai MySQL
sudo /usr/local/mysql/support-files/mysql.server start
kata sandi baru Anda adalah 'kata sandi'.
sumber
Untuk MySQL 5.7.6 dan yang lebih baru:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Untuk MySQL 5.7.5 dan sebelumnya:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
sumber
Untuk versi mysql terbaru (8.0.16), tidak ada jawaban yang berhasil untuk saya.
Setelah melihat beberapa jawaban berbeda dan menggabungkannya, inilah yang akhirnya saya gunakan yang berhasil:
update user set authentication_string='test' where user='root';
Semoga ini membantu.
sumber
kesalahan umum yang saya hadapi dari waktu ke waktu, adalah saya lupa
-p
opsinya, jadi apakah Anda yakin Anda menggunakan:sumber
Di MySQL 5.7, kata sandi diganti dengan 'authentication_string'.
menggunakan
update user set authentication_string=password('myfavpassword') where user='root';
sumber
Menggunakan utilitas baris perintah mysqladmin untuk mengubah kata sandi MySQL:
mysqladmin --user=root --password=oldpassword password "newpassword"
Sumber
sumber
Mencoba jawaban dari @kta tetapi tidak berhasil untuk saya.
Saya menggunakan MySQL 8.0
Ini berhasil untuk saya:
mysql>
SET PASSWORD FOR 'root'@'localhost' = 'yourpassword'
sumber
Begitu banyak komentar, tetapi saya dibantu metode ini:
Dalam kasus saya setelah instalasi, saya mendapatkan layanan mysql tanpa kata sandi untuk pengguna root, dan saya perlu mengatur kata sandi untuk keamanan saya.
sumber
Aug 07 16:21:55 ubuntupc sudo[93250]: user : TTY=pts/0 ; PWD=/home/user ; USER=root ; COMMAND=/usr/bin/mysqladmin -u root password 'my password'
hentikan semua layanan wamp, keluar dari wamp.
buka notepad lalu ketik> SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD ('');
lalu simpan ke c: drive dengan nama apapun .. seperti ini "c: /example.txt"
sekarang buka "wamp" falder wamp> bin> mysql> mysql (versi Anda)> bin di jalur kasus saya adalah "C: \ wamp \ bin \ mysql \ mysql5.6.17 \ bin"
sekarang salin jalur Anda lalu jalankan cmd dengan (ctrl + r) lalu ketik "cmd" (enter)
ketik cd lalu klik kanan pada cmd dan tempel jalur (enter) sekarang ketik (mysqld --init-file = C: \ example.txt) tanpa tanda kurung lalu (enter)
kemudian restart PC atau buka taskmgr dan matikan mysqld.exe
mulai wamp dan kata sandi Anda akan dihapus ...
sumber
Untuk pengguna MacOS, jika Anda lupa kata sandi root Anda, jawaban @ thusharaK ( https://stackoverflow.com/a/28601069/5628856 ) bagus, tetapi ada sedikit trik lagi:
Jika Anda menggunakan preferensi sistem untuk memulai mysql serveride, cukup
sudo mysqld_safe --skip-grant-tables
mungkin tidak berhasil untuk Anda.
Anda harus memastikan argumen baris perintah sama dengan konfigurasi mulai sistem.
Perintah berikut berfungsi untuk saya:
/usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --keyring-file-data=/usr/local/mysql/keyring/keyring --early-plugin-load=keyring_file=keyring_file.so --skip-grant-tables
Kamu bisa memakai
untuk memeriksa milik Anda sendiri.
sumber
Atau cukup gunakan konfigurasi interaktif:
sumber
Di Ubuntu,
Ganti
5.5
dengan versi Anda saat ini dan Anda akan dimintai kata sandi root yang baru.sumber
sumber