Centos 7.x 获取,安装以及客户端连接MySQL8.0教程
这篇博文记录下如何在Centos 7.x 获取,安装以及客户端连接MySQL8.0 。
- 如果你已经安装了MySQL ,想升级的话参考 Section 2.11, “Upgrading MySQL”上面有关于升级注意事项。
- 如果是之前用的其他数据库想迁移到MySQL ,可以参考Section A.8, “MySQL 8.0 FAQ: Migration”,
0x01 Centos 7.x 获取,安装以及客户端连接MySQL8.0教程
1.1 检查MySQL 是否支持运行在你的操作系统
我们要知道一点的是,MySQL 虽然流行但不是所有的操作系统都适用安装MySQL 的。
MySQL 支持的平台我这里挑选几个比较常见的贴出来
更多请参考官方文档 Supported Platforms: MySQL Database
1.2 选择安装哪一个MySQL版本?
MySQL 有很多版本,安装之前我们需要确定下想安装的是开发版本还是正式的GA版本。
1.2.1 DEV or GA?
- 开发版本包含最新的一些功能,但是不建议生产环境使用。
- GA 版本是正式发布的稳定版本,适用于生产环境使用。
一般来说,建议我们使用MySQL正式发布稳定的GA版本。
在windows 上可以使用 the MySQL Installer 进行安装。
- windows 上安装MySQL 8.0 需要.NET Framework 4.5.2或更高版本
- 下载地址: https://dev.mysql.com/downloads/installer/ 这里指的注意的是两个区别
- Web: mysql-installer-community-web-VERSION.N.msi 在线安装版本
- Full or Current Bundle: 比如mysql-installer-community-VERSION.N.msi 指的是离线安装版本
1.3下载想要安装的二进制文件
1.3.1 yum方式下载(有问题)
- Oracle Linux, Red Hat Enterprise Linux, CentOS 和 Fedora 都是通过yum包管理器来管理软件的下载,更新和删除。
- 由于本地配置的软件库镜像软件比较少,因此需要添加一个软件镜像库
下载rpm 文件方式有很多种,这里只列举两种最常用的方法:
- 第一种方法
通过wget -i url 命令下载rpm 文件
如果是Centos 8 (Red Hat Enterprise Linux 8 / Oracle Linux 8)执行
wget dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
如果是Centos7 (Red Hat Enterprise Linux 7 / Oracle Linux 7)执行这个
wget dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
如果是Centos6 (Red Hat Enterprise Linux 6 / Oracle Linux 6)执行这个
wget dev.mysql.com/get/mysql80-community-release-el6-3.noarch.rpm
Ubuntu / Debian 平台通过apt等包管理器来管理软件的下载,可以访问如下地址: MySQL APT Repository
1.3.2 FTP 上传下载好的rpm(有问题)
另外一种通过windows 主机下载好,然后通过xftp 上传上去。
首先可以访问 MySQL Yum Repository
- 点击图中所示,下载该rpm文件
- 下载完成后我们通过 xftp 将这个rpm 文件上传到阿里云Centos 7.x 服务器上。
为了方便管理建议放到 /opt
路径下
更多详情参考Installing MySQL on Linux Using the MySQL Yum Repository
1.3.3 RPM方式安装(推荐)
- 经过测试发现上面两种都会报依赖找不到问题,最终使用这种方式成功。
- 官方参考文档
- 首先打开 https://dev.mysql.com/downloads/mysql/
- 选择适合自己Linux 版本的RPM源
输入如下命令查看当前操作系统内核版本以及位数
uname -a
如下所示,我们可以看出当前操作系统是 x86_64 架构
输入如下命令我们可以看到操作系统的型号
cat /etc/centos-release
如下所示,可以看出当前操作系统是CentOS Linux release 7.7.1908 (Core)
因此勾选
我们下载这个RPM Bundle 版本
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
因为这个版本里面包含了其他所有的RPM 源。
下载完成解压如下所示:
然后通过XFTP上传到/opt 文件夹下
1.4. 将软件库镜像安装到本地(可跳过)
下载好软件库镜像后,我们需要将其安装到本地仓库。
在下载好的rpm 的当前目录执行如下命令
- 有的说法是这种
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
- 官方推荐的是这种
如果是Centos8 执行如下命令:
sudo yum localinstall mysql80-community-release-el8-1.noarch.rpm
如果是Centos 7 执行如下命令:
sudo yum localinstall mysql80-community-release-el7-3.noarch.rpm
如果是Centos6 执行如下命令:
sudo yum localinstall mysql80-community-release-el6-3.noarch.rpm
1.5 旧版本清理篇
在安装之前为了避免冲突或之前错误的安装,需要对旧版本可以执行清理。
1.5.1 删除MariaDB的文件
由于 在CentOS中默认安装有MariaDB,所以如果我们不删除MariaDB文件的话,安装mysql时可能会发生冲突
- 使用rpm 命令查找出要删除的mariadb文件
rpm -pa | grep mariadb
如果回显中有 mariadb-libs-5.5.56-2.el7.x86_64
执行删除
yum -y remove mariadb-libs-5.5.56-2.el7.x86_64
注:
网上还有一种方法是这样rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
1.5.2 删除错误的MySQL文件
- 查看系统是否已经安装了mysql数据库
rpm -qa | grep mysql
- 删除已经安装的文件
yum remove mysql-xxx-xxx
- 找出所有的mysql的配置文件(MySQL卸载不会自动删除配置文件,需自行清理)
find / -name mysql
- 依次删除这些配置文件
rm -rf /var/lib/mysql
1.6 查看配置可以安装的软件(可跳过)
刚才仓库镜像已经安装完毕,我们可以看下当前都有哪些软件可以安装。
yum repolist all | grep mysql
执行成功如下所示:
- 在MySQL Yum存储库中,不同版本的MySQL Community Servers托管在不同的子存储库中。
- 默认情况下,默认启用最新的GA系列(当前为MySQL 8.0)的子存储库,而所有其他系列(例如,MySQL 8.0系列)的子存储库均被禁用。
- 如果想修改这个开启和禁用,在此之前,我们需要安装一个类库,否则会提示找不到yum-config-manger 命令。
sudo yum install yum-utils -y
禁用MySQL 5.7,输入如下命令:
sudo yum-config-manager --disable mysql57-community
使用MySQL 8.0,输入如下命令:
sudo yum-config-manager --enable mysql80-community
验证是否已使用以下命令替换了正确的子存储库并检查其输出
yum repolist enabled | grep "mysql.*-community.*"
这个命令会显示所有enabled 启用的MySQL 组件,执行成功如下所示:
1.7 安装MySQL
方法一(安装各种依赖找不到)
这种方式存在问题,会提示各种依赖找不到
按照如下顺序安装MySQL各个组件
- mysql-community-server
- mysql-community-client
- mysql-community-libs
- mysql-community-common
- mysql-community-libs-compact
通过以下命令安装MySQL(对于启用了dnf的系统,将命令中的yum替换为dnf):
sudo yum install mysql-community-server
该软件包用于MySQL服务器(mysql-community-server)和运行服务器所需组件的软件包,包括客户端的软件包(mysql-community-client),常见错误消息以及客户端和服务器的字符集(mysql-community-common)和共享客户端库(mysql-community-libs)。
方法二(亲测可行)
需要使用上面的下载的RPM Bundle 压缩包,然后解压到/opt 目录下,执行如下命令才得行。
- 服务端和客户端都安装,执行如下命令
sudo yum install mysql-community-{server,client,common,libs}-*
- 只安装客户端
sudo yum install mysql-community-{client,common,libs}-*
1.8 开启MySQL Server
开启MySQL Server 需要输入如下命令:
systemctl start mysqld
1.9 获取初始化密码
sudo grep 'temporary password' /var/log/mysqld.log
打印输出如下:
2019-11-28T16:54:56.521130Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: TKdJJ*urZ2k0
我们记下临时密码 TKdJJ*urZ2k0
1.10 尝试登陆MySQL
mysql -uroot -p
会提示输入密码,我们输入刚才出现的临时密码即可。
登陆成功后如下所示:
1.11 更新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
执行如上命令后就把数据库密码修改为MyNewPass4!
了
默认情况下安装validate_password。
validate_password实现的默认密码策略至少需要一个大写字母,一个小写字母,一位数字和一个特殊字符,并且密码总长度至少为8个字符。
1.12 阿里云控制台配置安全组
为了安全性,阿里云服务器默认需要手动配置对外提供的端口的。
1.12.1 登录阿里云控制台,找到安全组
点进去可以看到如下所示:
1.12.2 入方向
1.12.3 出方向
安全组出方向默认允许所有访问,即从安全组内ECS访问外部都是放行的。
1.13 配置MySQL支持远程登录
MySQL 默认是不支持远程登录访问的,需要配置下。
MySQL 8.0 版本更新方法如下:
- 1.命令行模式下,输入账号密码登录进入
use mysql;
2.Mysql默认不允许远程登录,所以需要开启远程访问权限
select user,authentication_string,host from user;
3.更新localhost 为任意IP
update user set host = '%' where user = 'root';
4.刷新策略
FLUSH PRIVILEGES;
5.建议重启下MySQL 服务
停止MySQL服务
systemctl stop mysqld
启动MySQL服务
systemctl start mysqld
如果是低版本的MySQL 5.7 ,请参考我的另一篇博文
1.14 使用客户端远程连接MySQL
Navicat Premium 12 连接测试方法如下:
如果还不行,可以关闭防火墙
systemctl stop firewalld.service
或配置防火墙指定开放哪个端口
firewall-cmd --permanent --add-port=3306/tcp --zone=public