Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk menyelesaikan masalah terlupa kata laluan mysql di Linux

Bagaimana untuk menyelesaikan masalah terlupa kata laluan mysql di Linux

WBOY
WBOYasal
2022-01-18 15:40:3721856semak imbas

Penyelesaian: 1. Gunakan arahan "service mysql stop" untuk mematikan perkhidmatan mysql; 2. Ubah suai fail konfigurasi mysql "my.conf" 3. Gunakan arahan "service mysqld start" untuk memulakan semula pangkalan data; 4. Gunakan Pernyataan "use mysql" menukar kata laluan.

Bagaimana untuk menyelesaikan masalah terlupa kata laluan mysql di Linux

Persekitaran pengendalian tutorial ini: sistem linux7.3, versi mysql8.0.22, komputer Dell G3.

Cara menyelesaikan masalah terlupa kata laluan mysql dalam linux

Penyelesaian:

1 perkhidmatan mysql dimulakan , jika dimulakan, tutup perkhidmatan mysql

//查看mysql服务状态
[root@mytestlnx02 ~]# ps -ef | grep -i mysql
root     22972     1  0 14:18 pts/0    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql    23166 22972  0 14:18 pts/0    00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root     23237 21825  0 14:22 pts/0    00:00:00 grep -i mysql
//关闭服务
[root@mytestlnx02 ~]# service mysql stop
[root@mytestlnx02 ~]#

2 Ubah suai fail konfigurasi mysql my.cnf

Lokasi bagi fail konfigurasi my.cnf, secara amnya Dalam /etc/my.cnf, beberapa versi ada dalam /etc/mysql/my.cnf

Dalam fail konfigurasi, tambah 2 baris kod

[mysqld]
skip-grant-tables

Bagaimana untuk menyelesaikan masalah terlupa kata laluan mysql di Linux

Fungsinya adalah untuk melangkau pengesahan kata laluan semasa log masuk ke mysql

Kemudian mulakan perkhidmatan mysql dan masukkan mysql

[root@mytestlnx02 ~]# service mysqld start
[root@mytestlnx02 ~]#
[root@mytestlnx02 ~]# mysql -u root 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

3. Tukar kata laluan

Sambung ke pangkalan data mysql dan tukar kata laluan pengguna

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> update mysql.user set authentication_string=password('root_password') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1
 
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
mysql> exit

4 >Ulasan pertama atau padamkan 2 baris kod yang sebelum ini ditambahkan pada fail konfigurasi dimatikan, dan kemudian mulakan semula perkhidmatan mysql, anda boleh log masuk menggunakan kata laluan yang baru anda tetapkan.

[root@mytestlnx02 ~]# service mysql start
[root@mytestlnx02 ~]#
[root@mytestlnx02 ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
beroperasi secara berbeza pada CentOS.

Melaksanakan arahan untuk menukar kata laluan terus melaporkan ralat

Ini bukan masalah sintaks saya menyemaknya berkali-kali dan akhirnya mendapatinya ia harus dilakukan seperti ini di bawah CentOS:

mysql> update user set authentication_string=password('xxxxxxxx') where User='root';       
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('root_password') where User='root'' at line 1

Lihat kata laluan awal

Anda boleh melihat bahawa kata laluan awal ialah DN34N/=?aIfZ

[root@VM_0_8_centos ~]# grep 'temporary password' /var/log/mysqld.log
2018-09-26T04:25:54.927944Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: DN34N/=?aIfZ

Gunakan kata laluan awal untuk log masuk

Tukar kata laluan
[root@VM_0_8_centos ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.12 MySQL Community Server - GPL
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Mulakan semula perkhidmatan dan ia akan mengambil masa kesan

mysql> ALTER USER 'root' IDENTIFIED BY 'xxxxxxxxx';  
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxxx';
Query OK, 0 rows affected (0.11 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye

Cadangan berkaitan: "

Tutorial video Linux
[root@VM_0_8_centos ~]# service mysqld stop 
Redirecting to /bin/systemctl stop  mysqld.service
[root@VM_0_8_centos ~]# service mysqld start
Redirecting to /bin/systemctl start  mysqld.service

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah terlupa kata laluan mysql di Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn