【Linux】【MySQL】CentOS7安装最新版MySQL8.0(最新版MySQL从安装到运行)

1.前言

    当前MySQL最新版本:8.0.14 (听说比5.7快2倍)

    官方之前表示:MySQL 8.0 正式版 8.0.11 已发布,MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能!

    开源中国介绍文档:MySQL 8.0 正式版 8.0.11 发布:比 MySQL 5.7 快 2 倍

2.开始

1.我的设备介绍

    服务器:2019-1-06 新购置的阿里云CentOS7.5 的服务器;

    系统镜像采用阿里云自家默认的CentOS7镜像;

2、准备

    首先你得登陆到自己的服务器。

   SSH远程登陆Linux(Xshell6+Xftp6)

3、获取MySQL最新版 rpm包 集合 的下载地址(获取最新版MySQL下载地址方法)

    MySQL下载页面:https://dev.mysql.com/downloads/mysql/8.0.html
    版本选择

    这里我选择的是RedHat

版本选择

第一个为一个 tar归档包,里面是 后面所有 rpm 的打包(仔细看后面都是rpm 结尾的)

版本选择

鼠标右键点击,然后复制链接

4、wget下载到服务器

版本选择

5、解压MySQL归档包

 tar -xvf mysql-8.0.14-1.el7.x86_64.rpm-bundle.tar

6、开始安装

1、当中会遇到的问题

1.CentOS7自带mariaDB

        我们在Linux系统中,如果要使用关系型数据库的话,基本都是用的mysql。

        而且以往7以下版本的centos系统都是默认的集成有mysql。

        然而对于现在最新的centos7系统来说,已经不支持mysql数据库,它默认内部集成了mariaDB。

        如果我们想要使用 mysql 的话,就要先将原来的mariaDB卸载掉,不然会引起冲突。

解决方案:

        卸载maridb (rpm 不会卸载软件的 自行百度)

        查看安装的 mariaDB:rpm -qa | grep mariadb

        卸载:rpm -e ( 为软件名)

        如果不能卸载则用:rpm -e —nodeps ( 为软件名)

2、缺少依赖包

        libaio.so.1()(64bit) is needed by MySQL-server 问题

        直接使用yum包管理工具安装即可:        

yum install libaio

yum install numactl

2、使用 rpm -vih XXXXXX(XXXXXX 为 rpm包全名)

      按照依赖顺序依次安装(能安装的安装就行,像test这个不方便安装就算了。)      

mysql-community-common-8.0.14-1.el7.x86_64

mysql-community-libs-8.0.14-1.el7.x86_64

mysql-community-libs-compat-8.0.14-1.el7.x86_64

mysql-community-client-8.0.14-1.el7.x86_64

mysql-community-embedded-compat-8.0.14-1.el7.x86_64

mysql-community-server-8.0.14-1.el7.x86_64

7、启动MySQL服务,并设置root密码

1、启动mysql服务

 
  1. service mysqld restart

2、初次安装mysql,不知道root账户密码。

 
  1. vim /var/log/mysqld.log

3、修改密码

 
  1. ALTER USER "root"@"localhost" IDENTIFIED BY "1234"

1、当中会遇到的问题

MySQL8.0报错:Unknown system variable ‘validate_password_policy’

1、在安装MySQL8.0时,修改临时密码,因密码过于简单(如:123456),不符合MySQL密码规范,会触发一个报错信息:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。

2、遇到问题

1、解决办法调整MySQL密码验证规则,修改 policy 和 length 的值。

2、MySQL 5.7 进行如下设置,即可解决问题:

 
  1. mysql> set global validate_password_policy=0;
  2. mysql> set global validate_password_length=1;

3、MySQL 8.0 执行代码:

 
  1. mysql> set global validate_password_policy=0;
  2. ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
  3.  
  4. mysql> set global validate_password_length=1;
  5. ERROR 1193 (HY000): Unknown system variable 'validate_password_length'

3、解决办法

1、分析: 可以看到,修改 policy 和 length 的值,在MySQL5.7中好使,在MySQL8.0中无效。’validate_password_policy’ 变量不存在。

2、解决: 先修改一个满足的密码 (如:Root_12root)。

补充: validate_password_policy 有以下取值:

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

3、密码修改后,可用命令查看 validate_password 密码验证插件是否安装。

mysql> SHOW VARIABLES LIKE ‘validate_password%’;

4、MySQL 5.7 查看密码验证插件:

5、 MySQL 8.0 查看密码验证插件:

4、问题总结

1、 通过查看 MySQL5.7 和 MySQL8.0 密码验证插件对比,可知两个版本中,变量名不一样。(_password_policy 和 _password.policy ) —- 问题原因所在。

2、MySQL 8.0 调整密码验证规则:

 
  1. mysql> set global validate_password.policy=0;
  2. mysql> set global validate_password.length=1;

8、设置开机启动

 
  1. systemctl enable mysqld
  2. systemctl daemon-reload

9、设置允许远程登录和开启防火墙

Mysql默认不允许远程登录,所以需要开启远程访问权限

可以先查看user表

 
  1. select user,authentication_string,host from user;

默认都是localhost

 
  1. update user set host = '%' where user = 'root';

此时root的host是所有都可以了

然后刷新修改

 
  1. FLUSH PRIVILEGES;

这步一定要做,否则无法生效。

然后开启防火墙

 
  1. [root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
  2. success
  3. [root@localhost ~]# firewall-cmd --reload
  4. success

10、配置默认编码为utf8

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

 
  1. [mysqld]
  2. character_set_server=utf8
  3. init_connect='SET NAMES utf8'

编辑保存完 重启mysql服务;

 
  1. [root@localhost ~]# systemctl restart mysqld

查看下编码:

 
  1. mysql> show variables like '%character%';

可以看出已经改为utf8字符了

通过本地如果仍然访问不了,可能是mysql第三方客户端版本太低,不支持mysql8.0的加密方式。

如何处理参见博客: 远程连接mysql8.0,Error No.2058 Plugin caching_sha2_password could not be loaded

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值