「Debian」- 安装 MySQL 数据库(使用 APT 安装)

  CREATED BY JENKINSBOT

问题描述

这原本应该很简单,执行apt-get install mysql-server命令就可以了。但实际情况可能会复杂一些:

	(1)我们目前使用的发行版是 Debian 8,源里只有 MySQL-5.5;
	(2)由于系统中已安装的某些包依赖于 MySQL 5.5(比如 mailutils),这就导致在系统中已安装“**部分**”MySQL相关包的文件(比如**/etc/mysql**配置文件);
	(3)如果直接使用源码编译或者安装已编译的二进制包,由于上面提到的已经存在的配置文件会导致MySQL的配置和管理变得混乱。你可能还要在你的配置文件里覆盖发行版的MySQL的配置;

因为上面的这些原因,我决定还是想办法从发行版的源里安装 MySQL 5.7。不使用源码自作聪明的去自己编译,也不使用预编译的二进制包。

Debian 10 and MySQL 5.7

第一步、添加官方仓库

安装,需要添加 MySQL 官方源,访问 Download MySQL APT Repository 下载 mysql-apt-config 包到本地,并安装:

#!/bin/sh

wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
dpkg -i mysql-apt-config_0.8.10-1_all.deb

配置,在安装过程中,需要配置以选择所需版本:选 MySQL Server & Cluster => ENTER 进入 MySQL 服务版本的选择。因为我们要安装 MySQL 5.7 数据库,选择 mysql-5.7,按下 ENTER 确认,到此 MySQL 的 APT 包仓库就添加并设置结束了。

更新,执行命令更新本地缓存:

#!/bin/sh

apt-get update

第二步、安装数据库

进行安装,现在可以执行apt-get install命令进行安装:

#!/bin/sh

# 查看可用版本
apt-cache show mysql-server
apt-cache policy mysql-server

# 安装特定版本
apt-get install mysql-server=5.7.29-1debian9

设置密码,在安装过程中,会提示你输入数据库 ROOT 密码。

第四步、验证服务版本

检查已经安装的 MySQL 是否为 5.7 版本,执行如下命令:

#!/bin/sh

mysql --version

从输出中可以看出当前为 MySQL 5.7.22 版本。

第五步、启动服务并连接

我们测试系统为 Debian 10,默认使用的 systemd 进行管理服务:

#!/bin/sh

# 启动服务
systemctl start mysql.service

# 设置服务开机启动
systemctl enable mysql.service

# 连接数据库
mysql -h127.0.0.1 -uroot -p

附加说明

在 Debian 10 中,MySQL 配置文件为 /etc/mysql/conf.d/mysqld.cnf(可以手动创建)。使用 mysql --help | grep "Default options" -C 3 命令查看配置文件加载路径。

参考文献

How to install MySQL v5.7 using apt-get?
understanding the output of “apt-cache policy”
MySQL where’s the my.cnf path?