此学习文是基于MySQL 8.0写的
得益于大神朋友的悉心指导解决不少坑,才写出此文,向大神奉上膝盖
# 前言
在安装之前,请记下操作系统和CPU架构,接下来的操作如下面各表所示。
- MySQL Linux RPM包分发标识符
发布号 | 应用于 |
---|---|
el6、 el7 | Red Hat Enterprise Linux、 OracleLinux、 CentOS 6 或 7 |
fc23、 fc24、 fc25 | Fedora 23、 24或25 |
slesl2 | SUSE Linux Enterprise 12 |
- MySQL Linux RPM包CPU标识符
CPU型号 | 可用的处理器类型或家族 |
---|---|
i386、 i586、 i686 | 奔腾处理器或更高性能的处理器,32位 |
x86_64 | 64位 x86 处理器 |
iA64 | 安腾(IA-64)处理器 |
- MySQL Debian和Ubuntu7、8安装软件包的CPU型号
CPU型号 | 可用的处理器类型或系列 |
---|---|
i386 | 奔腾处理器或更高性能的处理器,32位 |
AMD64 | 64位 x86 处理器 |
- MySQL Debian 6安装包CPU类型
CPU型号 | 可用的处理器类型或系列 |
---|---|
i686 | 奔腾处理器或更高性能的处理器,32位 |
x86_64 | 64位 x86 处理器 |
一、Yum(Red Hat、CentOS)
1. Yum安装
1.1. 安装仓库源config
1.1.1. 查看RedHat或CentOS的版本
[nangy@nangy-vm ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
- 顺带给系统更新更新
[nangy@nangy-vm ~]$ sudo yum update
1.1.2. 将MySQL Yum仓库添加到系统的仓库列表中
这是一次性操作,可以通过安装MySQL 提供的RPM 来执行
你可以从 http://dev.mysql.com/downloads/repo/yum/ 下载MySQL Yum仓库,然后根据自己的操作系统选择文件。
[nangy@nangy-vm ~]$ wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
[nangy@nangy-vm ~]$ sudo yum localinstall -y mysql80-community-release-el7-3.noarch.rpm
- 或者你可以复制链接位置并使用RPM直接安装
[nangy@nangy-vm ~]$ sudo rpm -Uvh "https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm"
1.1.3. 验证安装列表
[nangy@nangy-vm ~]$ yum repolist enabled | grep 'mysql.*-community.*'
mysql-connectors-community/x86_64 MySQL Connectors Community 108
mysql-tools-community/x86_64 MySQL Tools Community 90
mysql80-community/x86_64 MySQL 8.0 Community Server 113
1.1.4. 设置发布系列
- 查看默认发布系列
[nangy@nangy-vm ~]$ sudo yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community 禁用
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - So 禁用
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community 禁用
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - So 禁用
mysql-cluster-8.0-community/x86_64 MySQL Cluster 8.0 Community 禁用
mysql-cluster-8.0-community-source MySQL Cluster 8.0 Community - So 禁用
mysql-connectors-community/x86_64 MySQL Connectors Community 启用: 108
mysql-connectors-community-source MySQL Connectors Community - Sou 禁用
mysql-tools-community/x86_64 MySQL Tools Community 启用: 90
mysql-tools-community-source MySQL Tools Community - Source 禁用
mysql-tools-preview/x86_64 MySQL Tools Preview 禁用
mysql-tools-preview-source MySQL Tools Preview - Source 禁用
mysql55-community/x86_64 MySQL 5.5 Community Server 禁用
mysql55-community-source MySQL 5.5 Community Server - Sou 禁用
mysql56-community/x86_64 MySQL 5.6 Community Server 禁用
mysql56-community-source MySQL 5.6 Community Server - Sou 禁用
mysql57-community/x86_64 MySQL 5.7 Community Server 禁用
mysql57-community-source MySQL 5.7 Community Server - Sou 禁用
mysql80-community/x86_64 MySQL 8.0 Community Server 启用: 113
mysql80-community-source MySQL 8.0 Community Server - Sou 禁用
- 如果
mysql80-community/x86_64
未启用,则手动启用
- 方法一:通过命令
启用
|禁用
版本
[nangy@nangy-vm ~]$ sudo yum install yum-utils.noarch -y
# 禁用其他发布版本,此步骤依据个人情况修改版本
[nangy@nangy-vm ~]$ sudo yum-config-manager --disable mysql57-community
# 启用MySQL 8.0 发布版本
[nangy@nangy-vm ~]$ sudo yum-config-manager --enable mysql80-community
- 方法二:修改yum仓库mysql配置文件
启用
|禁用
版本
/etc/yum.repos.d/mysql-community.repo
enabled=1 启用
|enabled=1 禁用
[nangy@nangy-vm ~]$ sudo vim /etc/yum.repos.d/mysql-community.repo
# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
1.1.5. 确认mysql80-community/x86_64
已启用
[nangy@nangy-vm ~]$ sudo yum repolist all | grep mysql8
mysql80-community/x86_64 MySQL 8.0 Community Server 启用: 113
mysql80-community-source MySQL 8.0 Community Server - Sou 禁用
1.2. 安装MySQL
- 更新元数据缓存(
此步骤是必需的
)
如果不更新,安装还是历史旧版本
# 全清旧数据
[nangy@nangy-vm ~]$ sudo yum clean all
# 建立元数据缓存
[nangy@nangy-vm ~]$ sudo yum makecache
# 更新升级系统
[nangy@nangy-vm ~]$ sudo yum update
- 创建MySQL账户(可选)
[nangy@nangy-vm ~]$ sudo groupadd mysql
[nangy@nangy-vm ~]$ sudo useradd -g mysql mysql
- 安装MySQL社区版
[nangy@nangy-vm ~]$ sudo yum install -y mysql-community-server
- 验证已安装的软件包
[nangy@nangy-vm ~]$ rpm -qa | grep -i 'mysql.*8.*'
mysql-community-libs-8.0.16-2.el7.x86_64
mysql-community-libs-compat-8.0.16-2.el7.x86_64
mysql-community-server-8.0.16-2.el7.x86_64
mysql80-community-release-el7-3.noarch
mysql-community-client-8.0.16-2.el7.x86_64
mysql-community-common-8.0.16-2.el7.x86_64
- 启动停止MySQL
# 启动
[nangy@nangy-vm ~]$ sudo systemctl start mysqld
# 停止
[nangy@nangy-vm ~]$ sudo systemctl stop mysqld
# 重启
[nangy@nangy-vm ~]$ sudo systemctl restart mysqld
- 查看MySQL状态
[nangy@nangy-vm ~]$ sudo systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: "active (running)" since 一 2019-07-15 16:34:57 CST; 10min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 1407 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 5389 (mysqld)
Status: "SERVER_OPERATING"
Tasks: 37
CGroup: /system.slice/mysqld.service
└─5389 /usr/sbin/mysqld
7月 15 16:34:14 localhost systemd[1]: Starting MySQL Server...
7月 15 16:34:57 localhost systemd[1]: Started MySQL Server.
- 几个默认目录
目录 | 内容 |
---|---|
/usr/bin | 客户端程序、脚本 |
/usr/sbin | mysqld服务器 |
/var/lib/mysql | 日志文件、数据库文件 |
/usr/share/mysql | 错误消息、字符集文件 |
/etc/my.cnf | 配置文件 |
2. 登录MySQL
请参考:Linux - MySQL 8.0(二)基本操作:远程连接(Yum、Apt)
3. Yum卸载
- 检查已经安装了哪些包
[nangy@nangy-vm ~]$ rpm -qa | grep -i 'mysql-community'
- 删除包(语法而已)
[nangy@nangy-vm ~]$ sudo rpm -e <package-name>
- 删除所有包
你可能会收到有其他包依赖MySQL的通知;
如果你计划再次安装MySQL则可以通过传递--nodeps
选项来忽略依赖警告
[nangy@nangy-vm ~]$ sudo rpm -qa | grep -i mysql-community | xargs sudo rpm -e --nodeps
4. 扩展阅读:托管访问控制系统(SELinux
)
安全增强型 Linux(Security-Enhanced Linux)简称SELinux
,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)。
在使用了 SELinux 的操作系统中,决定一个资源是否能被访问的因素除了某个资源是否拥有对应用户的权限(读、写、执行)之外,还需要判断每一类进程是否拥有对某一类资源的访问权限。
- SELinux 有三种工作模式,分别是:
enforcing
:强制模式。违反SELinux规则的行为将被阻止并记录到日志中。permissive
:宽容模式。违反SELinux规则的行为只会记录到日志中,一般为调试用。disabled
:关闭SELinux,甚至你都没法使用setenforce
。
SELinux工作模式可以在 /etc/selinux/config
中设定。
如果想从 disabled
切换到 enforcing
或者 permissive
的话,需要重启系统。反过来也一样。 enforcing
和 permissive
模式可以通过 setenforce 1|0
命令快速切换。
需要注意的是,如果系统已经在关闭SELinux的状态下运行了一段时间,在打开SELinux之后的第一次重启速度可能会比较慢。因为系统必须为磁盘中的文件创建安全上下文(我表示我重启了大约10分钟,还以为是死机了……)。
SELinux日志的记录需要借助 auditd.service
这个服务,请不要禁用它。
- 临时性操作
使用root
用户,执行setenforce 0
,此操作只对本次生效,如果想持续性生效,请执行下面的持久性配置修改配置文件
# 执行
[root@nangy-vm nangy]$ setenforce 0
# 查询状态
[root@nangy-vm nangy]$ getenforce
Permissive
- 持久性配置
如果想要在重启服务器以后仍然生效,请修改配置文件/etc/selinux/config
将SELINUX=enforcing
改为SELINUX=permissive
[nangy@nangy-vm ~]$ sudo vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
# SELINUX=enforcing
SELINUX=permissive
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
参考文章:SELinux之于MySQL 或者 一文彻底明白linux中的selinux到底是什么
至此,Yum平台在线安装卸载MySQL写完了,如有遗漏或Bug,欢迎吐槽
二、Apt(Debain、Ubuntu)
1. Apt安装
1.1. 安装仓库源config
- 将MySQL APT仓库添加到系统的仓库列表中
你可以从 http://dev.mysql.com/downloads/repo/apt/ 下载MySQL APT仓库;
或者 复制链接位置并使用wget直接将其下载到服务器上,
你可能需要安装wget(sudo apt install wget
) :
# nangy @ nangy-vm in ~/Downloads [23:06:39]
$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
- 命令安装下载的发行包
# nangy @ nangy-vm in ~/Downloads [23:06:48]
$ sudo gdebi mysql-apt-config_0.8.13-1_all.deb
安装过程会提示选择系统版本,我用的deepin15.10.2,基于Debain9的发行版本
所以选择debain stretch【Debian 发行版本】
- 我自己学习就选的
mysql-8.0
,里面也可以选集群模式
或者Other version
- MySQL工具 & 连接器:启用
- MySQL预览包:禁用
- 如果你想更改发行版本
# nangy @ nangy-vm in ~/Downloads [0:28:02]
$ sudo dpkg-reconfigure mysql-apt-config
- 安装完验证
/etc/apt/sources.list.d
目录下会生成mysql的仓库源config配置mysql.list
# nangy @ nangy-vm in ~/Downloads [23:30:53]
$ cat /etc/apt/sources.list.d/mysql.list
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out entries below, but any other modifications may be lost.
# Use command 'dpkg-reconfigure mysql-apt-config' as root for modifications.
deb http://repo.mysql.com/apt/debian/ stretch mysql-apt-config
deb http://repo.mysql.com/apt/debian/ stretch mysql-8.0
deb http://repo.mysql.com/apt/debian/ stretch mysql-tools
#deb http://repo.mysql.com/apt/debian/ stretch mysql-tools-preview
deb-src http://repo.mysql.com/apt/debian/ stretch mysql-8.0
1.2. 安装MySQL
- 更新MySQL APT仓库包信息(
此步骤是必需的
)
如果不更新,安装还是历史旧版本
# nangy @ nangy-vm in ~/Downloads [23:31:51]
$ sudo apt update
- 安装MySQL社区版
在安装过程中,你需要为root
用户设置初始登录密码;
请务必牢记密码;如果忘记了密码,则必须重置root
密码;
这一步将安装MySQL Server,以及客户端和数据库公共文件的软件包
# nangy @ nangy-vm in ~/Downloads [23:42:10]
$ sudo apt install mysql-community-server
- 验证包
ii
表示软件包己安装
# nangy @ nangy-vm in ~/Downloads [23:47:30]
$ dpkg -l | grep -i mysql
ii mysql-apt-config 0.8.13-1 all Auto configuration for MySQL APT Repo.
ii mysql-client 8.0.16-2debian9 amd64 MySQL Client meta package depending on latest version
ii mysql-common 8.0.16-2debian9 amd64 Common files shared between packages
ii mysql-community-client 8.0.16-2debian9 amd64 MySQL Client
ii mysql-community-client-core 8.0.16-2debian9 amd64 MySQL Client Core Binaries
ii mysql-community-server 8.0.16-2debian9 amd64 MySQL Server
ii mysql-community-server-core 8.0.16-2debian9 amd64 MySQL Server Core Binaires
- 启动停止MySQL
# 启动
# nangy @ nangy-vm in ~/Downloads [23:42:10]
$ sudo service mysql start
# 停止
# nangy @ nangy-vm in ~/Downloads [23:42:10]
$ sudo service mysql stop
# 重启
# nangy @ nangy-vm in ~/Downloads [23:42:10]
$ sudo service mysql restart
- 查看状态
# nangy @ nangy-vm in ~/Downloads [9:11:37]
$ sudo service mysql status
[sudo] nangy 的密码:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: "active (running)" since Tue 2019-07-16 07:56:19 CST; 1h 16min ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 5094 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 5196 (mysqld)
Status: "SERVER_OPERATING"
Tasks: 41 (limit: 19660)
CGroup: /system.slice/mysql.service
└─5196 /usr/sbin/mysqld
7月 16 07:54:50 nangy-vm systemd[1]: Starting MySQL Community Server...
7月 16 07:56:19 nangy-vm systemd[1]: Started MySQL Community Server.
2. 登录MySQL
请参考:Linux - MySQL 8.0(二)基本操作:远程连接(Yum、Apt)
# nangy @ nangy-vm in ~/Downloads [23:47:52]
$ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.16 MySQL Community Server - GPL
Copyright (c) 2000, 2019, 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 |
| sys |
+--------------------+
4 rows in set (0.00 sec)
3. Apt卸载
- 检查是否有任何现有的包
# nangy @ nangy-vm in ~/Downloads [00:00:30]
$ dpkg -l | grep -i mysql
- 使用以下命令删除包
- 若想谨慎点话,卸载指定包
sudo apt autoremove --purge mysql-client mysql-common mysql-community-client mysql-community-client-core mysql-community-server mysql-community-server-core
- 或者,如不想麻烦的话,使用通配符(
慎用,除非你知道你在干啥
)
# nangy @ nangy-vm in ~/Downloads [23:57:54]
$ sudo apt autoremove --purge mysql-\*
- 选择是否移除数据文件
至此,Apt平台在线安装卸载MySQL写完了,如有遗漏或Bug,欢迎吐槽