此学习文是基于MySQL 8.0写的
得益于大神朋友的悉心指导解决不少坑,才写出此文,向大神奉上膝盖
在安装之前,请记下操作系统和CPU架构,接下来的操作如下面各表所示。
发布号 | 应用于 |
---|---|
el6、 el7 | Red Hat Enterprise Linux、 OracleLinux、 CentOS 6 或 7 |
fc23、 fc24、 fc25 | Fedora 23、 24或25 |
slesl2 | SUSE Linux Enterprise 12 |
CPU型号 | 可用的处理器类型或家族 |
---|---|
i386、 i586、 i686 | 奔腾处理器或更高性能的处理器,32位 |
x86_64 | 64位 x86 处理器 |
iA64 | 安腾(IA-64)处理器 |
CPU型号 | 可用的处理器类型或系列 |
---|---|
i386 | 奔腾处理器或更高性能的处理器,32位 |
AMD64 | 64位 x86 处理器 |
CPU型号 | 可用的处理器类型或系列 |
---|---|
i686 | 奔腾处理器或更高性能的处理器,32位 |
x86_64 | 64位 x86 处理器 |
[nangy@nangy-vm ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[nangy@nangy-vm ~]$ sudo yum update
[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
[nangy@nangy-vm ~]$ sudo rpm -Uvh "https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm"
[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
[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
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 禁用
此步骤是必需的
)# 全清旧数据
[nangy@nangy-vm ~]$ sudo yum clean all
# 建立元数据缓存
[nangy@nangy-vm ~]$ sudo yum makecache
# 更新升级系统
[nangy@nangy-vm ~]$ sudo yum update
[nangy@nangy-vm ~]$ sudo groupadd mysql
[nangy@nangy-vm ~]$ sudo useradd -g 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
# 启动
[nangy@nangy-vm ~]$ sudo systemctl start mysqld
# 停止
[nangy@nangy-vm ~]$ sudo systemctl stop mysqld
# 重启
[nangy@nangy-vm ~]$ sudo systemctl restart mysqld
[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 | 配置文件 |
请参考:Linux - MySQL 8.0(二)基本操作:远程连接(Yum、Apt)
[nangy@nangy-vm ~]$ rpm -qa | grep -i 'mysql-community'
[nangy@nangy-vm ~]$ sudo rpm -e <package-name>
--nodeps
选项来忽略依赖警告[nangy@nangy-vm ~]$ sudo rpm -qa | grep -i mysql-community | xargs sudo rpm -e --nodeps
SELinux
) 安全增强型 Linux(Security-Enhanced Linux)简称SELinux
,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
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,欢迎吐槽
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 发行版本】
# 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
此步骤是必需的
)# nangy @ nangy-vm in ~/Downloads [23:31:51]
$ sudo apt update
root
用户设置初始登录密码;root
密码;# 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
# 启动
# 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.
请参考: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)
# 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,欢迎吐槽