一、创建/修改MySQL密码
刚装好只能允许一个本地账户root@localhost访问
刚开始默认无密码
新增密码root,输入此命令后回车再回车即可
修改密码,输入此命令后回车,输入原密码后回车即可
mysqladmin -uroot -p password root
二、忘记MySQL密码
2.1 关闭数据库
/etc/init.d/mysqld stop systemctl stop mysqld
2.2 启动数据库到维护模式
mysqld_safe --skip-grant-tables --skip-networking &
--skip-grant-tables:跳过授权表,也就是启动时不用输入账号密码
--skip-networking:跳过远程登录
此方法只能本地修改
2.3 查询用户跟密码
注意,5.7存放密码字段为authentication_string
找到需要修改密码的用户
mysql> select user,host,authentication_string from mysql.user; +---------------+-----------+-------------------------------------------+ | user | host | authentication_string | +---------------+-----------+-------------------------------------------+ | root | localhost | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | +---------------+-----------+-------------------------------------------+ 3 rows in set (0.00 sec)
2.4 刷新授权表
因为使用了--skip-grant-tables参数,所以需要刷新授权表
flush privileges;
2.5 使用授权命令修改密码
grant all on *.* to root@'localhost' identified by 'toor';
等同于
alter user root@'localhost' identified by 'toor';