使用cmd命令行登录 MySQL 时出现一个报错
报错显示该用户被拒绝访问数据库
尝试重启服务,结果并不能解决问题
【资料图】
排查时发现是登录密码输错了……
网上查到的找回密码的方法是先关闭服务,然后命令行输入”mysqld --console --skip-grant-tables --shared-memory“命令来跳过登录验证,从而无需输入密码直接进入数据库,然后就可以修改密码了。
然而实际操作时又遇到报错:
报错信息显示,无法创建测试文件 ”C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test“,以及找不到 ”data“ 文件夹,该错误只在 8.0 版本以上才会出现
直接在该路径下创建 data 文件夹是无法解决问题的,经过多次尝试后找到如下方法:
使用 cd 命令进入到 MySQL 服务端的 bin 目录
输入 ”mysqld --initialize“ 初始化服务端程序
输入 ”mysqld install“ 安装服务端程序
输入 ”net start mysql“ 启动 MySQL 服务
此时文件夹下已经成功生成了 data 文件夹以及里面的一些配置文件,在 data 文件夹中找到一个后缀名为 ”.err“ 的文件,用记事本打开,”root@localhost:“后面的就是登录密码
打开 cmd(不用进入管理员模式),用该密码登入 MySQL,密码只能手打不能复制粘贴,区分大小写
登入成功后,输入以下两条 sql 语句来重置密码:
”alter user 'root'@'localhost' identified by '新密码';“ ——修改 ”root“ 用户的密码
”flush privileges;“——刷新数据库系统权限,每次修改密码后都要使用该命令,否则就得重启服务
退出用新密码重新登录,可以看到密码已经成功修改好