mysql数据库设置密码及忘记密码时的修改方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库设置密码及忘记密码时的修改方法相关的知识,希望对你有一定的参考价值。
环境介绍:
我用的测试环境是Red Hat linux6 版本安装mysql5.7的server。
之前有讲过mysql server安装过程并能用navicat工具连接上mysql server。下面要说的是如何给mysql设置账户密码登录。
在刚安装服务时,我在/etc/my.cnf 配置文件中添加了一条 skip-grant-tables 让它可以不进行密码验证就能登录到mysql server上。下面介绍的内容是mysql数据库设置密码及忘记密码时的修改方法。
注:MySQL5.7在初始安装后,会生成随机初始密码,并在/var/log/mysqld.log中有记录,可以通过cat命令查看,找password关键字即可找到随机初始密码。
设置密码方法如下:
方法1:用update直接编辑user表
mysql -u root /*进入mysql*/
mysql>use mysql /*进入mysql用户*/
mysql>update user set authentication_string=password(‘newpass‘),password_expired=‘N where user=‘root‘;
/本sql适用于mysql5.7之后的版本(包括5.7),5.7之前的版本适用于update user set Password = PASSWORD(‘newpass‘) WHERE user = ‘root‘;*/
mysql>FLUSH PRIVILEGES; /*告诉服务器重载授权表*/
退出mysql,编辑/etc/my.cnf文件,删除skip-grant-tables的内容,在重启服务使用账户密码登录即可。
方法2:mysqladmin命令(当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,这种方法就是无效的)mysqladmin -u root password "newpass" /*设置的密码为newpass*/<br/>如果要修改用户名密码
方法3:为账户赋予密码用 set password命令mysql> SET PASSWORD FOR ‘root‘@‘localhost‘ = PASSWORD(‘newpass‘);
方法4:如果你没有以匿名用户连接,省略FOR子句便可以更改自己的密码:mysql> SET PASSWORD = PASSWORD(‘newpass‘);
方法5:你还可以在全局级别使用GRANT USAGE语句(在.)来指定某个账户的密码而不影响账户当前的权限:mysql> GRANT USAGE ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘newpass‘;
补充:创建新账户时建立密码
mysql> INSERT INTO user (Host,User,Password) VALUES(‘%‘,‘oldboy‘,PASSWORD(‘newpass‘));
mysql> FLUSH PRIVILEGES;
当你使用SET PASSWORD、INSERT或UPDATE指定账户的密码时,必须用PASSWORD()函数对它进行加密。(唯一的特例是如果密码为空,你不需要使用PASSWORD())。需要使用PASSWORD()是因为user表以加密方式保存密码,而不是明文。
mysql> INSERT INTO user (Host,User,Password) VALUES(‘%‘,‘oldboy‘,‘newpass‘);
mysql> FLUSH PRIVILEGES;
结果是密码‘newpass‘保存到user表后没有加密。当oldboy使用该密码连接服务器时,值被加密并同保存在user表中的进行比较。但是,保存的值为字符串‘newpass‘,因此比较将失败,服务器拒绝连接:
Access denied
修改密码方法如下:
方法1: 如果忘记root密码,可以通过上面的设置密码第一种方法进行修改。
1.先修改配置文件/etc/my.cnf ,在[mysql]下面添加 skip-grant-tables 参数,重启服务。这时不用输入密码就能登录mysql
2.进入 mysql库,输入use mysql,用update 修改mysql的user表
3.FLUSH PRIVILEGES; /刷新权限/,然后退出mysql
4.将my.cnf配置文件中的 skip-grant-tables 参数注销或删除,在重启mysql服务即可
方法2: 使用mysqladminmysqladmin -u root -p password "newpass2" /*这时候回车提示输入的密码是旧密码*/
mysqladmin -u root -pnewpass password "newpass2" /*如果记得旧密码,用这种方式*/
以上是关于mysql数据库设置密码及忘记密码时的修改方法的主要内容,如果未能解决你的问题,请参考以下文章
WordPress忘记密码且邮箱无法发送找回密码链接时的解决办法
Mysql5.7忘记root密码及mysql5.7修改root密码的方法