您好,登录后才能下订单哦!
不知道大家之前对类似如何更改mysql数据库的密码的文章有无了解,今天我在这里给大家再简单的讲讲。感兴趣的话就一起来看看正文部分吧,相信看完如何更改mysql数据库的密码你一定会有所收获的。
环境介绍:
操作系统:Red Hat linux6
数据库版本:Mysql5.7
注:MySQL5.7在初始安装后,会生成随机初始密码,并在/var/log/mysqld.log中有记录,可以通过head命令查看,找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之前的版本不是authentication_string,而是Password,所以把authentication_string改为password即可设置密码。 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: 使用mysqladmin
mysqladmin -u root -p password "newpass2" /*这时候回车提示输入的密码是旧密码*/
mysqladmin -u root -pnewpass password "newpass2" /*如果记得旧密码,用这种方式*/
当你使用navicat mysql工具连接mysql服务时报err1130错误,原因及解决方法如下:
1.检查下防火墙是否关闭 service iptables stop
2.改表法:检查是否是因为账号不支持远程,只能localhost。
登录本地数据库,进入mysql用户use mysql;
将user数据表里面的对应用户的host列中的localhost改为%即可。
SQL:
mysql> select host,user from user order by host desc,user desc; ---检查用户的host<br/>mysql>update user set host='%' where user='root'; --- 把localhost改为%
在MySQL中’%’表示可以在任何主机上登录MySQL数据库,那为什么还需要明确创建登录主机为localhost的用户呢?
这涉及到MySQL安装时的初始化用户,匿名用户以及连接验证策略等,下面进行深入的分析。
转载出处:
1.深入分析MySQL ERROR 1045 (28000)
看完如何更改mysql数据库的密码这篇文章,大家觉得怎么样?如果想要了解更多相关,可以继续关注我们的行业资讯板块。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。