一.密码修改
1.mysql5.7.9版本之前的密码修改
mysql> USE mysql;
Database changed
mysql> UPDATE user SET authentication_string="密码" WHERE user="root";
Query OK, 1 row affected (0.39 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> FLUSH privileges; # 刷新保存
Query OK, 0 rows affected (0.13 sec)
2.mysql8.0.26修改方式
分析:因为从5.7.9版本之后取消password(“密码”)函数所以使用authentication_string=“密码” 会报错:
正确方式:
//依次输入命令
use mysql;//选择数据库
SELECT user, Host FROM user;
//查询用户以及相关的权限
ALTER USER 'root'@'localhost' IDENTIFIEED WITH mysql_native_password BY "密码";
//注:localhost,对应的是上面查询的用户的主机(Host),我这里已经修改过所以是%,没有修改过的是localhost;
SELECT user, authentication_string FROM user;
//查看是否已经修改
FLUSH privileges;
//刷新权限;
quit;
//退出
//然后冲重新登录验证
mysql -u root =p
二.MySql无法登录或者忘记密码进行重置
**分析:**如果无法登录或者忘记密码可以选择进行mysql安全模式无密码登录。
1.停止mysql服务
net stop mysql
//到安装目录bin目录下打开cmd命令窗口输入上面命令,如果环境变量已经配置好了,可以不需要到目录下打开cmd,直接win+R在运行里面输入cmd打开命令窗口
2.以管理员权限运行命令行mysqld --console --skip-grant-tables --shared-memory
//win+R在运行里面输入cmd打开命令窗口执行下面的命令
mysqld --console --skip-grant-tables --shared-memory
//启动 MySQL 服务的时候跳过权限表认证
注:该命令窗口不是静止的,切记不要关闭。
3.进行无密码登录清空密码
//在mysql安装目录下的bin目录下打开cmd 执行下面命令进行无密码登录
mysql -u root
use mysql;//选择数据库
update user set authentication_string='' where user='root';
//先将密码清空,刷新保存
FLUSH privileges;
4.关闭mysqld 任务,重新登录
//关闭mysqld --console --skip-grant-tables --shared-memory执行的任务Ctrl+c或者直接关闭cmd命令窗口
//在mysql安装目录下的bin目录下打开cmd 执行下面命令进行登录
net start mysql//启动数据库
mysql -u root -p
//输入密码(因为密码为空所以直接回车就好)
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "密码";
//修改密码
//注:localhost,对应的是上面查询的用户的主机(Host),我这里已经修改过所以是%,没有修改过的是localhost;
FLUSH privileges;
**
三.初始化MySql
**
1.停止mysql
net stop mysql
//到安装目录bin目录下打开cmd命令窗口输入上面命令,如果环境变量已经配置好了,可以不需要到目录下打开cmd,直接win+R在运行里面输入cmd打开命令窗口
2.转移mysql数据存储目录
将配置文件my.ini中的datadir属性修改为目标路径(可以将原 /data 文件夹下的内容复制转移),或直接将 /data 删掉。
以管理员权限打开cmd命令行,输入mysqld --initialize --user=mysql --console
,会生成初始化密码:
,记住原始密码
3.启动mysql
net start mysql
通过初始密码进入 MySQL 并修改用户密码
//打开cmd 到安装目录bin目录下
mysql -u root -p
//原始密码登录
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY "密码";
//修改密码登录,刷新
FLUSH privileges;
quit;//退出,使用修改的密码重新登录