Dokumen ini menyediakan solusi untuk masalah umum instalasi, konfigurasi, dan manajemen MySQL guna membantu Anda mempertahankan server yang stabil.
Kata sandi pengguna MySQL yang lupa
Jika Anda lupa kata sandi pengguna non-root, Anda dapat menggunakan pengguna root untuk mengubahnya secara langsung. Jika Anda lupa kata sandi pengguna root, Anda harus menghentikan layanan MySQL dan menjalankannya kembali dalam mode khusus yang melewati pemeriksaan izin, sehingga memungkinkan Anda mengatur ulang kata sandi tersebut.
Kata sandi yang lupa untuk pengguna non-root
-
Kueri nilai
Hostdari pengguna target.# Ganti dengan username sebenarnya mysql -uroot -p -e "SELECT Host FROM mysql.user WHERE User = 'target_username';" -
Ubah kata sandi berdasarkan nilai
Host. Jika pengguna memiliki beberapa nilaiHost, jalankan perintah tersebut untuk masing-masing nilai tersebut.# Ganti dengan username, password, dan Host sebenarnya mysql -uroot -p -e "ALTER USER 'target_username'@'target_host' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES;"
Kata sandi pengguna root yang lupa
Mengatur ulang kata sandi pengguna root memerlukan penghentian layanan MySQL.
Untuk menghentikan layanan MySQL, jalankan perintah berikut.
Alibaba Cloud Linux dan CentOS
sudo systemctl stop mysqldUbuntu dan Debian
sudo systemctl stop mysql-
Jalankan MySQL dalam mode sementara dan catat ID prosesnya. Anda akan memerlukan ID ini untuk menghentikan proses tersebut nanti.
Catatan-
--skip-grant-tables: Melewati validasi izin dan memungkinkan Anda masuk tanpa kata sandi. -
&: Menjalankan proses MySQL di latar belakang. Terminal akan mengembalikan ID proses (PID). Misalnya, pada output[1] 1234, PID-nya adalah1234.
sudo -u mysql mysqld --skip-grant-tables & -
-
Muat ulang tabel otorisasi dan ubah kata sandi root. Ganti
<password>dengan kata sandi baru Anda. Kata sandi tersebut harus memenuhi kebijakan kata sandi saat ini: minimal 8 karakter, terdiri atas setidaknya satu huruf kapital, satu huruf kecil, satu angka, dan satu karakter khusus.mysql -uroot -e"FLUSH PRIVILEGES;" -e"ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';"Jika Anda menerima error
Your password does not satisfy the current policy requirements, berarti kata sandi Anda tidak sesuai. Anda harus menghentikan proses MySQL, menjalankannya kembali dalam mode bypass izin, lalu menjalankan ulang perintah tersebut dengan kata sandi yang sesuai. -
Hentikan proses MySQL.
kill <process ID> Untuk menjalankan layanan MySQL, gunakan perintah berikut.
Alibaba Cloud Linux dan CentOS
sudo systemctl start mysqldUbuntu dan Debian
sudo systemctl start mysql-
Masuk dengan kata sandi baru. Jika Anda dapat mengakses command line MySQL, berarti pengaturan ulang kata sandi berhasil.
mysql -u root -p
Mengubah direktori data MySQL
Untuk menghentikan layanan MySQL, jalankan perintah berikut.
Alibaba Cloud Linux dan CentOS
sudo systemctl stop mysqldUbuntu dan Debian
sudo systemctl stop mysqlPada file konfigurasi
my.cnf(biasanya terletak di/etc/my.cnf), ubah nilaidatadirke path direktori data baru.datadir=/new/data/directorySalin seluruh file dan direktori dari direktori data asli ke direktori data baru.
sudo cp -aR /old/data/directory/* /new/data/directory/Untuk menjalankan layanan MySQL, gunakan perintah berikut.
Alibaba Cloud Linux dan CentOS
sudo systemctl start mysqldUbuntu dan Debian
sudo systemctl start mysql
Error startup MySQL: Permission denied
Periksa file
error.logMySQL untuk menemukan pesan error spesifik.CatatanLokasi default file ini biasanya
/var/log/mysqld.logatau/var/log/mysql/error.log.[ERROR] [MY-010092] [Server] Can't start server: can't create PID file: Permission deniedTemukan dan hentikan semua proses
mysqldyang masih berjalan.sudo ps aux | grep mysqld sudo kill -9 <process ID>Untuk menjalankan layanan MySQL, gunakan perintah berikut.
Alibaba Cloud Linux dan CentOS
sudo systemctl start mysqldUbuntu dan Debian
sudo systemctl start mysql
Error startup MySQL: File './binlog.index' not found
Periksa file
error.logMySQL untuk menemukan pesan error spesifik.CatatanLokasi default file ini biasanya
/var/log/mysqld.logatau/var/log/mysql/error.log.mysqld: File './binlog.index' not found (OS errno 13 - Permission denied)-
Error ini sering disebabkan oleh kepemilikan file yang salah di direktori data MySQL. Jalankan perintah berikut untuk memeriksa kepemilikannya.
CatatanDirektori data default biasanya
/var/lib/mysql. Jika Anda menggunakan direktori data kustom, sesuaikan perintah tersebut.sudo ls -l /var/lib/mysql-rw-r----- 1 root root 56 Mar 19 15:51 auto.cnf -rw-r----- 1 root root 1551 Mar 19 15:51 binlog.000001 -rw-r----- 1 root root 16 Mar 19 15:51 binlog.index -rw------- 1 root root 1680 Mar 19 15:51 ca-key.pem -rw-r--r-- 1 root root 1108 Mar 19 15:51 ca.pem -rw-r--r-- 1 root root 1108 Mar 19 15:51 client-cert.pem -
Jalankan perintah berikut untuk memberikan kepemilikan yang benar kepada pengguna dan kelompok
mysql.sudo chown -R mysql:mysql <data_directory> Untuk menjalankan layanan MySQL, jalankan perintah berikut.
Alibaba Cloud Linux dan CentOS
sudo systemctl start mysqldUbuntu dan Debian
sudo systemctl start mysql