如果有其他系统部署需求可以参考原文
https://doc.janettr.com/install/manual/
MariaDB 10 是 Ambari 及大数据平台的常见数据库方案。本文适配 Rocky Linux 8.10,涵盖 MariaDB 10.11 推荐安装、YUM
源配置、参数优化、初始化和安全设置,帮助你一步到位完成兼容性和安全性部署。
本文基于 Rocky 8.10 做的适配,其他 el8 产品(如
CentOS8/Alma8)配置和包名可能会有出入,使用时请留意版本兼容性。如遇疑难可通过 VX 或 QQ 群与作者交流。
1. 为什么选用 MariaDB 10?🤔
- 兼容性好:Ambari、Hadoop 等组件官方推荐 10.x 及以上,支持 utf8mb4,避免表结构或字符集出错。
- 性能与安全提升:10.11 版本 InnoDB 优化、并发性能提升、慢查询日志等企业特性更丰富。
- 主流社区活跃,国内镜像源丰富,便于快速部署。
2. 配置阿里云 MariaDB 10.11 YUM 源
Rocky 8 官方源不自带高版本 MariaDB,建议用阿里云或官方仓库。
sudo tee /etc/yum.repos.d/mariadb.repo <<'EOF'
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.11/rocky8-amd64/
gpgkey = https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled = 1
module_hotfixes = 1
EOF
sudo dnf clean all
sudo dnf makecache
如需最新版,可至 阿里云 MariaDB 镜像 查询对应 Rocky8 最新路径。
3. 安装 MariaDB 服务端与客户端
先卸载老版本残留,避免冲突:
sudo dnf remove -y mariadb mariadb-server mariadb-libs
安装 10.11 版:
sudo dnf install -y MariaDB-server MariaDB-client
验证版本:
mariadb --version
# mariadb Ver 15.1 Distrib 10.11.x-MariaDB, for Linux (x86_64)
4. 配置字符集、性能参数与远程访问
编辑 /etc/my.cnf
(如无则创建):
[client]
default-character-set=utf8mb4
[mysqld]
user=mysql
port=3306
basedir=/usr
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# InnoDB 性能优化
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_thread_concurrency=8
# 允许远程连接
bind-address=0.0.0.0
skip-name-resolve
max_connections=500
# 启用慢查询日志
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow-query.log
long_query_time=2
如有业务节点多、内存充足,可适当调高 innodb_buffer_pool_size
和 max_connections
,按需调整。
5. 初始化数据库并启动服务
sudo mariadb-install-db --user=mysql --datadir=/var/lib/mysql
sudo systemctl restart mariadb
sudo systemctl enable mariadb
查看服务状态:
systemctl status mariadb
6. MariaDB 安全初始化
执行安全加固脚本:
sudo mariadb-secure-installation
根据提示:
- Enter current password for root (enter for none): 回车
- Switch to unix_socket authentication [Y/n]: n
- Change the root password? [Y/n]: y(建议设定强密码)
- Remove anonymous users? [Y/n]: y
- Disallow root login remotely? [Y/n]: n(需要远程请选 n)
- Remove test database and access to it? [Y/n]: y
- Reload privilege tables now? [Y/n]: y
7. 配置 root 远程访问与业务用户授权
登录 MariaDB:
sudo mariadb -uroot -p
在 SQL 提示符下:
CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如需 Ambari/Hive 业务库,预建用户:
CREATE DATABASE IF NOT EXISTS ambari;
CREATE DATABASE IF NOT EXISTS hive;
CREATE USER IF NOT EXISTS 'ambari'@'%' IDENTIFIED BY 'ambari';
CREATE USER IF NOT EXISTS 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
8. 测试远程连接
在其他节点执行:
mysql -uroot -p'root' -h 192.168.3.1 -e "SELECT 1;"
出现 1
说明配置成功。