为了演示,找个测试环境来操作,千万不要线上这么搞
pkill mysqld 关闭掉mysql
跳过MySQL的权限表启动MySQL服务:
--skip-grant-tables启动mysql
/usr/local/mysql8013/bin/mysqld_safe --defaults-file=/data/mysql8/my8.cnf --skip-grant-tables &
将密码置空:
[email protected] [(none)]>update mysql.user set authentication_string=‘‘ where user="root" and host="localhost";
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0
[email protected] [(none)]>
pkill mysqld 关闭掉mysql
再次启动mysql服务
[[email protected] ~]# /usr/local/mysql8013/bin/mysqld --defaults-file=/data/mysql8/my8.cnf &
无密码登录MySQL服务并设置新的密码:
[email protected] [(none)]>select version();
+-----------+
| version() |
+-----------+
| 8.0.13 |
+-----------+
[email protected] [(none)]>alter user user() identified by [email protected];
[[email protected] ~]# mysql -uroot [email protected] -e "select version();"
mysql: [Warning] Using a password on the command line interface can be insecure.
+-----------+
| version() |
+-----------+
| 8.0.13 |
+-----------+
密码写入.my.cnf文件就可以mysql直接登录mysql窗口:
[[email protected] ~]# cat .my.cnf
[mysql]
prompt="\u@\h:\p \R:\m:\s[\d]>"
no-auto-rehash
user=root
[email protected]
[[email protected] ~]# mysql -e "select version();"
+-----------+
| version() |
+-----------+
| 8.0.13 |
+-----------+
演示完毕
原文:https://blog.51cto.com/wujianwei/2470019