mysql 5.7只能mysql root登录录吗

mysql5.7.11修改root默认密码_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
mysql5.7.11修改root默认密码
上传于|0|0|暂无简介
你可能喜欢MySQL 5.7版本开始,增强密码验证机制,网上说安装的时候会在/root/.mysql_secret& 文件中生成默认密码,这一点自 5.7.6版本以后也去掉了。
针对如果生成默认密码,网上有一个版本,内容如下:
1、修改配置文件,一般在&/f, 在[mysqld]字段下增加skip-grant-tables&字段,用以忽略权限验证;
2、重启MySQL服务器,CentOS 7.0操作命令是:
systemctl&restart&mysqld.service
3、使用mysql -u root -p 登录数据, 密码直接回车;
4、修改mysql数据库(名称),user表的authentication_string字段,修改命令如下: &
mysql&&update&mysql.user&set&authentication_string=password('new_password')&where&user='root'&and&Host&='localhost';
mysql&&flush&
5、修改配置文件,去掉skip-grant-tables,恢复成原来的样子, 然后重新MySQL服务器。
6、使用第4步设置的密码,登录mysql服务器。
7、通过&set password=password('new_password');&命令重新设置密码;
以上的方法,在MySQL 5.7早期版本时,还是很好用的,但在MySQL 5.7.6以后的版本,最后一点重置密码总是无法生效,会出来下面的错误。
ERROR&1819&(HY000):&Your&password&does&not&satisfy&the&current&policy&requirements
同时,无法进行其它的操作。
这是因为,自MySQL 5.7开始,密码存在有效期的概念, 同时因为安全等级的问题,需要使用使用其它的方式进行设置。另一个需要注意的点是, 自5.7.6开始废弃了password()函数,同时无法设置old_password=1, 这真的是一件比较曲折的探索过程。
那么,先把MySQL 5.7.9版本以上的密码设置方法整理一下。
大部分和上面整理的内容相同,关键在第4步后,把authentication_string 里写入的值记一下(这是因为password()函数已废弃)
通过使用以下命令,代替第7步的,&set password=password('new_password')&方法。
mysql&&ALTER&USER&'jeffrey'@'localhost'
&&&&-&&IDENTIFIED&WITH&mysql_native_password
&&&&-&&AS&'authentication_string字段内容';
Query&OK,&0&rows&affected&(0.01&sec)
其实上面的命令有一个简化版本,命令如下
mysql&&ALTER&USER&USER()&IDENTIFIED&BY&'news_password';
ERROR&1819&(HY000):&Your&password&does&not&satisfy&the&current&policy&requirements
之所以会出现上面的错误信息,这和密码的安全等级相关,查看安全等级命令如下
mysql&&SHOW&VARIABLES&LIKE&'validate_password%';
+--------------------------------------+--------+
|&Variable_name&&&&&&&&&&&&&&&&&&&&&&&&|&Value&&|
+--------------------------------------+--------+
|&validate_password_dictionary_file&&&&|&&&&&&&&|
|&validate_password_length&&&&&&&&&&&&&|&8&&&&&&|
|&validate_password_mixed_case_count&&&|&1&&&&&&|
|&validate_password_number_count&&&&&&&|&1&&&&&&|
|&validate_password_policy&&&&&&&&&&&&&|&MEDIUM&|
|&validate_password_special_char_count&|&1&&&&&&|
+--------------------------------------+--------+
通过 &SET GLOBAL &validate_password_policy='LOW';&&命令,降低安全等级后,就可以直接使用,限制是必须8个字符以上;
关于安全等级更详细的介绍如下
LOW&政策只测试密码长度。 密码必须至少有8个字符长。
MEDIUM&政策的条件 密码必须包含至少1数字字符,1 大写和小写字符,和1特别 (nonalphanumeric)字符。
STRONG&政策的情况 密码子字符串长度为4的或更长时间不能匹配 单词在字典文件中,如果一个人被指定。
最后,为了解决密码失效的问题, 最后在配置文件的[mysqld]字段下,增加以下字段
default_password_lifetime=0
也可以通过命令行进行设置
ALTER&USER&'script'@'localhost'&PASSWORD&EXPIRE&NEVER
关于密码有效期相关的更多信息,可以参考&
阅读(...) 评论()MySQL为root用户添加远程登录权限
1.编辑/f(Red&Hat&Linux/Fedora/Centos&Linux)或&/etc/f(Debian&Linux)。
2.将bind-address改成0.0.0.0。
3.进入mysql,执行:grant&all&on&*.*&to&'root'@'%'&identified&by&'YOUR_PASSWORD';
4.重启MySQL:
If&you&are&using&Debian&/&Ubuntu&Linux,&type&the&following&command&to&restart&the&mysql&server:
#&/etc/init.d/mysql&restart
If&you&are&using&RHEL&/&CentOS&/&Fedora&/&Scientific&Linux,&type&the&following&command&to&restart&the&mysql&server:
#&/etc/init.d/mysqld&restart
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。42232人阅读
linux(10)
版本更新 缘故,好多网上的教程都不适用了,甚至连官网的文档也不是能够顺利操作的。
如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。&
运行mysqld_safe --skip-grant-tables &&
如果此时不想被远程连接:mysqld_safe --skip-grant-tables&--skip-networking
使用mysql连接server
更改密码:update mysql.user
set authentication_string=password('123qwe') where user='root' and Host = 'localhost';
reboot试试看
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:169771次
积分:2005
积分:2005
排名:第16538名
原创:62篇
评论:22条
(1)(4)(1)(1)(1)(10)(2)(8)(4)(1)(1)(1)(6)(4)(5)(2)(3)(1)(1)(1)(4)(2)(4)MYSQL5.7忘记ROOT密码一直登陆不上的问题_mysql吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:35,786贴子:
MYSQL5.7忘记ROOT密码一直登陆不上的问题收藏
完全无法登陆配置文件已经按照网上各种说法进行更改求大神帮助!!!!!!!!
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 mysql root不能登录 的文章

 

随机推荐