在命令行中输入show databases;命令后,也没显示重置临时密码,输入其他命令也出现该问题。
输入quit命令退出数据库后,输入cd /bin命令进行到bin目录下。
输入mysqladmin -u root -p password命令后,显示密码提示,输入数据库的初始化的临时密码T3iKt6HjR*4M后,显示输入新密码和确认密码。
输入确认密码后,显示不能满足当前的规则需求。
重新再次登录数据库后,输入set global validate_password_policy=0;修改密码规则等级,该等级是最低等级。
修改密码规则等级成功。判断密码的标准就基于密码的长度了。这个由
validate_password_length参数来决定,密码长度至少8位字符。
重新使用cd /bin命令进入到bin目录下输入mysqladmin -u root -p password
输入初始化临时密码后,提示输入信息密码,新密码的规则在前面已经设置。最少8位字符。那么我们输入root123456后,就显示成功。
再次进行登录后,输入新的root123456密码后,可以登录数据库成功。
10.Mysql远程登录
修改远程Mysql的权限,登录数据库后,输入usemysql;
进入mysql数据库后,再输入
update user set host = '%' where user ='root';
再次输入flush privileges; 按Enter键盘后,显示成功过。
在另外一台客户短必须要安装
rpm -ivh mysql-community-client-5.7.12-1.el7.x86_64.rpm安装包,然后,在命令行下输入:mysql -h 192.168.0.132 -P 3306 -u root -proot,显示登录成功。
在命令行中输入create database testdb; 后按回车创建数据库成功。
为了确认远程的服务器是否有testdb数据库,可回到远程的数据库查看新建的testdb数据库。
11.难题解决
11.1.强制重置mysql密码
1. vi/etc/my.cnf 编辑文件。
在my.cnf找到[mysqld],在下面添加一行skip-grant-tables
例如:
skip-grant-tables
:wq! #保存退出
Systemctl restart mysqld #重启MySQL服务
2、进入MySQL控制台
mysql -uroot -p #直接按回车,这时不需要输入root密码。
3、修改root密码
update mysql.user setauthentication_string=password('123456') where User="root" andHost="localhost";
flush privileges; #刷新系统授权表
grant all on *.* to 'root'@'localhost'identified by '123456' with grant option;
4、取消/etc/my.cnf中的skip-grant-tables
vi /etc/my.cnf 编辑文件,找到[mysqld],删除skip-grant-tables这一行
:wq! #保存退出
5、重启mysql
Systemctl restart mysqld #重启mysql,这个时候mysql的root密码已经修改为123456
6、进入mysql控制台
mysql -uroot -p #进入mysql控制台
123456 #输入密码
注意:在mysql5.7以后的版本,修改密码的字段不是password而是authentication_string
11.2.查看密码规则等级
登录数据库后,输入select @@validate_password_length;可查看当前的数据库密码规则等级长度,当前的长度为8位字符。
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
|
设置密码验证规格等级。