一、下载安装
个人比较懒,于是提前装了个宝塔面板
安装
命令安装:
cd /usr/local
mkdir mysql
cd mysql
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-i686.tar.gz
tar -zxvf mysql-8.0.11-linux-glibc2.12-i686.tar.gz
二、配置
1.修改my.cnf
(windows下修改的是my.ini)
vim /etc/my.cnf
在[mysqld]
后面任意一行添加
lower_case_table_names=1
skip-grant-tables
解释:lower_case_table_names=1 忽略大小写
skip-grant-tables 跳过验证登录
三、修改表
1.启动
service mysqld start //启动mysql
service mysqld status //查看mysql启动状态
2.修改
mysql -u root -p // 直接回车登录就行,不需要密码的
use mysql; //切换到mysql库
select host,user,authentication_string from user; //可以查看root用户的host及密码(加密后)
// 将登录密码置空
update user set authentication_string = '' where user = 'root';
3.去掉配置
// 编辑my.cnf文件 去掉之前添加的“skip-grant-tables”,依旧可以空密码登录
vim /etc/my.cnf
// 删掉刚刚添加的这一行
skip-grant-tables
4.重启mysql
// 重启mysql
service mysqld restart
四、设置密码
1.登录,无需密码直接回车
mysql -u root -p
2.查看mysql的密码策略
show variables like 'validate_password%';
1)如果看到空(Empty),没有策略,直接跳过
2)如果看到
我这里已经修改过后了,可以修改对应的规则:
举个栗子:
set global validate_password.policy=LOW; //设置密码强度为LOW
set global validate_password.length=4; //设置密码长度为4
set global validate_password.check_user_name=OFF; // 关闭用户名检测
....
关于这张表的详细解释:
- validate_password.check_user_name 用户名检测
- validate_password.dictionary_file 指定密码验证的文件路径;
- validate_password.length 固定密码的总长度;
- validate_password.mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
- validate_password.number_count 整个密码中至少要包含阿拉伯数字的个数;
- validate_password.policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
- 0/LOW:只验证长度;
- 1/MEDIUM:验证长度、数字、大小写、特殊字符;
- 2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
validate_password.special_char_count 整个密码中至少要包含特殊字符的个数;
3.设置密码
// 这里设置密码以root为例
alter user 'root'@'localhost' identified by 'root'; //修改密码为root,提示修改成功~
五、远程连接
这里以Navicat为例:
如果这个时候你远程连接数据库会报错:
Host xxxxx is not allowed to connect to this MySql server
进入mysql
1.打开终端,进入mysql
2.use mysql; //选中mysql中的 ·mysql· 表
3.update user set host = '%' where user = 'root'; //更新权限,修改为允许全部连接
4.select host, user from user; //查看是否修改成功
5.flush privileges; //刷新表的权限(或者重启一次mysql)
执行第三步的时候有可能遇到‘Duplicate entry ‘%-root’ for key ‘PRIMARY’’的问题。说明已有相应的user=‘root’,host=’%'数据,直接执行步骤4.5即可。
另:mysql8.0与mysql5.0相比:
- mysql库user表
password
字段去掉,变为authentication_string
- 密码策略改变,
设置简单密码需要修改密码策略
- 密码加密规则改变:
在mysql8.0之前的版本使用的密码加密规则是
mysql_native_password
,但是在mysql8则是caching_sha2_password
。
项目部署可能会出现:Unable to load authentication plugin 'caching_sha2_password' 的错误 - mysql8.0启动后修改my.cnf设置忽略大小写及设置后无法启动问题