1、前言
当前MySQL最新版本:8.0.13 (听说比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、获取MySQL最新版 rpm包 集合 的下载地址(获取最新版MySQL下载地址方法)
MySQL下载页面:https://dev.mysql.com/downloads/mysql/8.0.html
我是CentOS系统 所以 我选择了 Red Hat。
第一个为一个 tar归档包,里面是 后面所有 rpm 的打包(仔细看后面都是rpm 结尾的)
点击右边Download
这就是最新版 MySQL资源链接 :https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
yum or rpm?
yum安装方式很方便,但是下载mysql的时候从官网下载,速度较慢。
rpm安装方式可以从国内镜像下载mysql的rpm包,比较快。rpm也适合离线安装。
环境说明
- 操作系统:Centos7.5 (CentOS-7-x86_64-DVD-1804.iso)
- mysql:mysql8.0.13
-
卸载系统自带的mariadb-lib
- 查看mariadb版本
rpm -qa|grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64 - 卸载mariadb
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
查看/安装依赖环境
yum install -y openssl-devel.x86_64 openssl.x86_64
yum install -y libaio.x86_64 libaio-devel.x86_64
yum install -y perl.x86_64 perl-devel.x86_64
yum install -y perl-JSON.noarch
yum install -y autoconf
yum install -y wget
yum install -y net-tools
关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
禁用selinux
vi /etc/selinux/config
将SELINUX=enforcing
改为SELINUX=disabled
reboot
重启机器
从网易镜像下载mysql安装包集合
- 下载完整安装包并解压
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
- 下载必要安装包(二选一)
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-community-common-8.0.13-1.el7.x86_64.rpm
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-community-libs-8.0.13-1.el7.x86_64.rpm
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-community-client-8.0.13-1.el7.x86_64.rpm
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-community-server-8.0.13-1.el7.x86_64.rpm
按顺序安装
- 必要安装(注意顺序)
- 安装common
- 安装lib 依赖于common,确保已经卸载mariadb
- 依赖于libs
- 依赖于client、common
rpm -ivh mysql-community-common-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.13-1.el7.x86_64.rpm
- 非必要安装(注意顺序)
rpm -ivh mysql-community-libs-compat-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.13-1.el7.x86_64.rpm
初始化数据库
mysqld --initialize --console
目录授权,否则启动失败
chown -R mysql:mysql /var/lib/mysql/
启动服务
systemctl start mysqld
加密
mysql_secure_installation
其他
其他操作和yum安装方式一样,不再重复。
、开始安装
1、当中会遇到的问题
1、mysql-community-libs .... 这两个包安装不上。
原因:我们在Linux系统中,如果要使用关系型数据库的话,基本都是用的mysql。
而且以往7以下版本的centos系统都是默认的集成有mysql。
然而对于现在最新的centos7系统来说,已经不支持mysql数据库,它默认内部集成了mariaDB。
如果我们想要使用 mysql 的话,就要先将原来的mariaDB卸载掉,不然会引起冲突。
解决方案:卸载maridb (rpm 不会卸载软件的 自行百度)
查看安装的 mariaDB:rpm -qa | grep mariadb
卸载:rpm -e ***(*** 为软件名)
如果不能卸载则即可:rpm -e --nodeps ***(*** 为软件名)
2、缺少依赖包 libaio
libaio.so.1()(64bit) is needed by MySQL-server 问题
直接实用yum包管理工具安装即可:yum install libaio
2、使用 rpm -vih XXXXXX(XXXXXX 为 rpm包全名)
按照依赖顺序依次安装(能安装的安装就行,像test这个不方便安装就算了。)
mysql-community-common-8.0.13-1.el7.x86_64
mysql-community-libs-8.0.13-1.el7.x86_64
mysql-community-libs-compat-8.0.13-1.el7.x86_64
mysql-community-client-8.0.13-1.el7.x86_64
mysql-community-embedded-compat-8.0.13-1.el7.x86_64
mysql-community-server-8.0.13-1.el7.x86_64
7、启动MySQL服务,并设置root密码
1、启动mysql服务
service mysqld restart
2、初次安装mysql,root账户没有密码。
[root@izuf6 tmp]# mysql -u root Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 15 Server version: 8.0.13 MySQL Community Server - GPL Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | test | +--------------------+ rows in set (0.01 sec) mysql>
设置密码:
mysql> set password for 'root'@'localhost' =password('password'); Query OK, 0 rows affected (0.00 sec) mysql>
不需要重启数据库即可生效。
3、使用样例
6、MySQL一些骚炒作
-- 登录sys数据库 mysql -u root -proot sys -- 查看所有的数据库 select database() -- 查看数据库 show databases; -- 模糊查询包含y的数据库 show databases like '%y%'; -- 查看表 show tables; --模糊查询包含user的表 show tables like '%user%'; -- 查看列, 查看user表信息 desc user;
-- 查看username用户被赋予的权限
show grants for username;