Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Setel Ulang Kata Sandi Root MySQL

Tutorial ini memberikan langkah-langkah untuk mereset atau mengubah kata sandi root server MySQL jika pengguna lupa kata sandi. Ini mengasumsikan bahwa Anda memiliki akses ke sistem untuk menghentikan dan memulai server MySQL. Tutorial ini khusus untuk MySQL 8.0 dan di atasnya, meskipun seharusnya berfungsi di luar kotak untuk versi MySQL yang lebih lama termasuk MySQL 5.7 . Kami dapat mengatur ulang kata sandi root dengan dua cara seperti yang disebutkan di bawah ini.

Catatan :Anda juga dapat mengikuti tutorial MySQL - Cara Menginstal MySQL 8 di Ubuntu, Cara Menghapus Sepenuhnya MySQL Dari Ubuntu, dan Mempelajari Query SQL Dasar Menggunakan MySQL.

Perbarui Kata Sandi

Kami cukup memperbarui kata sandi root MySQL jika kami sudah mengetahuinya. Itu dapat dilakukan dengan menggunakan perintah seperti yang ditunjukkan di bawah ini. ALTER perintah adalah yang disukai karena berfungsi di MySQL 5.7 dan MySQL 8 , meskipun Anda dapat mengikuti salah satu perintah.

# Masuk ke MySQL
mysql -uroot -p
# ATAU
mysql -u root -p

# MySQL - 5.7.5 dan sebelumnya
PERBARUI mysql.user SET password=PASSWORD('password') WHERE user='root';

# MySQL - 5.7.6 dan yang lebih baru
PERBARUI mysql.user SET authentication_string=PASSWORD ("password") dimana user='root';
# ATAU
SET PASSWORD FOR 'root'@'localhost' =PASSWORD("password");

# MySQL - 5.7, 8
ALTER USER 'root'@'localhost' DIIDENTIFIKASI DENGAN '';
# ATAU
ALTER USER 'root'@'localhost' DIIDENTIFIKASI DENGAN mysql_native_password OLEH '';

# MySQL - 8
ALTER USER 'root'@'localhost' DIIDENTIFIKASI DENGAN caching_sha2_password OLEH '';

# Flush
HAK ISTIMEWA FLUSH;

# Putuskan sambungan
keluar;

Jika Anda lupa kata sandi root, Anda dapat mengikuti Proses A atau Proses B seperti yang disebutkan di bawah ini.

Proses A - Aman

Dalam proses ini, kami akan menghentikan dan memulai server MySQL untuk menggunakan skrip init untuk mengubah kata sandi root.

Langkah 1 - Hentikan Server

Kita harus menghentikan server sebagai langkah pertama dari proses ini. Itu dapat dilakukan dengan menggunakan perintah seperti yang ditunjukkan di bawah ini.

# Menggunakan init
sudo /etc/init.d/mysqld stop
# ATAU
sudo /etc/init.d/mysql stop

# Menggunakan service
sudo service mysql stop

# Menggunakan systemd
sudo systemctl stop mysqld.service
# ATAU
sudo systemctl stop mysql

Langkah 2 - Buat File Init

Sekarang buat file init dan tambahkan perintah untuk memperbarui kata sandi root seperti yang ditunjukkan di bawah ini.

# Buat File Init - Gunakan editor pilihan Anda
sudo nano init-file.txt

# Tambahkan kueri untuk memperbarui kata sandi

# MySQL - 5.7, 8
ALTER USER 'root'@'localhost' DIIDENTIFIKASI DENGAN '';
# ATAU
ALTER USER 'root'@'localhost' DIIDENTIFIKASI DENGAN mysql_native_password OLEH '';

# MySQL - 8
ALTER USER 'root'@'localhost' DIIDENTIFIKASI DENGAN caching_sha2_password OLEH '';

Langkah 3 - Mulai Server MySQL

Sekarang mulai server MySQL menggunakan file init seperti yang ditunjukkan di bawah ini.

# Mulai server
sudo mysqld --init-file=init-file.txt &
# ATAU
sudo mysqld_safe --init-file=init-file.txt &

Ini mungkin menimbulkan banyak kesalahan tergantung pada instalasi server Anda.

Anda mungkin mendapatkan pesan kesalahan - mysqld_safe Directory '/var/run/ mysqld ' untuk file soket UNIX jangan ada . Kita harus membuat mysqld direktori dan buat mysql sebagai pemilik menggunakan perintah seperti yang ditunjukkan di bawah ini.

# Menghentikan server

# Membuat direktori
sudo mkdir -p /var/run/mysqld

# Ubah pemilik
sudo chown mysql :mysql /var/run/mysqld

# Mulai dengan file init
sudo mysqld_safe --init-file=init-file.txt &

Anda mungkin mendapatkan pesan kesalahan - ERROR 2002 (HY000):Tidak dapat terhubung ke server MySQL lokal melalui soket '/var/run/mysqld /mysqld .sock' . Dalam kasus seperti itu, ikuti perintah yang disebutkan di bawah ini untuk menyelesaikannya.

# Mulai Server MySQL secara normal - Ubuntu
sudo service mysql start

# Arahkan ke direktori sock
cd /var/run

# Ambil backup - sock
sudo cp -rp ./mysqld ./mysqld.bak

# Menghentikan server secara normal - Ubuntu
sudo service mysql stop

# Kembalikan sock
sudo mv ./mysqld.bak ./mysqld

# Mulai MySQL dalam mode tidak aman
sudo mysqld_safe --skip-grant-tables &

Langkah 4 - Hentikan dan Mulai server MySQL

Sekarang hentikan dan mulai server MySQL menggunakan perintah biasa seperti yang ditunjukkan di bawah ini.

# Menggunakan init
sudo /etc/init.d/mysqld stop
sudo /etc/init.d/mysqld start
# ATAU
sudo /etc/init. d/mysql stop
sudo /etc/init.d/mysql start

# Menggunakan layanan
sudo service mysql stop
sudo service mysql start

# Menggunakan systemd
sudo systemctl stop mysqld.service
sudo systemctl start mysqld.service
# ATAU
sudo systemctl stop mysql
sudo systemctl start mysql

Hentikan proses yang ada jika diperlukan. Gunakan hanya jika perintah di atas tidak berfungsi untuk menghentikan dan memulai server.

# Temukan prosesnya
ps aux | grep mysqld
ps aux | grep mysql

# Matikan proses
sudo killall mysqld
sudo killall mysql

Langkah 5 - Uji Kata Sandi

Terakhir, uji kata sandi baru menggunakan perintah seperti yang ditunjukkan di bawah ini.

# Uji kata sandi baru
mysql -u root -p

Pastikan untuk menghapus file init setelah menguji kata sandi baru Anda. Jika tidak berhasil, Anda dapat mengikuti Proses B .

Proses B - Kurang Aman

Dalam proses ini, kami akan berhenti dan kemudian memulai server MySQL tanpa memerlukan kata sandi untuk masuk.

Langkah 1 - Hentikan Server

Kita harus menghentikan server MySQL yang sedang berjalan sebagai langkah pertama untuk menyelesaikan proses ini. Itu dapat dilakukan dengan menggunakan perintah seperti yang ditunjukkan di bawah ini.

# Menggunakan init
sudo /etc/init.d/mysqld stop
# ATAU
sudo /etc/init.d/mysql stop

# Menggunakan service
sudo service mysql stop

# Menggunakan systemd
sudo systemctl stop mysqld.service
# ATAU
sudo systemctl stop mysql

Langkah 2 - Mulai MySQL tanpa kata sandi

Sekarang mulai server MySQL dengan kata sandi dinonaktifkan menggunakan perintah seperti yang ditunjukkan di bawah ini. Pastikan untuk menambahkan ampersand (&) di akhir perintah ini. Ini juga mengaktifkan --skip-networking secara otomatis untuk mencegah koneksi jarak jauh.

# Mulai tanpa kata sandi
sudo mysqld_safe --skip-grant-tables &

Anda mungkin mendapatkan pesan kesalahan - mysqld_safe Directory '/var/run/ mysqld ' untuk file soket UNIX jangan ada . Kita harus membuat mysqld direktori dan buat mysql sebagai pemilik menggunakan perintah seperti yang ditunjukkan di bawah ini.

# Menghentikan server

# Membuat direktori
sudo mkdir -p /var/run/mysqld

# Ubah pemilik
sudo chown mysql :mysql /var/run/mysqld

# Mulai tanpa kata sandi
sudo mysqld_safe --skip-grant-tables &

Anda mungkin mendapatkan pesan kesalahan - ERROR 2002 (HY000):Tidak dapat terhubung ke server MySQL lokal melalui soket '/var/run/mysqld /mysqld .sock' . Dalam kasus tersebut , ikuti perintah yang disebutkan di bawah ini untuk Ubuntu untuk menyelesaikannya.

# Mulai Server MySQL
sudo service mysql start

# Arahkan ke direktori sock
cd /var/run

# Tack backup - sock
sudo cp -rp ./mysqld ./mysqld.bak

# Menghentikan server
sudo service mysql stop

# Mengembalikan sock
sudo mv ./mysqld.bak ./mysqld

# Mulai MySQL dalam mode tidak aman
sudo mysqld_safe --skip-grant-tables &

Langkah 3 - Hubungkan ke MySQL

Sekarang buka terminal lain atau sambungkan ke server melalui shell lain untuk menghubungkan klien.

# Hubungkan Langsung
mysql

# Hubungkan sebagai Root
mysql -uroot
# ATAU
mysql -u root

Langkah 4 - Ubah sandi

Pada langkah ini, ubah kata sandi root menggunakan perintah seperti yang ditunjukkan di bawah ini. Anda juga dapat merujuk ke bagian Perbarui Kata Sandi dari tutorial ini untuk menggunakan perintah lain untuk mengubah kata sandi.

# Ubah Kata Sandi

# MySQL - 5.7, 8
ALTER USER 'root'@'localhost' DIIDENTIFIKASI DENGAN '';
# ATAU
ALTER PENGGUNA 'root'@'localhost' DIIDENTIFIKASI DENGAN mysql_native_password OLEH '';

# MySQL - 8
ALTER PENGGUNA 'root'@'localhost' DIIDENTIFIKASI DENGAN caching_sha2_password OLEH ' ';

# Flush
Hak Istimewa FLUSH;

# Putuskan sambungan
keluar;

Langkah 5 - Hentikan dan Mulai server MySQL

Sekarang hentikan dan mulai server MySQL menggunakan perintah biasa seperti yang ditunjukkan di bawah ini.

# Menggunakan init
sudo /etc/init.d/mysqld stop
sudo /etc/init.d/mysqld start
# ATAU
sudo /etc/init. d/mysql stop
sudo /etc/init.d/mysql start

# Menggunakan layanan
sudo service mysql stop
sudo service mysql start

# Menggunakan systemd
sudo systemctl stop mysqld.service
sudo systemctl start mysqld.service
# ATAU
sudo systemctl stop mysql
sudo systemctl start mysql

Hentikan proses yang ada jika diperlukan. Gunakan hanya jika perintah di atas tidak berfungsi untuk menghentikan dan memulai server.

# Temukan prosesnya
ps aux | grep mysqld
ps aux | grep mysql

# Matikan proses
sudo killall mysqld
sudo killall mysql

Langkah 6 - Uji Kata Sandi

Terakhir, uji kata sandi baru menggunakan perintah seperti yang ditunjukkan di bawah ini.

# Uji kata sandi baru
mysql -u root -p

Ringkasan

Ini adalah bagaimana kami dapat mereset atau mengubah kata sandi pengguna root atau pengguna lain jika kami lupa kata sandinya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Referensi:Apa contoh kode yang sempurna menggunakan ekstensi MySQL?

  2. Panduan lengkap tentang cara menggunakan MySQL

  3. Cara menghitung peringkat di MySQL

  4. String kueri MySQL berisi:

  5. Apakah kunci utama secara otomatis diindeks di MySQL?