Linux版本:Rocky Linux 9.7 (Blue Onyx)
Mariadb版本:11.8.8
mariadb安装包选择,选择linux-systemd安装包
包名称一般为mariadb-11.8.8-linux-systemd-x86_64.tar.gz这样的,什么是linux-systemd?linux-systemd 是 MariaDB 官方预编译二进制压缩包,内置 sytemd service 文件。普通 generic包只有老旧 mysql.server(sysvint脚本),没有预知systemd unit,需要手动写 service 文件。
99%的现代服务器推荐选择安装 linux-systemd 包。
安装约定
- mariadb主程序安装到/usr/local/mysql 目录
本来是想安装到/usr/local/mariadb目录的,但是发现 mariadb.service 和 mariadb-secure-installation 里的路径都是 /usr/local/mysql,而且都是硬编码的,如果不按照到 /usr/local/mysql 目录,那这两个自带的文件就不能用。
- 数据库文件存放到 /sangfor/server/mysql/data 目录
安装配置
1、安装系统依赖
dnf clean all
dnf install -y libaio openssl-devel gcc
2、创建mysql运行用户组
Rocky 9 无默认 mysql 用户,手动创建:
groupadd mysql
useradd -s /sbin/nologin -g mysql -M mysql
3、上传文件到/sangfor/software/mariadb目录
mkdir -p /sangfor/software/mariadb
4、解压缩文件,并重命名为/usr/local/mysql
tar zxvf mariadb-11.8.8-linux-systemd-x86_64.tar.gz
mv mariadb-11.8.8-linux-systemd-x86_64 /usr/local/mysql
5、创建独立数据目录
mkdir -p /sangfor/server/mysql/data
6、设置数据目录权限
chown -R mysql:mysql /sangfor/server/mysql/data
chmod 700 /sangfor/server/mysql/data # 这句需不需要还待定
7、配置环境变量/etc/profile.d/paths.sh
MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
8、重载环境变量
source /etc/profile.d/paths.sh
9、编写配置文件 /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/sangfor/server/mysql/data
socket=/tmp/mysql.sock
pid-file=/sangfor/server/mysql/data/mysql.pid
port=3306
# 服务端正确参数,不要写default-character-set
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
lower_case_table_names=1
# InnoDB通用调参
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
innodb_flush_log_at_trx_commit=1
sync_binlog=1
# 二进制日志(11.8支持传统位点+GTID,无需强制GTID)
log_bin=binlog
binlog_format=mixed
server-id=1
max_connections=1000
skip-name-resolve
log-error=/sangfor/server/mysql/data/msyql-error.log
# 客户端段放 default-character-set
[client]
socket=/tmp/mysql.sock
default-character-set=utf8mb4
[mariadb]
socket=/tmp/mysql.sock
#default-character-set=utf8mb4
[mysql]
socket=/tmp/mysql.sock
#default-character-set=utf8mb4
10、初始化数据库
/usr/local/mysql/scripts/mariadb-install-db \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/sangfor/server/mysql/data
11、注册自带 systemd 服务
cd /usr/local/mysql
# 复制官方预制service文件
cp support-files/systemd/mysql.service /usr/lib/systemd/system/
# 重载systemd识别服务
systemctl daemon-reload
# 设置开机自启 + 立即启动
systemctl enable --now mysql
# 查看运行状态
systemctl status mysql
也可以是mariadb版本
cd /usr/local/mysql
# 复制官方预制service文件
cp support-files/systemd/mariadb.service /usr/lib/systemd/system/
# 重载systemd识别服务
systemctl daemon-reload
# 设置开机自启 + 立即启动
systemctl enable --now mariadb
# 查看运行状态
systemctl status mariadb
12、执行安全操作
mysql_secure_installation