Step7—Mariadb初始化
MariaDB 10 是 Ambari 及大数据平台的常见数据库方案。本文适配 **Kylin V10 **,涵盖 MariaDB 10.11 推荐安装、YUM 源配置、参数优化、初始化和安全设置,帮助你一步到位完成兼容性和安全性部署。
注意事项
本文基于 Kylin V10 x86_64 做的适配,其他产品配置和包名可能会有出入,使用时请留意版本兼容性。如遇疑难可通过VX 或 QQ 群与作者交流。
# 1. 为什么选用 MariaDB 10?🤔
- 兼容性好:Ambari、Hadoop 等组件官方推荐 10.x 及以上,支持 utf8mb4,避免表结构或字符集出错。
- 性能与安全提升:10.11 版本 InnoDB 优化、并发性能提升、慢查询日志等企业特性更丰富。
- 主流社区活跃,国内镜像源丰富,便于快速部署。
# 2. 配置阿里云 MariaDB 10.11 YUM 源
Kylin 官方源不自带高版本 MariaDB,建议用阿里云或官方仓库。

sudo tee /etc/yum.repos.d/mariadb.repo <<'EOF'
[mariadb]
name = MariaDB
baseurl=https://mirrors.aliyun.com/mariadb/yum/10.11/rhel8-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
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
提示
如需最新版,可至 阿里云 MariaDB 镜像 (opens new window) 查询对应 RHEL8 最新路径。
# 3. 安装 MariaDB 服务端与客户端
先卸载老版本残留,避免冲突:
sudo dnf remove -y mariadb mariadb-server mariadb-libs
1
安装 10.11 版:
sudo dnf install -y MariaDB-server MariaDB-client
1
验证版本:
mariadb --version
# mariadb Ver 15.1 Distrib 10.11.x-MariaDB, for Linux (x86_64)
1
2
2
# 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
default-storage-engine=InnoDB
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
innodb_log_buffer_size=64M
innodb_file_per_table=1
innodb_lock_wait_timeout=50
innodb_buffer_pool_instances=4
innodb_doublewrite=1
innodb_adaptive_hash_index=1
innodb_file_format=Barracuda
innodb_compression_level=6
innodb_fast_shutdown=1
innodb_strict_mode=1
innodb_status_file=1
innodb_stats_on_metadata=0
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
[mysqldump]
default-character-set=utf8mb4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
笔记
如有业务节点多、内存充足,可适当调高 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
1
2
3
2
3
查看服务状态:
systemctl status mariadb
1
# 6. MariaDB 安全初始化
执行安全加固脚本:
sudo mariadb-secure-installation
1
根据提示:
- 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
1
在 SQL 提示符下:
CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
1
2
3
2
3
如需 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;
1
2
3
4
5
6
7
2
3
4
5
6
7
# 8. 测试远程连接
在其他节点执行:
mysql -uroot -p'root' -h 192.168.3.1 -e "SELECT 1;"
1
出现 1 说明配置成功。
- 01
- Ambari开启Kerberos认证加密类型错误 Kylin V1011-05
- 02
- KERBEROS SERVICE CHECK 报错11-04