CentOS 7 离线安装软件(三)-- 关系数据库

MariaDB是由原来MySQL的作者创办的公司所开发的免费开源的数据库服务器,完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

准备

仔细阅读官网的这几个页面内容:

CentOS 7上安装MariaDB,我选择下载压缩包的方式,原因在于发现其没有依赖,按照官方指南解压并配置后直接可运行,而且包括加入Systemd开机自启动👍。

下载

本文选择最后一种安装方式,点击打开 官网下载地址 ,根据提示选择10.6这个为期五年的长期支持版本系列:

  • Server Version: 10.6.11
  • Operation System: linux
  • Architecture: x86_64
  • Package Type: Systemd
  • Mirror: Alibaba Cloud

MariaDB 官网下载

点击Download按钮即可开始下载,这里直接给出下载地址: mariadb-10.6.11-linux-systemd-x86_64.tar.gz ,另外一个文件galera-26.4.13用于集群,用不着就不下载它了。

配置

创建数据目录

mkdir -p /data/mariadb

修改 my.cnf

vi /etc/my.conf
[mysqld]
user = mysql
# 因为是二进制压缩包解压方式安装,故需要明确指定基础目录
basedir = /usr/local/mysql
datadir = /data/mariadb
pid-file = /data/mariadb/mysql.pid

log-bin = mysql-bin
expire-logs-days = 10

# 忘记 root 密码,可以临时取消这个选项的注释
# skip-grant-tables
# 用户登录权限设为 IP 地址后可以取消以下注释加速
# skip-name-resolve
skip-external-locking
skip-character-set-client-handshake
log-queries-not-using-indexes

character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init-connect = 'SET NAMES utf8mb4'

修改 mysql-clients.cnf

vi /etc/my.cnf.d/mysql-clients.cnf
[client]
# 字符集
default-character-set = utf8mb4

安装

将下载好的文件mariadb-10.6.11-linux-systemd-x86_64.tar.gz上传至虚拟机当前用户的主目录下。然后执行以下命令:

groupadd mysql
useradd -g mysql mysql

cd /usr/local
tar -zxvpf ~/mariadb-10.6.11-linux-systemd-x86_64.tar.gz
ln -s mariadb-10.6.11-linux-systemd-x86_64 mysql

cd mysql
./scripts/mysql_install_db --user=mysql
chown -R mysql:mysql /data/mariadb

cp support-files/systemd/mariadb.service /usr/lib/systemd/system/mariadb.service
systemctl daemon-reload

这些命令完成以下任务:

  • 创建用户 mysql用户组 mysql
  • 解压 tar 包到目录/usr/local
  • 建立软连接 mariadb-10.6.11-linux-systemd-x86_64 -> mysql
  • 数据库初始化,修改自定义数据目录的Owner
  • mariadb安装为Systemd服务,重载(应用)服务配置,启动mariadb服务

验证

启动服务:

systemctl start mariadb
[root@my-centos7 mysql]# systemctl start mariadb
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.

[root@my-centos7 mysql]# systemctl status mariadb
...[/usr/lib/systemd/system/mariadb.service:65] Unknown lvalue 'ReadWritePaths' in section 'Service'

启动失败,原因在于mariadb.service文件中配置项ReadWritePaths的值(路径)无效(不存在),打开文件/usr/lib/systemd/system/mariadb.service进行修改,把此项注释掉,然后再次重载配置并启动服务:

systemctl daemon-reload
systemctl start mariadb

OK!

开机自启动

systemctl enable mariadb