Mysql 安装成功后,输入 mysql --version 显示版本如下

mysql  Ver 14.14 Distrib 5.7.13-6, for Linux (x86_64) using  6.0

用默认密码登录报如下错误:

mysqladmin -uroot -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

解决方法:

/etc/init.d/mysql stop
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root mysql
mysql> use mysql
mysql> UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit /etc/init.d/mysql restart
mysql -uroot -p
Enter password: <输入新设的密码newpassword>

注意:mysql5.7版本mysql数据库user表的密码字段为authentication_string, 其他版本大部分为password,update语句相应为:

UPDATE user SET Password=PASSWORD('newpassword') where USER='root';

用重置的密码终于登录成功,结果发现操作任何sql语句都报如下错误:

You must reset your password using ALTER USER statement before executing this statement.

** 错误显示在操作sql语句前必须重置密码,然后试了好几个重置密码的语句都重置失败,陷入了死循环。

这时发现错误提示修改密码需使用 Alter USER 语句,才找到了解决方法,可是又报密码过于简单的错误。**

mysql> alter user 'root'@'localhost' identified by '123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

这个错误其实与validate_password_policy有关,mysql5.6版本后,推出了validate_password插件,加强了密码强度。

可以使用 mysql> show variables like "%vali%" 命令查看validate_password_policy值:

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

validate_password_policy有以下取值:

Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

所以用alter user语句重设一个复杂的密码,发现设置成功。

如果不想密码设置过于复杂,只想设置root的密码为123456,需要修改默认规则

set global validate_password_policy=0;

set global validate_password_length=1;

select @@validate_password_length;

方法详见http://www.cnblogs.com/ivictor/p/5142809.html

最后授权root远程登录权限:

mysql> Grant all privileges on *.* to 'root'@'%' identified by 'newpassword' with grant option;

Mysql5.7忘记root密码及修改root密码的方法的更多相关文章

  1. centOS7忘记密码,修改root账号密码

    centOS7忘记密码,修改root账号密码 RHEL7 的世界发生了变化,重置 root 密码的方式也一样.虽然中断引导过程的旧方法(init=/bin/bash)仍然有效,但它不再是推荐的.“Sy ...

  2. mysql 5.7.16 忘记root 密码 如何修改root密码

    今天在电脑上安装  mysql5.7.16 (压缩包)时,在初始化data文件夹之后,没有记住密码,DOS框没有显示,没办法,为了学习一下怎么修改密码,在网上找了好多方法去解决,最终还是解决了,下面来 ...

  3. RHEL7忘记密码:修改root密码

    博客链接:http://blog.csdn.net/derkampf/article/details/54346516 问题描述:日常工作和使用红帽子7系统时,容易发生忘记密码(root)这种尴尬的情 ...

  4. Mysql 忘记root密码后修改root密码

    1.修改my.cnf: 在mysqld进程配置文件中添加skip-grant-tables,添加完成后记住保存. 2.重新启动MYSQL数据库: service mysqld restart 2.修改 ...

  5. mysql忘记root密码,修改mysql密码

    1.修改mysql配置文件  vim /etc/my.cnf #编辑文件 找到[mysqld],在下面添加一行 skip-grant  :wq #保存退出 service mysqld restart ...

  6. mysql 忘记登录密码(修改root密码)

    1.以管理员身份打开cmd,键入net stop mysql,停止mysql 2.切换到mysql的安装目录下(例:S:\mysql\mysql-8.0.18-winx64\mysql-8.0.18- ...

  7. ansible非root用户批量修改root密码

    前言: 由于线上服务器密码长久没有更新,现领导要求批量更换密码.线上的之前部署过salt,但由于各种因素没有正常使用. 使用自动化工具批量修改的计划搁浅了,后来领导给了个python多线程修改密码脚本 ...

  8. Linux下修改Mysql的用(root的密码及修改root登录权限

    修改的用户都以root为列. 一.知道原来的myql数据库的root密码: ①: 在终端命令行输入 mysqladmin -u root -p password "新密码" 回车  ...

  9. 先前设定的sa密码忘记了,如何修改sa密码?

    在window身份验证登陆后,新建查询,输入以下代码就可以修改sa密码了: use master go exec sp_password null,'123456','sa' go

随机推荐

  1. Android 调出和隐藏软键盘

    1.弹出软键盘 public static void showSoftInputMode(Context context,View windowToken) { final InputMethodMa ...

  2. Java事物基础总结

    1.什么是事物? 事物是逻辑上的的一种操作,这个操作过程中的每一个元素要么全部成功,要么全部失败.例如,银行转账过程视为一个事物,转出过程和转入过程要求全部成功或全部失败,通过提交事物或者回滚事物实现 ...

  3. 一次young gc耗时过长优化过程

    1    问题源起 上游系统通过公司rpc框架调用我们系统接口超时(默认超时时间为100ms)数量从50次/分突然上涨到2000次/分,在发生变化时间段里我们的系统也没有做过代码变更,但上游系统的调用 ...

  4. druid 连接kafuk

    java -Xmx256m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -Ddruid.realtime.specFile=examples/indexing/ ...

  5. PHP站内搜索

    1.SQL语句中的模糊查找 LIKE条件一般用在指定搜索某字段的时候, 通过"% 或_" 通配符的作用实现模糊查找功能,通配符可以在前面也可以在后面或前后都有. 搜索以PHP100 ...

  6. oracle调用array参数存储过程

    declare -- Non-scalar parameters require additional processing files tyt_gas2014_search; ,); temp1 t ...

  7. [HNOI2004]宠物收养场 Treap前驱后继

    凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领 ...

  8. iOS之RunLoop

    RunLoop是iOS线程相关的比较重要的一个概念,无论是主线程还是子线程,都对应一个RunLoop,如果没有RunLoop,线程会马上被系统回收. 本文主要CFRunLoop的源码解析,并简单阐述一 ...

  9. zabbix3.2 install

    以下参考官网 一.Zabbix安装配置(ubuntu) 1.Zabbix服务端安装 基础情况 系统 Ubuntu 14.04.4 LTS zabbix版本 zabbix 3.2 ip 192.168. ...

  10. hdu3586 Information Disturbing 树形DP+二分

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3586 题目大意:给定n个敌方据点,编号1为司令部,其他点各有一条边相连构成一棵树,每条边都有一个权值c ...