0

0

MySQL 密码设置

php中文网

php中文网

发布时间:2016-06-07 18:00:44

|

1962人浏览过

|

来源于php中文网

原创

本文介绍了如何修改一个用户的密码,你可以使用三种方法,GRANT语句、SET PASSWORD语句、直接修改授权表以及使用管理工具mysqladmin。

一个重要的应用就是如何在遗忘root用户密码的时候修改密码,使用的方法是启动MySQL服务器时忽略加载授权表。
由MySQL使用用户名和口令的方法与Unix或Windows使用的方式有很多不同之处:
  ·MySQL 使用于认证目的的用户名,与Unix用户名(登录名字)或Windows用户名无关。缺省地,大多数MySQL客户尝试使用当前 Unix用户名作为MySQL用户名登录,但是这仅仅为了方便。客户程序允许用-u或--user选项指定一个不同的名字,这意味着无论如何你不能使得一个数据库更安全,除非所有的MySQL用户名都有口令。任何人可以试图用任何名字连接服务器,而且如果他们指定了没有口令的任何名字,他们将成功。
  ·MySQL用户名最长可以是16各字符;典型地,Unix用户名限制为8个字符。
  ·MySQL口令与Unix口令没关系。在你使用登录到一台Unix机器口令和你使用在那台机器上存取一个数据库的口令之间没有必要有关联。
  ·MySQL加密口令使用了一个Unix登录期间所用的不同算法。
  本节将介绍如何为MySQL数据库系统的用户修改密码。
  使用myadmin实用程序
  使用mysqladmin实用程序修改密码的命令行是:
  shell>mysqladmin -u user -p password "newpassword"
  运行这个命令,在提示输入密码时,数据就密码,则用户user的密码就被改为newpassword
  。如果,原来的用户没有密码,则不比指定-p选项。例如,初始化授权表之后,root用户的密码就是空的,你可以这样为root用户设立密码:
  shell>mysqladmin -u root password "newpassword"
  使用语句SET PASSWORD
  使用mysqladmin为用户修改密码有一个明显的缺点,就是必须知道用户原来的密码,如果是为了给遗忘了密码的用户重设密码就无能为力了。一个专门用于修改密码的SQL语句为SET PASSWORD:
  ·SET PASSWORD = PASSWORD('some password')
  设置当前用户的口令。任何非匿名的用户能改变他自己的口令!
  连接到服务器后,你可以这样改变自己的密码:
代码如下:
  mysql> SET PASSWORD = PASSWORD('another pass');
  ·SET PASSWORD FOR user = PASSWORD('some password')

  设置当前服务器主机上的一个特定用户的口令。只有具备存取mysql数据库的用户可以这样做。用户应该以user@hostname格式给出,这里 user和hostname完全与他们列在mysql.user表条目的User和Host列一样。例如,如果你有一个条目其User和Host字段是 'bob'和'%.loc.gov',你将写成:
  mysql> SET PASSWORD FOR bob@"%.loc.gov" = PASSWORD("newpass");
  直接修改授权表
  另一种修改,密码的方法是直接修改授权表user。只有具备存取mysql数据库的用户可以这样做。
  例如,如果你有一个条目其User和Host字段是'bob'和'%.loc.gov',你将写成:
  mysql> UPDATE mysql.user SET password=PASSWORD("newpass") where user="bob' AND host="%.loc.gov";
  mysql>FLUSH PRIVILEGES;
  重新设置一个遗忘的root口令
  如果你遗忘了root用户的口令,那么将会是一件非常麻烦的事。除非你有其它有特权的用户,否则很多操作都无法完成,例如,关闭数据库等等。
  你应当选用--without-grant-tables选项启动mysqld服务,你可以在这时更改授权表的相关内容,也可以用mysqlaccess检查你的授权是否到位。
  例如,如果你忘记了你的MYSQL的root口令的话,你可以通过下面的过程恢复。
  1、关闭MySQL服务器
  向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。
  kill `cat /mysql-data-directory/hostname.pid`
  你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。
  如果在windows平台上,也可以停止进程。如果是NT还可以用net stop mysql命令关闭数据库。
  2、使用'--skip-grant-tables' 参数来启动 mysqld。
  Unix平台:
  $su mysql
  $safe_mysqld --skip-grant-tables &
  Windows平台:
  C:\mysql\bin>mysqld --skip-grant-tables
  以上语句,假定都位于正确的目录。
  3、连接到服务器,修改口令
  使用'mysql -h hostname mysql'命令登录到mysqld server ,用grant命令改变口令:
  mysql>GRANT ALL ON *.* TO root@localhost INDENTIFIED BY 'new password'
  -> WITH GRANT OPTION;
  mysql>GRANT ALL ON *.* TO root@% INDENTIFIED BY 'new password'
  -> WITH GRANT OPTION;
  (如果存在一个能从任意地址登录的root用户,初始化授权表后,生成该用户,为了安全,你可能已经删除该用户)。
  其实也可以直接修改授权表:
  mysql> use mysql;
  mysql> update user set password =password('yourpass') where user='root';
  你可能使用工具mysqladmin修改密码:
  shell> mysqladmin -h hostname -u root password 'new password
  但是它修改的密码语服务器匹配的用户有关。如果,你从服务器主机连接,那么服务器匹配的是root@localhost,修改该用户密码,否则一般修改root@%密码,除非你有其它root用户存在。
  4. 载入权限表:
  shell> mysqladmin -h hostname flush-privileges
  或者使用 SQL 命令`FLUSH PRIVILEGES'。
  当然,在这里,你也可以重启mysqld。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

c++ 字符串格式化
c++ 字符串格式化

本专题整合了c++字符串格式化用法、输出技巧、实践等等内容,阅读专题下面的文章了解更多详细内容。

9

2026.01.30

java 字符串格式化
java 字符串格式化

本专题整合了java如何进行字符串格式化相关教程、使用解析、方法详解等等内容。阅读专题下面的文章了解更多详细教程。

12

2026.01.30

python 字符串格式化
python 字符串格式化

本专题整合了python字符串格式化教程、实践、方法、进阶等等相关内容,阅读专题下面的文章了解更多详细操作。

4

2026.01.30

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

20

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

18

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

19

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

3

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 2万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 816人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号