前言
MySQL 版本:v8.0.27
准备工作:
MySQL 环境变量配置无误,可直接在命令行运行 mysql、mysqld 等服务
解法一:进入 MySQL 安全模式,无密码登录
第一步:停止 mysql 服务
第二步:以管理员权限运行命令行 mysqld --console --skip-grant-tables --shared-memory
注意:mysqld –skip-grant-tables
实测在 MySQL 8.0 中已失效。
第三步:重新打开一个管理员权限的命令行窗口,输入 mysql
第四步:修改 root 用户密码和用户权限
当执行语句出现错误:
- ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
- 执行
flush privileges;
刷新权限即可 - 新建用户: create user '{username}'@'localhost' identified by '‘{password}'; flush privileges;
- 修改密码: Alter user '{username}'@'localhost' identified by '{new_password}'; flush privileges;
- 授权: grant all privileges on *.* to '{username}'@'localhost' with grant option;
解法二:初始化 MySQL
第一步:停止 mysql 服务
第二步:转移 MySQL 数据存储目录
将配置文件 my.ini
中的 datadir
属性修改为目标路径(可以将原 /data 文件夹下的内容复制转移),或直接将 /data 删掉。
以管理员权限打开命令行,输入 mysqld --initialize --user=mysql --console
,会生成初始化密码:
第三步:启动 mysql 服务
第四步:通过初始密码进入 MySQL 并修改用户密码
Tips
查看 service 服务项目配置所在位置
右键点击服务项,打开属性;配置文件在可执行文件路径中。
指定端口号登陆 MySQL
# 大写 -P 为端口号参数
$ mysql -u root -P 3307 -h localhost -p
查看和修改 MySQL 端口号
查看端口号
登入数据库后,在 mysql> 后面输入 show global variables like 'port';
或直接输入 \s
。
修改端口号:
- 停止 mysql 服务;
- 修改
my.ini
文件,记事本打开,找到 [mysqld] 下面的 port,修改后保存;
# The TCP/IP Port the MySQL Server will listen on
port=3306
启动 mysql 服务;
到此这篇关于MySQL 账号密码错误终极解决方法的文章就介绍到这了,更多相关MySQL密码错误解法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!