共计 2782 个字符,预计需要花费 7 分钟才能阅读完成。
这篇文章主要讲解了“MySQL 的密码怎么修改”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“MySQL 的密码怎么修改”吧!
摘要:本文介绍了如何修改一个用户的密码,你可以使用三种方法,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 完全与他们列在 mysql.user 表条目的 User 和 Host 列一样。例如,如果你有一个条目其 User 和 Host 字段是 bob 和 %.loc.gov,你将写成:
mysql SET PASSWORD FOR = 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 上的同等用户,才能执行这个操作。
如果在平台上,也可以停止进程。如果是 NT 还可以用 net stop mysql 命令关闭。
2、使用 –skip-grant-tables 参数来启动 d。
Unix 平台:
$su mysql
$safe_mysqld –skip-grant-tables
Windows 平台:
C:mysqlin mysqld –skip-grant-tables
以上语句,假定都位于正确的目录。
3、连接到服务器,修改口令
使用 mysql -h hostname mysql 命令登录到 mysqld server,用 grant 命令改变口令:
mysql GRANT ALL ON *.* TO INDENTIFIED BY new password
– WITH GRANT OPTION;
mysql GRANT ALL ON *.* TO 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 用户存在。
4. 载入权限表:
shell mysqladmin -h hostname flush-privileges
或者使用 SQL 命令 `FLUSH PRIVILEGES。
当然,在这里,你也可以重启 mysqld。
感谢各位的阅读,以上就是“MySQL 的密码怎么修改”的内容了,经过本文的学习后,相信大家对 MySQL 的密码怎么修改这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!