Saya tidak dapat menemukan kata sandi root MySQL saya; bagaimana saya bisa mengetahui ini? Apakah ada file tempat kata sandi ini disimpan?
Saya mengikuti tautan ini tetapi saya tidak memiliki direktori directadmin di lokal.
Saya tidak dapat menemukan kata sandi root MySQL saya; bagaimana saya bisa mengetahui ini? Apakah ada file tempat kata sandi ini disimpan?
Saya mengikuti tautan ini tetapi saya tidak memiliki direktori directadmin di lokal.
Jawaban:
terima kasih kepada @thusharaK saya bisa mengatur ulang kata sandi root tanpa mengetahui kata sandi lama.
Di ubuntu saya melakukan hal berikut:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking
Kemudian jalankan mysql di terminal baru:
mysql -u root
Dan jalankan pertanyaan berikut untuk mengubah kata sandi:
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;
Di MySQL 5.7, bidang kata sandi di bidang tabel mysql.user telah dihapus, sekarang nama bidangnya adalah 'authentication_string'.
Keluar dari safe mode mysql dan mulai layanan mysql dengan:
mysqladmin shutdown
sudo service mysql start
mysqladmin -u root -p shutdown
, dengan kata sandi baru.
mysql -u root
. Ini menunjukkan kesalahanAccess denied
Anda tidak dapat melihat kata sandi hash; satu-satunya hal yang dapat Anda lakukan adalah meresetnya!
Hentikan MySQL:
sudo service mysql stop
atau
$ sudo /usr/local/mysql/support-files/mysql.server stop
Mulai dalam mode aman:
$ sudo mysqld_safe --skip-grant-tables
(baris di atas adalah seluruh perintah)
Ini akan menjadi perintah yang sedang berlangsung 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';
MySQL 5.7 dan lebih tinggi:
mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
Mulai MySQL:
sudo mysql start
atau
sudo /usr/local/mysql/support-files/mysql.server start
Kata sandi baru Anda adalah 'kata sandi'.
mysql_secure_installation
dan root tidak lagi bekerja sama. Apa yang dilakukan authentication_string
pengaturan?
mysqladmin -u root -p shutdown
dengan kata sandi yang baru kemudiansudo service mysql start
MySQL 5.7 ke atas menyimpan root di file log MySQL.
Silakan coba ini:
sudo grep 'temporary password' /var/log/mysqld.log
/var/log/mysql/error.log
berisi peringatan tentang kata sandi root yang kosong - jadi ini menyelamatkan hari saya :)
satu hal yang membuat saya tersandung pada pemasangan baru mySQL dan bertanya-tanya mengapa saya tidak bisa mendapatkan kata sandi default untuk bekerja dan mengapa bahkan metode reset di mana tidak berfungsi. nampaknya pada Ubuntu 18 versi terbaru dari server mysql tidak menggunakan auth kata sandi sama sekali untuk pengguna root secara default. Jadi ini berarti apa pun yang Anda atur, tidak akan membiarkan Anda menggunakannya. ia mengharapkan Anda untuk masuk dari soket istimewa. begitu
mysql -u root -p
tidak akan berfungsi sama sekali, bahkan jika Anda menggunakan kata sandi yang benar !!! itu akan menolak akses tidak peduli apa yang Anda masukkan.
Sebaliknya, Anda harus menggunakan
sudo mysql
itu akan berfungsi dengan kata sandi apa pun. maka setelah Anda masuk, Anda perlu mengetik
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';
kemudian logout dan sekarang yang berdarah akhirnya akan menerima kata sandi Anda
Anda tidak dapat menemukannya. Itu disimpan dalam database, yang Anda butuhkan untuk mengakses kata sandi root, dan bahkan jika Anda mendapatkan akses entah bagaimana, itu hash dengan hash satu arah. Anda dapat mengatur ulang: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Ikuti langkah-langkah ini untuk mengatur ulang kata sandi di sistem Windows
Hentikan layanan Mysql dari task manager
Buat file teks dan rekatkan pernyataan di bawah ini
MySQL 5.7.5 dan sebelumnya:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
MySQL 5.7.6 dan yang lebih baru:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';
Simpan sebagai mysql-init.txt
dan letakkan di 'C' drive
.
Buka command prompt dan rekatkan yang berikut ini
C:\> mysqld --init-file=C:\\mysql-init.txt
mysqld --init-file=/root/m.txt
. Saya menambahkan perintah di atas SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
ke /root/m.txt
Kecuali manajer paket meminta Anda mengetikkan kata sandi root selama instalasi, kata sandi root default adalah string kosong. Untuk terhubung ke server yang baru diinstal, ketik:
shell> mysql -u root --password=
mysql>
Untuk mengubah kata sandi, dapatkan kembali shell unix dan ketik:
shell> mysqladmin -u root --password= password root
Kata sandi baru adalah 'root'. Sekarang terhubung ke server:
shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Ups, kata sandi telah berubah. Gunakan yang baru, root
:
shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql>
Bingo! Baru lakukan sesuatu yang menarik
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
Maurycy
Sebagai tambahan untuk jawaban lain, dalam instalasi cpanel, kata sandi root mysql disimpan dalam file bernama /root/.my.cnf
. (dan layanan cpanel menyetelnya kembali saat perubahan, sehingga jawaban lain di sini tidak akan membantu)
Anda dapat melihat kata sandi root mysql, yah saya sudah mencobanya di mysql 5.5 jadi tidak tahu tentang versi baru lainnya yang berfungsi dengan baik atau tidak
nano ~/.my.cnf
Ini bekerja untuk saya:
Pada terminal ketik berikut ini
$ sudo mysql -u root -p
Masukkan kata kunci:// cukup tekan enter
mysql>
Kata sandi default yang berfungsi untuk saya setelah instalasi segera server mysql adalah: mysql
Prosedurnya berubah tergantung versi MySql. Ikuti prosedur persis seperti yang dijelaskan untuk versi Anda:
PETUNJUK - Baca sebelum halaman instruksi untuk versi MySql Anda *
Pada langkah 5: Alih-alih menjalankan CMD, buat pintasan di desktop Anda memanggil CDM.exe. Kemudian klik kanan pada shortcut dan pilih "Execute as Administrator".
Pada langkah 6: Lewati versi yang diusulkan pertama dari perintah dan jalankan yang kedua, yang dengan parameter --defaults-file
Setelah Anda menjalankan perintah, jika semuanya baik-baik saja, jendela CMD tetap terbuka dan perintah langkah 6 terus dijalankan. Cukup tutup jendela (klik 'x'), lalu paksa tutup MySQl dari Task Manager.
Hapus file dengan perintah SQL, dan mulai lagi MySQL. Kata sandi harus diubah sekarang.
5.0 http://dev.mysql.com/doc/refman/5.0/id/resetting-permissions.html
5.1 http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html
... cukup ubah versi di tautan (5.5, 5.6, 5.7)
Di file .err "hostname" Anda di dalam folder data yang berfungsi untuk MySQL, coba cari string yang dimulai dengan:
"Kata sandi sementara dihasilkan untuk roor @ localhost"
kamu bisa memakai
less /mysql/data/dir/hostname.err
kemudian perintah slash diikuti oleh string yang ingin Anda cari
/"A temporary password"
Kemudian tekan n, untuk pergi ke hasil Berikutnya.
Jawaban yang diberikan di sini tampaknya tidak berfungsi untuk saya, triknya ternyata: ALTER USER 'root' @ 'localhost' DIIDENTIFIKASI DENGAN mysql_native_password OLEH 'test';
(jawaban lengkap di sini: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/ )
Sistem:
Prosedur:
Buka dua sesi shell, masuk ke satu sebagai pengguna root Linux dan yang lainnya sebagai pengguna non-root dengan akses ke mysql
perintah.
Di sesi root Anda, hentikan pendengar mysqld normal dan mulai pendengar yang melewati otentikasi kata sandi ( catatan: ini adalah risiko keamanan yang signifikan karena siapa pun yang memiliki akses ke mysql
perintah dapat mengakses database Anda tanpa kata sandi. Anda mungkin ingin menutup sesi shell aktif dan / atau nonaktifkan akses shell sebelum melakukan ini):
# systemctl stop mysqld
# /usr/sbin/mysqld --skip-grant-tables -u mysql &
Di sesi non-root, masuk ke mysql dan setel kata sandi root mysql:
$ mysql
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> quit;
Di sesi root Anda, bunuh instance mysqld tanpa kata sandi dan kembalikan pendengar mysqld yang normal ke layanan:
# kill %1
# systemctl start mysqld
Dalam sesi non-root Anda, uji kata sandi root baru yang Anda konfigurasi di atas:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql>
Saya memecahkan ini dengan cara yang berbeda, ini mungkin lebih mudah bagi sebagian orang.
Saya melakukannya dengan cara ini karena saya mencoba memulai dalam safe mode tetapi tidak dapat terhubung dengan kesalahan: ERROR 2002 (HY000): Tidak dapat terhubung ke server MySQL lokal melalui socket '/var/run/mysqld/mysqld.sock' (2)
Apa yang saya lakukan adalah terhubung secara normal sebagai root:
$ sudo mysql -u root
Lalu saya membuat pengguna super baru:
mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit
Kemudian masuk sebagai pengguna saya
$ mysql -u myuser -p -h localhost
Mencoba mengubah kata sandi tidak memberi saya kesalahan tetapi tidak melakukan apa pun untuk saya, jadi saya menjatuhkan dan menciptakan kembali pengguna root
mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;
Pengguna root sekarang bekerja dengan kata sandi baru
Buka phpMyAdmin> config.inc.php> $ cfg ['Server'] [$ i] ['kata sandi'] = '';
phpmyadmin
.