CentOS 7 离线安装软件(三)-- 关系数据库
☀MariaDB
是由原来MySQL
的作者创办的公司所开发的免费开源的数据库服务器,完全兼容MySQL
,包括API
和命令行,使之能轻松成为MySQL
的代替品。
- CentOS 7 离线安装软件(一)– 操作系统
- CentOS 7 离线安装软件(二)– 安装方式
- CentOS 7 离线安装软件(三)– 关系数据库
- CentOS 7 离线安装软件(四)– 消息队列
- CentOS 7 离线安装软件(五)– 应用容器引擎
准备
仔细阅读官网的这几个页面内容:
在CentOS 7上安装MariaDB
,我选择下载压缩包的方式,原因在于发现其没有依赖,按照官方指南解压并配置后直接可运行,而且包括加入Systemd
开机自启动👍。
下载
本文选择最后一种安装方式,点击打开 官网下载地址 ,根据提示选择10.6这个为期五年的长期支持版本系列:
- Server Version: 10.6.11
- Operation System: linux
- Architecture: x86_64
- Package Type: Systemd
- Mirror: Alibaba Cloud
点击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