Linux(systemd)手动离线安装二进制(binary)MairaDB数据库指定版本

有些情况下我们无法使用 apt/yum 管理器安装 MairaDB 数据库,或者我们想为数据库集群安装完全一样的 MairaDB 数据库版本,我这次手动安装的动机就是因为我想组建 MairaDB 数据库集群,并且安装一模一样的数据库版本,方便管理。

有些情况下我们无法使用 apt/yum 管理器安装 MairaDB 数据库,或者我们想为数据库集群安装完全一样的 MairaDB 数据库版本,我这次手动安装的动机就是因为我想组建 MairaDB 数据库集群,并且安装一模一样的数据库版本,方便管理。前置条件在开始之前,我先说明我的安装环境,软件这方面很玄学,运行环境不一样,可能出现奇奇怪怪的问题,而且我的配置是针对我的环境优化配置的,可能并不适合你,所以我先声明我所在的环境信息:

  • OS:Ubuntu 24.04.1 LTS
  • CPU:Intel(R) Xeon(R) Gold 6326 CPU @ 2.90GHz
  • RAM:32G
  • SWAP:8G
  • 下载MairaDB:https://mariadb.org/download/ (不要选择 RC 版本!)

我这里选择下载的是 11.4.4 Linux x86_64 systemd 的压缩包,我下载完成以后文件名为 mariadb-11.4.4-linux-systemd-x86_64.tar.gz,后续需要更换为你自己的文件名。解压安装解压到 /usr/local 目录,当然你可以找个你习惯的地方,解压后进入目录

sudo tar -zxvf mariadb-11.4.4-linux-systemd-x86_64.tar.gz -C /usr/local
cd /usr/local/mariadb-11.4.4-linux-systemd-x86_64

查看安装说明文档

cat INSTALL-BINARY

这个文档中说明的很清楚了,我们跟着文档的指示进行执行即可,我下面也基本参考这个文档进行操作。配置环境和安装

# 创建用户和组
groupadd mysql
useradd -g mysql mysql

# 注意这里的目录,我是解压到了 /usr/local,替换成你的目录
cd /usr/local

# 创建软连接,方便多版本转换,注意你自己的路径和文件夹名称
ln -s /usr/local/mariadb-11.4.4-linux-systemd-x86_64 /usr/local/mysql

# 进入软连接的目录,就是程序的主目录
cd mysql

# 修改所属权限
chown -R mysql .
chgrp -R mysql .

配置数据库/etc/my.cnf在这里需要注意一下,不要着急往下配置,有些参数必须在数据库初始化安装前进行配置,所以不要着急,先停一下,把你需要配置的内容想好,写好/etc/my.cnf,下面我提供我的配置文件,虽然可能不适合你的环境,但你可以进行参考:

[mysqld]
lower_case_table_names=1
port=3306
innodb-page-size=65536
character-set-server=utf8mb4

## * Fine Tuning
max_connections = 300  ## 最大连接数
open_files_limit = 1048576  ## 打开文件数限制

## * Query Cache Configuration
query_cache_type = ON
query_cache_size = 32M
query_cache_limit = 1G
performance_schema = ON
table_open_cache = 3000

## * InnoDB
default-storage-engine = innodb
innodb_file_per_table = 1
innodb_buffer_pool_size = 26G  ## InnoDB存储引擎的缓冲区 70%
innodb_buffer_pool_instances = 1
innodb_flush_log_at_trx_commit = 0
innodb_log_file_size = 5G
innodb_log_buffer_size = 512M
innodb_read_io_threads=16
innodb_write_io_threads=16

key_buffer_size = 10M

skip-name-resolve

max_heap_table_size = 24G

初始化数据库

# 初始化数据库
scripts/mysql_install_db --user=mysql

# 修改目录权限
chown -R root .
chown -R mysql data

# 设置环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin/

# 注册为服务
cp support-files/systemd/mariadb.service /usr/lib/systemd/system/mariadb.service

mkdir /etc/systemd/system/mariadb.service.d/

cat > /etc/systemd/system/mariadb.service.d/datadir.conf <<EOF
[Service]
ReadWritePaths=/usr/local/mysql/data
EOF

# 重新加载服务列表
systemctl daemon-reload
# 启动 mariadb 服务
systemctl start mariadb.service
# 查看 mariadb 服务状态
systemctl status mariadb.service
# 启用 mariadb 服务开机自启
systemctl enable mariadb.service

登录数据库测试

# 登录数据库
mysql -uroot

MariaDB [(none)]> use mysql;
# 设置密码
MariaDB [mysql]> SET password=PASSWORD('newpassward');
MariaDB [mysql]> FLUSH PRIVILEGES;

# 如果需要远程访问还需要下面的命令
MariaDB [mysql]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'newpassward';

到此为止,已经完成二进制(binary)MairaDB数据库的安装步骤。