记录一次安装MySql8.0的痛苦经历

一、下载安装

个人比较懒,于是提前装了个宝塔面板安装

命令安装:

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相比:

  1. mysql库user表 password字段去掉,变为authentication_string

  2. 密码策略改变,设置简单密码需要修改密码策略

  3. 密码加密规则改变:

    在mysql8.0之前的版本使用的密码加密规则是mysql_native_password,但是在mysql8则是caching_sha2_password
    项目部署可能会出现:Unable to load authentication plugin ‘caching_sha2_password’ 的错误

  4. mysql8.0启动后修改my.cnf设置忽略大小写及设置后无法启动问题

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值