mysql5.7以降のバージョンはパスワードを忘れて取り戻します

1705 ワード

説明
システムはcentos 7、mysql 5.7.21
ステップ
mysqlのプロファイルを見つけて、どこにあるか分からない場合は、コマンドを入力します.
find / -name my.cnf

変更
vim /etc/my.cnf

あとに加わる
skip-grant-tables

exp例えば
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
#skip-grant-tables
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-grant-tables


再起動
systemctl restart mysqld 

再入力
mysql -uroot

あなたのパスワードを修正して、この時5.7バージョンはpasswordというフィールドがありませんでした
update mysql.user set authentication_string=password('    ') where user='root';

この時に脱退を済ませて、さっき追加したものを取り除きます.
skip-grant-tables

最後にmysqlを再起動
systemctl restart mysqld