Bagaimana cara mereset atau mengubah kata sandi root MySQL?

179

Bagaimana cara mengubah kata sandi dan nama pengguna root MySQL di server ubuntu? Apakah saya perlu menghentikan layanan mysql sebelum mengatur perubahan?

Saya memiliki pengaturan phpmyadmin juga, akankah phpmyadmin diperbarui secara otomatis?

asm234
sumber
Jika Anda tidak membutuhkan data, Anda dapat "mengatur ulang" kata sandi dengan menghapus mysql secara keseluruhan: stackoverflow.com/questions/10853004/… kemudian menginstalnya lagi (ini akan meminta Anda untuk kata sandi root "baru") FWIW: )
rogerdpack
Apakah Anda tahu kata sandi root MySQL?
Franck Dernoncourt
2
di mysql-server-5.7 metode ini tidak berfungsi. gunakan 'sudo' tanpa kata sandi seperti yang disebutkan di askubuntu.com/a/848504
Pragalathan M

Jawaban:

225

Atur / ubah / setel ulang kata sandi root MySQL di Ubuntu Linux. Masukkan baris berikut di terminal Anda.

  1. Hentikan Server MySQL: sudo /etc/init.d/mysql stop
  2. Mulai mysqldkonfigurasi:sudo mysqld --skip-grant-tables &

    Dalam beberapa kasus, Anda harus membuat yang /var/run/mysqldpertama:

    sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
  3. Lari: sudo service mysql start
  4. Login ke MySQL sebagai root: mysql -u root mysql
  5. Ganti YOURNEWPASSWORDdengan kata sandi baru Anda:

    UPDATE
      mysql.user
    SET
      Password = PASSWORD('YOURNEWPASSWORD')
    WHERE
      User = 'root';
    FLUSH PRIVILEGES;
    exit;

Catatan: pada beberapa versi, jika passwordkolom tidak ada, Anda mungkin ingin mencoba:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

Catatan: Metode ini tidak dianggap sebagai cara yang paling aman untuk mengatur ulang kata sandi, namun berhasil.

Referensi:

  1. Set / Ubah / Reset kata sandi root MySQL di Ubuntu Linux
  2. Cara Mengatur Ulang Kata Sandi Root
Christian Mark
sumber
20
Tentu saja, setelah titik ini Anda harus mematikan proses server sementara, tanpa password yang Anda mulai pada langkah 2. mungkin menggunakan sudo killall -9 mysqld? dan kemudian sudo service mysql startme-restart daemon normal ...
Lambart
7
Metode dalam jawaban ini hanya diperlukan untuk mengatur ulang kata sandi root MySQL yang Anda tidak tahu [sumber ]. Jika Anda mengetahuinya, SET PASSWORDinstruksi MySQL adalah untuk Anda.
tanius
53
saya mengikuti sampai langkah ke-3 dan saya tidak bisa terhubung ke server MySQL lokal melalui socket '/var/run/mysqld/mysqld.sock' (2) ketika saya login melalui root
Sushivam
12
dalam beberapa kasus, Anda juga perlu menjalankan mkdir /var/run/mysqlddan chown mysql: /var/run/mysqldantara langkah 1 dan 2
Neville Nazerane
9
langkah 3 tidak berhasil untuk saya dengan Ubuntu 18.04. Saya baru saja masuk menggunakan sudo mysql
itsols
120

Satu-satunya metode yang bekerja untuk saya adalah yang dijelaskan di sini (saya menjalankan ubuntu 14.04). Demi kejelasan, ini adalah langkah-langkah yang saya ikuti:

  1. sudo vim /etc/mysql/my.cnf
  2. Tambahkan baris berikut di akhir:

    [mysqld]
    
    lewati-hibah-tabel
  3. sudo service mysql restart

  4. mysql -u root

  5. use mysql

  6. select * from mysql.user where user = 'root';- Lihat di atas untuk menentukan apakah kolom kata sandi disebut kata sandi atau authentication_string

  7. UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost'; - Gunakan kolom kata sandi yang tepat dari atas

  8. FLUSH PRIVILEGES;

  9. exit

  10. sudo vim /etc/mysql/my.cnf

  11. Hapus baris yang ditambahkan pada langkah 2 jika Anda ingin menjaga standar keamanan Anda.

  12. sudo service mysql restart

Untuk referensi: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

narko
sumber
8
Akhirnya, ini berhasil bagi saya! Saya menjalankan MySQL 5.7.18 di Ubuntu 16.04. Saya mencoba dpkg-mengkonfigurasi ulang, jawaban Anvesh, jawaban Christian Mark, dan bahkan petunjuk pada halaman bantuan MySQL.
mbuc91
9
Saya harus menjalankan UPDATE mysql.user SET authentication_string = PASSWORD ('newpwd') WHERE User = 'root'; alih-alih untuk saluran 5.
mbuc91
2
Satu-satunya solusi yang berhasil untuk saya. Saya memiliki Ubuntu 17.04 dan mysql 5.7
Mohamed
1
Sedih ini tidak bekerja untuk saya mysql 5.7.22 ubuntu 18.04
Mario
1
Semuanya berjalan seperti yang diharapkan. Tetapi ketika mencoba untuk login itu mengatakan Masukkan kata sandi: ERROR 1698 (28000): Akses ditolak untuk pengguna 'root' @ 'localhost'
Dipak Chatterjee
101

Cara resmi dan mudah untuk mereset kata sandi root di server ubuntu ...

Jika Anda menggunakan 16,04, 14,04, 12,04:

sudo dpkg-reconfigure mysql-server-5.5

Jika Anda menggunakan 10,04:

sudo dpkg-reconfigure mysql-server-5.1

Jika Anda tidak yakin versi server mysql diinstal, Anda dapat mencoba:

dpkg --get-selections | grep mysql-server

Catatan yang diperbarui untuk mysql-server-5.7

Perhatikan bahwa jika Anda menggunakan mysql-server-5.7 Anda tidak dapat menggunakan metode konfigurasi-ulang dpkg yang lebih mudah seperti ditunjukkan di atas.

Jika Anda tahu kata sandinya, login dan jalankan ini:

UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;

Atau, Anda dapat menggunakan yang berikut ini:

sudo mysql_secure_installation

Ini akan menanyakan serangkaian pertanyaan tentang pengamanan instalasi Anda (sangat disarankan), termasuk jika Anda ingin memberikan kata sandi root baru.

Jika Anda TIDAK tahu kata sandi root, lihat penulisan Ubuntu-sentris ini pada prosesnya .

Lihat untuk info lebih lanjut:

https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html

pengguna12345
sumber
3
Bekerja bahkan ketika Anda kehilangan kata sandi root MySQL asli - bagus.
tanius
4
Bekerja denganVer 14.14 Distrib 5.5.38, for debian-linux-gnu
justinpage
Bekerja dengan mysql v 5.0 juga ...sudo dpkg-reconfigure mysql-server-5.0
dsghi
4
sudo dpkg-mengkonfigurasi ulang mysql-server-5.7 tidak berfungsi untuk Ubuntu 18.04 untuk mereset kata sandi root. Ada alternatif lain?
Jagdeep Singh
Ubuntu:sudo dpkg-reconfigure mysql-server-5.7; sudo mysql_secure_installation
kenorb
77

Apa yang berhasil untuk saya (Ubuntu 16.04, mysql 5.7):

Hentikan MySQL

sudo service mysql stop

Buat direktori layanan MySQL.

sudo mkdir /var/run/mysqld

Berikan izin pengguna MySQL untuk menulis ke direktori layanan.

sudo chown mysql: /var/run/mysqld

Mulai MySQL secara manual, tanpa izin pemeriksaan atau jaringan.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Di konsol lain, masuk tanpa kata sandi.

mysql -uroot mysql

Kemudian:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;

Matikan MySQL.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Mulai layanan MySQL secara normal.

sudo service mysql start
fabriciofreitag
sumber
Cara lain tidak bekerja untuk saya selain yang ini (terima kasih!), Atau Anda juga bisa pergi ke sini rricketts.com/reset-root-password-mysql-5-7-ubuntu-16-04-lts
Dung
10
Sangat berguna ! Dalam kasus spesifik saya (Ubuntu 18.04 LTS), saya harus mengganti host '%' menjadi 'localhost'
FredericK
Ini tidak berfungsi di ubuntu 18.04. Tapi itu berhasil dengan perubahan kecil yang dijelaskan di sini stackoverflow.com/a/53385753/1591143
Aleksandar Popovic
76

Saya membagikan solusi langkah demi langkah terakhir untuk mereset kata sandi MySQL di Linux Ubuntu.

Referensi diambil dari blog (dbrnd.com)

Langkah 1: Hentikan Layanan MySQL.

sudo stop mysql

Langkah 2: Bunuh semua yang menjalankan mysqld.

sudo killall -9 mysqld

Langkah 3: Memulai mysqld dalam Safe mode.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Langkah 4: Mulai klien mysql

mysql -u root

Langkah 5: Setelah berhasil masuk, jalankan perintah ini untuk mengubah kata sandi apa pun.

FLUSH PRIVILEGES;

Langkah 6: Anda dapat memperbarui kata sandi root mysql.

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

Catatan : Di MySQL 5.7, kolom Passworddisebut authentication_string.

Langkah 7: Silakan jalankan perintah ini.

FLUSH PRIVILEGES;
Landasan
sumber
Memang. Juga, ini lebih dekat dengan dokumentasi resmi . Jika Anda mengalami ini: "ERROR 1524 (HY000): Plugin 'auth_socket' tidak dimuat", lihat stackoverflow.com/questions/37879448/…
Wtower
Saya juga harus mengubah mysql.user.plugin dari 'auth_socket' menjadi 'mysql_native_password' untuk pengguna root saya dengan host 'localhost'.
Brandon
1
Saya harus menggunakan "sudo /etc/init.d/mysql stop" untuk menghentikan layanan dan "UPDATE mysql.user SET authentication_string = PASSWORD ('newpwd') WHERE User = 'root';" untuk memperbarui kata sandi
L Bahr
1
otentikasi _string membantu
Faiyaz Md Abdul
42

Saya menghadapi masalah dengan ubuntu 18.04 dan mysql 5.7, ini solusinya

Coba restart server mysql sebelum menjalankan perintah

sudo service mysql restart

MYSQL-SERVER> = 5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

MYSQL-SERVER <5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
Jerfeson Guerreiro
sumber
1
Terima kasih, saya juga menjalankan Ubuntu 18.04 di sini dan MYSQL-SERVER >= 5.7versi itu adalah satu-satunya hal yang benar-benar menyelesaikan masalah
Miguelgraz
1
Ini adalah yang bekerja untuk instalasi mysql Ubuntu 18.04. MYSQL-SERVER >= 5.7versi tepatnya.
Sathish Manohar
34

Ubah kata sandi root MySQL.

Metode ini memaparkan kata sandi ke sejarah baris perintah, perintah ini harus dijalankan sebagai root.

  1. Masuk melalui alat baris perintah mysql:

    mysql -uroot -poldpassword
  2. Jalankan perintah ini:

    SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');

atau

  1. Jalankan perintah ini, yang menetapkan kata sandi untuk pengguna saat ini ('root' untuk kasus ini):

    SET PASSWORD = PASSWORD ('newpassword');

faisalbhagat
sumber
26

Pertama jalankan perintah ini:

sudo mysql

dan kemudian Anda harus memeriksa metode otentikasi yang digunakan oleh akun pengguna MySQL Anda. Jadi jalankan perintah ini

SELECT user,authentication_string,plugin,host FROM mysql.user;

sekarang Anda sudah dapat melihat sesuatu seperti ini:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

pada tabel di atas, Anda dapat melihat bahwa semua akun pengguna mysql Anda berstatus & jika Anda telah menetapkan kata sandi untuk akun root sebelum Anda melihat mysql_native_passworddi kolom plugin sebagai gantinya auth_socket. Secara keseluruhan untuk mengubah kata sandi root Anda, Anda harus menjalankan:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Pastikan untuk mengubah kata sandi menjadi kata sandi pilihan Anda. Kemudian untuk memuat ulang server Anda untuk menjalankan perubahan baru Anda, jalankan ini;

FLUSH PRIVILEGES;

Jadi sekali lagi periksa metode otentikasi yang telah digunakan oleh mysql Anda, dengan perintah ini:

SELECT user,authentication_string,plugin,host FROM mysql.user;

dan sekarang hasilnya adalah:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

seperti yang Anda lihat di tabel hibah akun root Anda mysql_native_password . sekarang Anda dapat keluar dari shell MYSQL

exit;

Itu saja. Anda harus memulai kembali mysql sudo service mysql restart. Sekarang Anda dapat masuk ke mysql sebagai akun root dengan kata sandi Anda dengan mudah.

Amir karim
sumber
Saya pikir ini dari DigitalOcean, yang merupakan satu-satunya solusi yang bekerja untuk saya di Ubuntu 18,04 yang berjalan di Virtual Box
Kemal
ini berfungsi dengan baik di ubuntu 18.04. Terima kasih.
mahfuz
12

Jika Anda ingin mengubah kata sandi root MySQL, di terminal masukkan:

sudo dpkg-reconfigure mysql-server-5.5

Daemon MySQL akan dihentikan, dan Anda akan diminta memasukkan kata sandi baru.

pengguna2206324
sumber
1
Ini adalah cara yang jauh lebih baik untuk melakukannya. Saya tidak dapat menjalankan perintah sebelumnya karena beberapa kesalahan mysql ...
Andy
sudo dpkg-mengkonfigurasi ulang mysql-server-5.7 di ubuntu 16.04
Nick Barrett
2
Saya berlari sudo dpkg-reconfigure mysql-server-5.7di Ubuntu 16.04, itu tidak meminta untuk memasukkan kata sandi baru.
Franck Dernoncourt
Jika dikatakan mysql-server is broken or not fully installed, seseorang dapat menggunakan sudo apt purge mysql*dansudo apt install mysql-server
Pavel
12

Ini berfungsi seperti pesona yang saya lakukan untuk Ubuntu 16.04. Kredit penuh ke tautan di bawah ini saat saya mendapatkannya dari sana. [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts[[1]

Hentikan MySQL

sudo service mysql stop

Buat direktori layanan MySQL. sudo mkdir / var / run / mysqld

Berikan izin pengguna MySQL untuk menulis ke direktori layanan.

sudo chown mysql: /var/run/mysqld

Mulai MySQL secara manual, tanpa izin pemeriksaan atau jaringan.

sudo mysqld_safe --skip-grant-tables --skip-networking &

Masuk tanpa kata sandi.

mysql -uroot mysql

Perbarui kata sandi untuk pengguna root. pastikan atleast root account akan diperbarui oleh kueri di bawah ini. buat beberapa pilihan dan periksa nilai yang ada jika Anda mau

UPDATE mysql.user SET 
authentication_string=PASSWORD('YOURNEWPASSWORD'), 
plugin='mysql_native_password' WHERE User='root';
EXIT;

Matikan MySQL.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Mulai layanan MySQL secara normal.

sudo service mysql start
kadal
sumber
11
  1. Hentikan MySQL sudo service mysql stop

  2. Buat direktori layanan MySQL. sudo mkdir / var / run / mysqld

  3. Berikan izin pengguna MySQL untuk menulis ke direktori layanan. sudo chown mysql: / var / run / mysqld

  4. Mulai MySQL secara manual, tanpa izin pemeriksaan atau jaringan. sudo mysqld_safe --skip-grant-tables --skip-networking &

5.Masuk tanpa kata sandi. mysql -uroot mysql

6. Perbarui kata sandi untuk pengguna root.

UPDATE mysql.user SET authentication_string = PASSWORD ('YOURNEWPASSWORD'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = '%'; KELUAR;

  1. Matikan MySQL. sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

  2. Mulai layanan MySQL secara normal. sudo service mysql start

Rahul Raveendran
sumber
1
Hai, jawaban ini berfungsi untuk saya, tetapi saya harus menggunakan perintah lain: UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';tanpa AND Host='%'. Terima kasih!
David Corral
10

Solusi ini milik versi MySQL sebelumnya. Dengan masuk ke MySQL menggunakan otentikasi soket, Anda dapat melakukannya.

sudo mysql -u root

Maka perintah berikut bisa dijalankan.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Detail tersedia di sini .

Huseyin
sumber
1
Saya tidak bisa masuk sudo mysql -u roottetapi saya bisa melakukannya sudo mysqldan menjalankan ALTER USERperintah.
itsol
Saya mendapatkan kesalahan ini: "Kata sandi Anda tidak memenuhi persyaratan kebijakan saat ini". Saya dapat memperbaiki ini di sini: stackoverflow.com/a/43094873/9073437 . Setelah menetapkan kebijakan kata sandi yang dimodifikasi, semuanya bekerja dengan baik.
Grandtour
10

Ini solusi untuk saya. Saya bekerja di Ubuntu 18.04: https://stackoverflow.com/a/46076838/2400373

Namun penting perubahan ini di langkah terakhir:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; 
juanitourquiza
sumber
Astaga! Terima kasih banyak! Ini satu-satunya cara yang berhasil dalam kasus saya. Lupakan skrip instalasi aman bodoh itu karena saya baru saja menginstal 5,7 lebar terbuka untuk pengguna tanpa pernah meminta kata sandi ... jika Linux / Ubuntu adalah untuk pengguna yang sadar keselamatan mengapa sulit untuk melindungi aplikasi penting seperti server MySQL ?
Thomas Urban
7

Untuk Ubuntu 18.04 dan versi mysql 14.14 Distrib 5.7.22 ikuti langkah di bawah ini untuk mengatur ulang kata sandi mysql.

Langkah 1

sudo systemctl stop mysql

Langkah 2

sudo systemctl edit mysql

Perintah ini akan membuka file baru di editor nano, yang akan Anda gunakan untuk mengedit penggantian layanan MySQL. Ini mengubah parameter layanan default untuk MySQL. File ini akan kosong, jadi tambahkan konten berikut:

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

Langkah 3

sudo systemctl daemon-reload
sudo systemctl start mysql

Langkah 4

sudo mysql -u root

Langkah 5

FLUSH PRIVILEGES;

Langkah 6

UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';

Langkah 7

UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';

Langkah 8

sudo systemctl revert mysql

dan akhirnya

sudo systemctl restart mysql

Sekarang nikmati

Masum Billah
sumber
Saya pikir Anda melewatkan konten pada langkah 2. Ini tidak lengkap.
Lucas Mendes Mota Da Fonseca
6

Mengomentari komentar rogerdpack: jika Anda tidak mengetahui kata sandi root MySQL dan Anda tidak peduli dengan data / pengaturan MySQL, Anda dapat menginstal ulang dan mengatur ulang kata sandi root sebagai berikut:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client 

Selama instalasi, Anda dapat memilih kata sandi root:

masukkan deskripsi gambar di sini

Franck Dernoncourt
sumber
2
Saya berharap saya sudah mulai di sini daripada membuang-buang waktu membenturkan kepala saya mencoba mengatur ulang kata sandi.
Eric Seastrand
3

Jika Anda mengetahui kata sandi saat ini, Anda tidak harus menghentikan server mysql. Buka terminal ubuntu. Login ke mysql menggunakan:

mysql - username -p

Kemudian ketikkan kata sandi Anda. Ini akan membawa Anda ke konsol mysql. Di dalam konsol, ketik:

> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Kemudian siram hak istimewa menggunakan:

> flush privileges;

Lalu kalian semua selesai.

Peter Mutisya
sumber
2

Ketika Anda menggunakan MySQL PASSWORD()pada sistem di mana Anda ingin mengubah kata sandi, itu dapat menyebabkan kata sandi muncul di log MySQL di cleartext [ sumber ]. Menjaga mereka, cadangan mereka dll. Seaman kata sandi terdengar seperti mimpi buruk bagi saya, jadi saya lebih suka melakukannya sebagai berikut:

  1. Di mesin lokal Anda , jalankan ini dengan kata sandi Anda:

     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")

    Perhatikan ruang di depan untuk mencegahnya muncul di bash history (untuk distro lain selain Ubuntu, ini mungkin bekerja secara berbeda - sumber ).

  2. Di mesin server Anda, jalankan perintah berikut untuk mengubah kata sandi root MySQL-nya (ganti myhashdengan hash kata sandi Anda seperti yang dicetak oleh perintah pertama):

    mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
  3. Secara opsional, mari kita menjadi sedikit paranoid: Pada mesin lokal Anda, kosongkan layar terminal Anda dengan cleardan bersihkan scrollback terminal virtual Anda, untuk menyembunyikan kata sandi teks-bersih yang muncul pada perintah di atas.

tanius
sumber
2

Untuk memperbarui "root" kata sandi pengguna Mysql Anda harus ingat bahwa Anda akan memerlukan izin pengguna super untuk itu. Jika Anda memiliki hak pengguna super, coba perintah berikut:

MySQL 5.7.6 dan yang lebih baru

sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass

MySQL 5.7.5 dan sebelumnya

sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass
alvaropaco
sumber
2

Anda tidak membutuhkan semua ini. Cukup masuk:

mysql -u root -p

Kemudian ubah kata sandi pengguna saat ini sebagai mysql>prompt:

mysql> set password=password('the_new_password');
mysql> flush privileges;
mprivat
sumber
1
Ini cara paling sederhana! Ini bekerja untuk saya dengan mysql 5.7.21-0ubuntu0.17.10.1
Sergio Belevskij
2

Sebagian besar jawaban tentang topik ini sudah usang; dua perubahan besar telah terjadi di MySQL hingga penulisan jawaban ini:

1- bidang 'Kata Sandi' di tabel pengguna telah diganti dengan kolom 'otentikasi_string'.

2- fungsi enkripsi 'Kata Sandi': PASSWORD ("dari beberapa teks") sudah usang.

Silakan merujuk ke tautan ini untuk informasi lebih lanjut: dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

Elie Asmar
sumber
1

Alih-alih mengatur ulang kata sandi ada pekerjaan di mesin lokal jika Anda memiliki pengaturan phpmyadminuntuk terhubung tanpa memberikan kata sandi atau nama pengguna. Lihat ini dengan memulai mysql, apachedll. Saya telah xamppmenginstal di mesin lokal saya. Jadi memulai xampp akan memulai semua layanan yang diperlukan. Sekarang akan http://localhost/phpmyadminmenunjukkan kepada saya semua database. Ini mengkonfirmasi bahwa Anda telah menyimpan nama pengguna dan kata sandi dalam file konfigurasi phpmyadmin yang dapat ditemukan di phpmyadminlokasi instal. Jika Anda telah xamppmenginstal phpmyadminfolder tersebut dapat ditemukan di folder root xamppinstalasi. Cari kata passworddalam config.inc.phpfile. Di sana Anda akan menemukan password dan username.

Joseph
sumber
1

Anda dapat dengan mudah mengubah kata sandi mysql jika digunakan pada xampp melalui phpadmin gui yang disediakan.

phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
Mohd Arshil
sumber
1

untuk mysql 5.6 perintah ini berfungsi dan Anda dapat mengatur kata sandi melalui wizard:

sudo dpkg-reconfigure mysql-server-5.6
MSS
sumber
Saya mencoba tetapi tidak berfungsi .. Saya mendapatkan kesalahan di bawah ini .. bisakah Anda membantu? Instalasi MySQL ini sudah ditingkatkan ke 5.7.21, gunakan --force jika Anda masih perlu menjalankan mysql_upgrade
Vijaysinh Parmar
1

Anda dapat mencoba beberapa langkah ini untuk mereset mysql 5.7 kata sandi root:

Hentikan Layanan Mysql ke-1

sudo /etc/init.d/mysql stop 

Login sebagai root tanpa kata sandi sudo mysqld_safe --skip-grant-tables &

Setelah login terminal mysql Anda harus menjalankan perintah lebih lanjut:

use mysql;




UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';


flush privileges;


sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

Setelah Anda me-restart server mysql Anda Jika Anda masih menghadapi kesalahan, Anda harus mengunjungi: Reset MySQL 5.7 root password Ubuntu 16.04

Inderpal Singh
sumber
1

Anda dapat menggunakan perintah ini:

UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';

setelah itu silakan gunakan siram:

FLUSH PRIVILEGES;
Rahul Karande
sumber
1

Pengaturan Kata Sandi MySQL

  1. hentikan layanan database MySQL

sudo /etc/init.d/mysql berhenti

  1. buat direktori mysqld baru

sudo mkdir / var / run / mysqld /

  1. memberikan akses pengguna mysql

sudo chown mysql / var / run / mysqld /

  1. mulai MySQL dalam safe mode ...

sudo mysqld_safe --skip-grant-tables &

  1. masuk ke server database tanpa kata sandi

sudo mysql -u root

  1. gunakan database mysql default

gunakan mysql;

  1. ubah kata sandi root

update user set authentication_string=PASSWORD("New_Passwore_Here") where User = 'root';

  1. Simpan perubahannya

    hak istimewa; keluar;

  2. hentikan MySQL safe_mode dan mulai layanan default MySQL

sudo /etc/init.d/mysql berhenti

sudo /etc/init.d/mysql mulai

  1. masuk kembali ke database MySQL menggunakan kata sandi baru root

sudo mysql -u root -p

*** Sumber: https://websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/

Viraj
sumber
1

Jika Anda mengetahui kata sandi pengguna 'root', masuk ke mysql dengan kredensial itu. Kemudian jalankan permintaan berikut untuk memperbarui kata sandi.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';
Udara Seneviratne
sumber
0

ketika mengubah / mengatur ulang kata sandi MySQL, perintah berikut yang tercantum di atas tidak membantu. Saya menemukan bahwa pergi ke terminal dan menggunakan perintah ini tidak ada gunanya. alih-alih gunakan perintah sudo hentikan semuanya. HAPUS SISTEM 32 untuk windows jika itu membantu.

Batu
sumber
1
Pertanyaannya adalah tentang ubuntuOS bukan windows. Apa yang Anda maksud dengan DELETE SYSTEM 32 untuk windows ?
EhsanT
0

Untuk mereset atau mengubah kata sandi yang dimasukkan sudo dpkg-reconfigure mysql-server-X.X(XX adalah versi mysql yang telah Anda instal yaitu 5.6, 5.7) dan kemudian Anda akan meminta layar di mana Anda harus mengatur kata sandi baru dan kemudian pada langkah berikutnya konfirmasi kata sandi dan tunggu sebentar. Itu dia.

Gaurav Paliwal
sumber
0

Saya harus menempuh rute ini di Ubuntu 16.04.1 LTS. Ini agak campuran dari beberapa jawaban lain di atas - tetapi tidak ada yang membantu. Saya menghabiskan satu jam atau lebih untuk mencoba semua saran lain dari situs web MySql untuk semuanya di SO, akhirnya saya berhasil dengan:

Catatan: ketika ditampilkan Masukkan kata sandi untuk root pengguna, saya tidak memiliki kata sandi asli sehingga saya hanya memasukkan kata sandi yang sama untuk digunakan sebagai kata sandi baru.

Catatan: tidak ada /var/log/mysqld.log saja /var/log/mysql/error.log

Juga perhatikan ini tidak bekerja untuk saya:
sudo dpkg-reconfigure mysql-server-5.7

Juga tidak:
sudo dpkg-reconfigure --force mysql-server-5.5

Membuat direktori layanan MySQL.
sudo mkdir /var/run/mysqld

Berikan izin pengguna MySQL untuk menulis ke direktori layanan.
sudo chown mysql: /var/run/mysqld

Kemudian:

  1. bunuh pid mysqld saat ini
  2. jalankan mysqld dengan sudo / usr / sbin / mysqld &
  3. jalankan / usr / bin / mysql_secure_installation

    Output dari mysql_secure_installation

    root @ myServer: ~ # / usr / bin / mysql_secure_installation

    Mengamankan penyebaran server MySQL.

    Masukkan kata sandi untuk root pengguna:

    VALIDATE PASSWORD PLUGIN dapat digunakan untuk menguji kata sandi dan meningkatkan keamanan. Ini memeriksa kekuatan kata sandi dan memungkinkan pengguna untuk menetapkan hanya kata sandi yang cukup aman. Apakah Anda ingin mengatur plugin VALIDATE PASSWORD?

    Tekan y | Y untuk Ya, tombol lain untuk Tidak: tidak Menggunakan kata sandi yang ada untuk root. Ubah kata sandi untuk root? ((Tekan y | Y untuk Ya, tombol lain untuk Tidak): y

    Kata sandi baru:

    Masukkan kembali kata sandi baru: Secara default, instalasi MySQL memiliki pengguna anonim, yang memungkinkan siapa saja untuk masuk ke MySQL tanpa harus membuat akun pengguna. Ini hanya dimaksudkan untuk pengujian, dan untuk membuat instalasi sedikit lebih lancar. Anda harus menghapusnya sebelum pindah ke lingkungan produksi.

    Hapus pengguna anonim? (Tekan y | Y untuk Ya, tombol lain untuk Tidak): y Sukses.

    Biasanya, root hanya diperbolehkan untuk terhubung dari 'localhost'. Ini memastikan bahwa seseorang tidak dapat menebak kata sandi root dari jaringan.

    Larang login root dari jarak jauh? (Tekan y | Y untuk Ya, tombol lain untuk Tidak): y Sukses.

    Secara default, MySQL dilengkapi dengan database bernama 'test' yang dapat diakses siapa saja. Ini juga dimaksudkan hanya untuk pengujian, dan harus dihapus sebelum pindah ke lingkungan produksi.

    Hapus database pengujian dan akses ke sana? (Tekan y | Y untuk Ya, tombol lain untuk Tidak): y

    • Menjatuhkan basis data pengujian ... Sukses.

    • Menghapus hak istimewa pada basis data pengujian ... Sukses.

    Reload tabel privilege akan memastikan bahwa semua perubahan yang dilakukan sejauh ini akan segera berlaku.

    Muat ulang tabel privilege sekarang? (Tekan y | Y untuk Ya, tombol lain untuk Tidak): y Sukses.

    Semua selesai!

JGlass
sumber