背景
在搞一键式部署免安装版mysql时,出现了一些状况。网上搜了一些,说的乱七八糟的,没个靠谱点的…只有自己解决了
1、 登录不上,报错信息如下:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
2、自己创建了用户却创建不了数据库 报错信息忘了,提示的是权限问题
3、解决登录问题以后又出现这
You must reset your password using ALTER USER statement before executing this statement.
解决办法
每天很忙的,出什么状况,那就简单粗暴一点
1、第一次重启mysql, 先跳过密码登录,重新设置密码。
2、第二次重启mysql,把跳过密码登录注掉。给自己创建的用户把所有权限都给上,再改一次密码,设置密码永不过期
解决步骤
1 停止mysql服务
net stop 这块写mysql的服务名
2 跳过密码登录
在my.ini文件里加上这行文字
skip-grant-tables
3 启动mysql服务
net start 这块写mysql的服务名
4 登录mysql
.\mysql.exe -P3306 -u root -p
注: 管理员权限,进入到mysql安装目录下,再进入bin目录,执行命令。本机多个mysql时要指定端口号
如果已经配了mysql的环境变量,上面的注意事项忽略掉
5 修改密码
登录进mysql后,修改密码
update mysql.user set authentication_string=password('乱七八糟的密码') where user='root';
flush privileges;
6 重启mysql登录
? 把刚第二步my.ini文件加的那个skip-grant-tables 删掉或注掉。保存文件
? 再执行以下命令
net stop 这块写mysql的服务名;
net start 这块写mysql的服务名;
.\mysql.exe -P3306 -u root -p;
下面这些命令默认已经进入mysql了,然后执行的
alter user 'root'@'%' identified by '密码'; 这行是修改密码的,不修改可能会提示 You must reset your password.......
grant all on *.* to '自己的用户名'@'%'; 这行是给用户加所有权限的
alter user '自己的用户名'@'%' password expire never; 设置用户密码不会过期
flush privileges;
|