MySQL修改密码方法总结
### MySQL修改密码方法总结 在日常的数据库管理与维护工作中,经常会遇到需要修改MySQL用户密码的情况。为了确保数据库的安全性和可访问性,掌握多种修改密码的方法是非常必要的。本文将详细介绍几种常用的MySQL密码修改方法,包括使用`mysqladmin`工具、通过SQL命令(如`UPDATE`、`SET PASSWORD`和`GRANT`语句)等不同方式来实现密码更新的目的。 #### 使用`mysqladmin`工具修改密码 `mysqladmin`是MySQL提供的一款非常实用的命令行工具,可以用来执行各种管理任务,例如创建和删除数据库、创建和删除用户账户以及修改用户的密码等。如果你拥有足够的权限(通常是root用户),可以使用以下命令来修改用户的密码: ```sql mysqladmin -u root -p password mypasswd ``` 这里,`-u root`指定了登录MySQL时使用的用户名,`-p`后面跟的是原密码(如果当前用户已有密码的话),而`password`后面则是新密码。例如: ```sql mysqladmin -u root -p password mypasswd ``` 假设你需要将root用户的密码修改为`mypassword`,则命令应写为: ```sql mysqladmin -u root -p password mypassword ``` 需要注意的是,在执行该命令前,请确保已经知道当前root用户的密码,否则无法完成密码更改操作。 #### 使用SQL命令修改密码 除了使用`mysqladmin`外,还可以通过直接在MySQL命令行客户端执行SQL命令的方式来更改密码。 ##### 1. 更新`mysql.user`表 可以直接对MySQL自身的`mysql.user`表进行更新操作来更改密码: ```sql UPDATE mysql.user SET Password = PASSWORD('new_password') WHERE User = 'username' AND Host = 'localhost'; ``` 例如,如果要将用户名为`root`且主机名为`localhost`的用户密码修改为`new_password`,则可以执行: ```sql UPDATE mysql.user SET Password = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost'; ``` 更新后还需要执行`FLUSH PRIVILEGES`命令以使更改生效: ```sql FLUSH PRIVILEGES; ``` ##### 2. 使用`REPLACE INTO`语句 `REPLACE INTO`语句与`UPDATE`类似,但其主要作用是在插入新记录时若主键或唯一索引冲突,则先删除旧记录再插入新记录: ```sql REPLACE INTO mysql.user (Host, User, Password) VALUES ('localhost', 'root', PASSWORD('new_password')); ``` 同样,别忘了执行`FLUSH PRIVILEGES`: ```sql FLUSH PRIVILEGES; ``` ##### 3. 使用`SET PASSWORD`语句 `SET PASSWORD`是一种更为直观的修改密码的方式: ```sql SET PASSWORD FOR 'username'@'host' = PASSWORD('new_password'); ``` 例如,要为`root`用户设置新密码`new_password`,可以写成: ```sql SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password'); ``` 使用`SET PASSWORD`时无需手动执行`FLUSH PRIVILEGES`,系统会自动刷新权限。 ##### 4. 使用`GRANT`语句 除了以上方法之外,还可以利用`GRANT`语句结合`IDENTIFIED BY`子句来更新密码: ```sql GRANT ALL PRIVILEGES ON *.* TO 'username'@'host' IDENTIFIED BY 'new_password'; ``` 例如,将`root`用户的密码设置为`new_password`: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'new_password'; ``` 需要注意的是,这种方式不仅设置了密码,还重新授予了全部权限。 ### 总结 我们可以看到有多种方法可以用来修改MySQL用户的密码。每种方法都有其适用场景和特点,例如使用`mysqladmin`适用于命令行环境下的快速修改;而通过SQL命令则更加灵活,尤其是在需要批量修改或者自动化运维的情况下。无论选择哪种方法,都应该注意安全问题,确保只授权给可信的用户,并定期更换密码以提高安全性。



















所以一般用户无法更改密码,除非请求管理员。
方法一
使用phpmyadmin,这是最简单的了,修改mysql库的user表,
不过别忘了使用PASSWORD函数。
方法二
使用mysqladmin,这是前面声明的一个特例。
mysqladmin -u root -p password mypasswd
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
把命令里的root改为你的用户名,你就可以改你自己的密码了。
当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,
那么这种方法就是无效的。
而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:
方法三
mysql> INSERT INTO mysql.user (Host,User,Password)
VALUES(\'%\',\'jeffrey\',PASSWORD(\'biscuit\'));
mysql> FLUSH PRIVILEGES
确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。
在《mysql中文参考手册》里有这个例子,所以我也就写出来了。
注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。
方法四
和方法三一样,只是使用了REPLACE语句
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES(\'%\',\'jeffrey\',PASSWORD(\'biscuit\'));
mysql> FLUSH PRIVILEGES


- 粉丝: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 项目管理的个人工作总结.doc
- 网络环境的专题教学设计市公开课一等奖百校联赛特等奖课件.pptx
- 物联网业务及技术培训PPT课件.ppt
- 物联网应用技术专业现代学徒制教学改革研究.docx
- 其他网络营销方法.pptx
- 浅析企业财务软件的帐务处理【会计实务操作教程】.pptx
- 软考项目管理师详解大全之过程记忆口诀详解.doc
- 大型网吧网络系统设计方案解析.doc
- 软件工程基础知识论述.pptx
- 京宁热电公司信息化发展战略的制定与实施.doc
- 项目十三 使用Excel制作成绩分析表.pptx
- 新产品研发流程管理-研发项目管理与研发绩效管理.doc
- 软件工程-图书管理系统.doc
- 生物制药工艺学基因工程制药1.ppt
- 嵌入式系统的定义及特点.doc
- 最新网络安全技术解读PPT.pptx


