MySQL改密

一、未登录mysql:

 1、用初始默认密码

1
grep password /var/log/mysqld.log 

2、更改密码

1
2
mysqladmin -uroot -p'd-tlbwIgP3e2' password  "QianFeng@123"
                   默认密码/老密码                新密码

二、已登录数据库里:

方法一

1
set password  for  root@localhost = password('你要改的密码');

方法二

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mysql> select user,host,authentication_string from mysql.user;
+---------------+-----------+-------------------------------------------+
| user          | host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *1288B346EB8ABFFC6F6F1B79C437AF124FFE05C7 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+---------------+-----------+-------------------------------------------+
rows in set (0.00 sec)
 
mysql> update mysql.user set
    -> authentication_string=password('TianYun@52')
    -> where user='root' and host='localhost';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1
 
mysql> flush privileges;(刷新)
Query OK, 0 rows affected (0.00 sec)

方法三

1
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zjz@5740';

三、取消密码复杂度

vim  /etc/my.cnf   配置文件里设置
1
2
3
[mysqld]
plugin-load=validate_password.so
validate-password=OFF

或者在数据库内执行

1
set global validate_password.policy=0

作用将mysql检查密码强度降为最低,只检查密码的位数。如果你的密码强度很高,就没必要输入该条指令。

四、取消密码登录

 # vim /etc/my.cnf
1
2
[mysqld]
skip-grant-tables
注意:当skip-grant-tables和skip-network没有注销时,3306端口是不会打开的,虽然msyql running,导致navicat连接失败
#netstat -an | grep 3306

# service mysqld restart
# mysql -uroot
 然后敲MySQL登录改密
1
2
3
mysql> UPDATE mysql.user SET authentication_string=password('Zjz@5740')
    WHERE user='root' AND host='localhost';
(效果最强)<br><br>mysql> FLUSH PRIVILEGES;(刷新

五、数据库起不来

1
2
#chown -R  mysql.mysql   /var/lib/mysql  (赋权)
#systemctl   restart  mysqld

六、mysql8版本修改密码

1、修改/etc/my.cnf配置文件

1
2
vim /etc/my.cnf
添加skip-grant-tables配置

2、重启mysql服务

1
sudo systemctl restart mysqld

3、在mysql控制台依次输入

1
2
3
4
5
use mysql;
 
set global validate_password.policy=0;
 
alter user  'root'@'localhost' identified by  '12345678';

其中set global validate_password.policy=0作用将mysql检查密码强度降为最低,只检查密码的位数。如果你的密码强度很高,就没必要输入该条指令。

上面会报错

1
2
mysql> alter user 'root'@'localhost' identified by '12345678';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

解决:刷新一下,重新执行改密sql

1
2
3
4
5
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
 
sudo systemctl restart mysqld
mysql -uroot -p12345678

 


 

posted @   凡人半睁眼  阅读(177)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示