mysql5.7开启genelog并且创建新用户,找回root账户密码
①进入mysql命令行
set global general_log_file="/tmp/general.log"; #设置genelog位置文件
set global general_log=on; #开启
测试;
sudo tail -f /tmp/general.log 查看执行过的sql语句
②新建用户
set global validate_password_policy=0; #设置级别
set global validate_password_length=0; #设置长度
create user '用户名'@'%' identified by '密码'; #创建用户
这个时候外部通过这个用户可连接mysql数据库,但是没有权限
grant all privileges on *.* to 'pzl'@'%' identified by 'pzl123456' with grant option; #赋予权限
flush privileges; #更新权限
这时候链接数据库就能和root看到全部数据库了
回收权限 revoke all privileges on *.* from pzl;
flush privileges; #更新权限
③找回密码
sudo vim /etc/my.cnf #打开mysql配置文件加一句话
skip-grant-tables
sudo service mysqld restart #重启mysql服务
此时进入mysql 不需要输入密码
update user set authentication_string = password('密码') where user = 'root'; #修改密码
flush privileges;
然后重启mysql服务
密码修改成功