GNU/Linux >> Belajar Linux >  >> Linux

Cara mereset kata sandi root MySQL

Pada artikel ini saya akan menunjukkan cara mereset kata sandi root MySQL dengan dua cara berbeda. Kedua metode ini juga berfungsi dengan garpu MariaDB bebas-Oracle.

Mengapa?

Ada dua alasan utama mengapa seseorang perlu mengatur ulang kata sandi root:

  • Anda lupa kata sandi itu
  • Anda tidak tahu kata sandi itu

Mungkin ada banyak alasan untuk tidak mengetahui kata sandi:Anda tidak pernah tahu kata sandi dan DBA lama telah hilang; seseorang berubah untuk kesenangan atau alasan jahat; sekarang jam 3 pagi, sistem macet dan dba sedang berlibur di negara lain, dll.

Faktanya adalah bahwa suatu pagi Anda perlu memasukkan database dan mendapatkan situasi ini:

Saya berasumsi bahwa Anda memiliki pengguna super (yaitu su atau sudo untuk melakukan root) akses ke Sistem Operasi. Sistem Operasi saya dalam tutorial ini adalah Debian Linux.

Kedua metode mengharuskan Anda untuk menghentikan layanan mysql sebelumnya. Lakukan dengan (jangan lupa su/sudo seperlunya):

# service mysql stop

Metode 1:

Buat file dengan perintah SQL untuk mengatur password root baru yang akan kita gunakan di mysql start. Anda dapat menggunakan editor teks apa saja atau cukup ketik:

# echo "ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';" > passreset.sql

Jika Anda memilih editor teks, buat file hanya dengan bagian yang dicetak tebal. Tentu saja, pilih yang nyata sandi, mudah diingat dan sulit ditemukan.

Dan mulai secara manual dengan pengguna mysql ( -u mysql) dan dengan file yang kita buat sebelumnya (–init-file:passreset.sql). Baris perintah lengkapnya adalah:

# mysqld -u mysql --init-file=/var/lib/mysql/passreset.sql

Tunggu hingga muncul pesan:mysqld:ready for connection . Kemudian buka konsol lain untuk menguji kata sandi root baru Anda:

Metode 2:

Di masa lalu saya pernah melihat ini cara mereset kata sandi root mysql beberapa kali di internet. Pada percobaan pertama pagi ini tidak berhasil untuk saya, tetapi saya menemukan solusi.

Kami akan menggunakan sakelar perintah mysqld ini:

--skip-grant-tables    Start without grant tables. This gives all users FULL
                               ACCESS to all tables.

Ini memberi saya akses penuh ke semua tabel. Prosedurnya adalah menghubungkan ke mysql dan menjalankan perintah ALTER USER yang telah kita lihat di metode sebelumnya, tetapi saya mendapatkan kesalahan tentang mysqld yang berjalan dengan skip-grant-tables.

Solusinya adalah menjalankan mysqld dengan switch skip-grant-tables dan menggunakan pengguna mysql. Baris perintah lengkapnya adalah:

# mysqld -u mysql --skip-grant-tables

Dan, di konsol lain, hapus hak istimewa sebelum pembaruan, lalu hapus lagi hak istimewa:

# mysql -u root
MariaDB (none) > flush privileges;
MariaDB (none) > ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
MariaDB (none) > flush privileges;
MariaDB (none) > ^DBye

Selesai

Sekarang Anda dapat menghentikan mysql dan memulainya secara normal. Dalam kasus saya, ctrl-c tidak berfungsi untuk menghentikannya, saya harus mematikan proses yang dimulai secara manual sebelumnya:

# killall mysqld
# service mysql start

Dan ini dia, dengan salah satu metode tersebut Anda mendapatkan kembali kendali atas MySQL atau MariaDB Anda.


Linux
  1. Cara Mengatur Ulang Kata Sandi Root MySQL Atau MariaDB

  2. Cara Reset Kata Sandi Root Server MySQL

  3. Bagaimana cara mereset kata sandi root MySQL?

  1. Cara mereset kata sandi root MySql

  2. Cara Mengatur Ulang Kata Sandi Root MySQL

  3. Setel ulang kata sandi root MySQL

  1. Cara Mengatur Ulang Kata Sandi Root MySQL Anda di CentOS 6

  2. Cara mereset kata sandi root MySql

  3. Bagaimana Cara Mengatur Ulang Kata Sandi Root Ubuntu 17.04 yang Terlupakan?