MySQL修改账户的密码方法
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,MySQL提供了多种修改账户密码的方式:1、可以用mysqladmin命令在命令行指定密码 shell> mysqladmin -u user_name -h host_name password "
千家信息网最后更新 2026年11月03日MySQL修改账户的密码方法MySQL提供了多种修改账户密码的方式:
1、可以用mysqladmin命令在命令行指定密码
shell> mysqladmin -u user_name -h host_name password "newpwd" 该命令重设密码的账户为user表内匹配User列的user_name和Host列你发起连接的客户端的记录。
比如把密码改为:root123 [root@mysql1 ~]# mysqladmin -u root password "root123" -p Enter password: --这里需要输入原来的老密码
2、为账户赋予密码的另一种方法是执行SET PASSWORD语句
mysql> SET PASSWORD FOR 'jeffrey'@'%' = PASSWORD('biscuit');
只有root等可以更新mysql数据库的用户可以更改其它用户的密码。 如果你没有以匿名用户连接,省略FOR子句便可以更改自己的密码:
mysql> set password = password('mysql'); Query OK, 0 rows affected (0.01 sec)
mysql> exit Bye [root@mysql1 ~]# mysql -uroot -p Enter password: --此时输入老密码会出现如下提示 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) [root@mysql1 ~]# mysql -uroot -p Enter password: --此时输入新密码连接成功 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11 Server version: 5.6.30 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
3、可以在全局级别使用GRANT USAGE语句(在*.*)来指定某个账户的密码而不影响账户当前的权限
mysql> GRANT USAGE ON *.* TO 'jeffrey'@'%' IDENTIFIED BY 'biscuit';
一般情况下最好使用上述3种方法来指定密码,你还可以直接修改user表:
要想在创建新账户时建立密码,在Password列提供一个值:
shell> mysql -u root mysql mysql> INSERT INTO user (Host,User,Password) -> VALUES('%','jeffrey',PASSWORD('biscuit')); mysql> FLUSH PRIVILEGES;
要想更改已有账户的密码,使用UPDATE来设置Password列值:
shell> mysql -u root mysql mysql> UPDATE user SET Password = PASSWORD('bagel') -> WHERE Host = '%' AND User = 'francis'; mysql> FLUSH PRIVILEGES; 当你使用SET PASSWORD、INSERT或UPDATE指定账户的密码时,必须用PASSWORD()函数对它进行加密。(唯一的特例是如果密码为空,你不需要使用PASSWORD())。 需要使用PASSWORD()是因为user表以加密方式保存密码,而不是明文。如果你忘记了,你可能会象这样设置密码:
shell> mysql -u root mysql mysql> INSERT INTO user (Host,User,Password) -> VALUES('%','jeffrey','biscuit'); mysql> FLUSH PRIVILEGES;
结果是密码'biscuit'保存到user表后没有加密。当jeffrey使用该密码连接服务器时,值被加密并同保存在user表中的进行比较。但是,保存的值为字符串'biscuit',因此比较将失败,服务器拒绝连接:
shell> mysql -u jeffrey -pbiscuit test Access denied 如果你使用GRANT ... IDENTIFIED BY语句或mysqladmin password命令设置密码,它们均会加密密码。在这种情况下,不需要使用 PASSWORD()函数。
1、可以用mysqladmin命令在命令行指定密码
shell> mysqladmin -u user_name -h host_name password "newpwd" 该命令重设密码的账户为user表内匹配User列的user_name和Host列你发起连接的客户端的记录。
比如把密码改为:root123 [root@mysql1 ~]# mysqladmin -u root password "root123" -p Enter password: --这里需要输入原来的老密码
2、为账户赋予密码的另一种方法是执行SET PASSWORD语句
mysql> SET PASSWORD FOR 'jeffrey'@'%' = PASSWORD('biscuit');
只有root等可以更新mysql数据库的用户可以更改其它用户的密码。 如果你没有以匿名用户连接,省略FOR子句便可以更改自己的密码:
mysql> set password = password('mysql'); Query OK, 0 rows affected (0.01 sec)
mysql> exit Bye [root@mysql1 ~]# mysql -uroot -p Enter password: --此时输入老密码会出现如下提示 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) [root@mysql1 ~]# mysql -uroot -p Enter password: --此时输入新密码连接成功 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 11 Server version: 5.6.30 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
3、可以在全局级别使用GRANT USAGE语句(在*.*)来指定某个账户的密码而不影响账户当前的权限
mysql> GRANT USAGE ON *.* TO 'jeffrey'@'%' IDENTIFIED BY 'biscuit';
一般情况下最好使用上述3种方法来指定密码,你还可以直接修改user表:
要想在创建新账户时建立密码,在Password列提供一个值:
shell> mysql -u root mysql mysql> INSERT INTO user (Host,User,Password) -> VALUES('%','jeffrey',PASSWORD('biscuit')); mysql> FLUSH PRIVILEGES;
要想更改已有账户的密码,使用UPDATE来设置Password列值:
shell> mysql -u root mysql mysql> UPDATE user SET Password = PASSWORD('bagel') -> WHERE Host = '%' AND User = 'francis'; mysql> FLUSH PRIVILEGES; 当你使用SET PASSWORD、INSERT或UPDATE指定账户的密码时,必须用PASSWORD()函数对它进行加密。(唯一的特例是如果密码为空,你不需要使用PASSWORD())。 需要使用PASSWORD()是因为user表以加密方式保存密码,而不是明文。如果你忘记了,你可能会象这样设置密码:
shell> mysql -u root mysql mysql> INSERT INTO user (Host,User,Password) -> VALUES('%','jeffrey','biscuit'); mysql> FLUSH PRIVILEGES;
结果是密码'biscuit'保存到user表后没有加密。当jeffrey使用该密码连接服务器时,值被加密并同保存在user表中的进行比较。但是,保存的值为字符串'biscuit',因此比较将失败,服务器拒绝连接:
shell> mysql -u jeffrey -pbiscuit test Access denied 如果你使用GRANT ... IDENTIFIED BY语句或mysqladmin password命令设置密码,它们均会加密密码。在这种情况下,不需要使用 PASSWORD()函数。
密码
账户
加密
命令
用户
语句
输入
方法
函数
情况
方式
服务器
服务
成功
全局
只有
多种
子句
字符
字符串
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网通讯科技
互联网科技与金融科技
碳银互联网科技
碳银互联网科技有限公司
融贸通互联网科技
上海卓越科技 互联网
卫星互联网科技股票
互联网科技寓意
互联网经济与金融科技
彤创互联网科技有限公司
中国科技创新与世界互联网大会
佛山市翊博互联网络科技有限公司
明优互联网科技有限公司
2021互联网科技公司排名
互联网金融科技公司的优势
广州千川互联网科技有限公司
四川互联网展示科技馆设计
西安左小互联网科技有限公司
陕西彩京云互联网科技有限公司
广东猫王互联网科技有限公司电话
上海喔噻互联网科技有限公司
科技互联网龙头
玖二柒互联网科技公司待遇
互联网科技创新服务
苏州五指互联网络科技有限
高科技互联网发展前景如何
徐州市互联网科技有限公司
普陀区互联网教育科技管理办法
中国新注册互联网科技
杭州科技互联网公司有哪些