Step7—Mariadb初始化
# 使用 MariaDB 10 搭建高效稳定的数据库环境 🛠️
在大数据管理和企业级应用中,MariaDB 是 MySQL 的优秀替代方案,提供了更好的性能和兼容性。本文将介绍 为什么选择 MariaDB 10,以及如何在 CentOS 7 上正确安装和配置它,以 支持 Ambari 和其他大数据组件。
# 1. 为什么选择 MariaDB 10? 🤔
在生产环境中,数据库的版本选择至关重要。我们推荐使用 MariaDB 10,主要基于以下考虑:
# 1.1 避免 Ambari 表结构初始化错误
Ambari 作为 Hadoop 生态的大数据管理平台,在初始化数据库表结构时,需要支持 utf8mb4 字符集。如果使用 低版本的 MariaDB(如 5.x),会出现 索引长度过长 的错误:
Specified key was too long; max key length is 767 bytes
而 MariaDB 10+ 默认支持 utf8mb4,可以避免这些错误,确保 Ambari 数据库的正常初始化。
# 1.2 解决汉化版本的乱码问题
在 低版本 MariaDB 中,即使数据库配置了 utf8mb4,在汉化版本的 Ambari 上,仍然可能出现 乱码(问号 ???
)。MariaDB
10+ 解决了字符集兼容性问题,确保 中文数据正常显示。
# 1.3 提供更强的 InnoDB 引擎优化
MariaDB 10 改进了 InnoDB 存储引擎,相比早期版本:
✅ 支持更大的 innodb_buffer_pool_size,提升查询性能。
✅ 支持更灵活的事务日志管理(innodb_log_file_size),提高事务稳定性。
✅ 改进 InnoDB 线程管理(innodb_thread_concurrency),增强并发能力。
# 1.4 Aliyun 镜像源可能变动,安装前请确认最新版本
Aliyun 提供的 MariaDB 镜像 会不定期更新或调整仓库路径,在安装前建议 访问网站查看最新的 YUM 源版本情况:
🔗 MariaDB 阿里 YUM 源 (opens new window)
# 2. 配置 YUM 源并安装 MariaDB 10 📥
# 2.1 确保系统没有旧版本 MariaDB
yum remove -y mariadb mariadb-server
防止旧版本冲突,确保干净安装 MariaDB 10+。
# 2.2 配置 MariaDB 官方 YUM 源
访问 MariaDB 官网 查找 最新的 YUM 源,然后创建 YUM 配置文件:
vim /etc/yum.repos.d/mariadb.repo
添加以下内容:
[mariadb]
name=MariaDB Repository
baseurl=https://mirrors.aliyun.com/mariadb/yum/10.11/centos7-amd64
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=1
2
3
4
5
6
📌 注意:请根据 MariaDB 官网 提供的最新版本 更新
baseurl
,以确保镜像源可用。
# 2.3 安装 MariaDB 服务器
yum clean all
yum makecache
yum install -y MariaDB-server MariaDB-client
2
3
验证安装成功
mariadb --version
如果成功返回 10.x.x
版本号,说明安装完成。
# 3. 配置 MariaDB 服务器 🛠️
# 3.1 修改 MariaDB 配置
vim /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
# 字符集支持 utf8mb4(防止中文乱码)
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
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
# 4. 初始化 MariaDB 数据库 📌
# 4.1 初始化数据库目录
mysql_install_db --user=mysql --datadir=/var/lib/mysql
# 4.2 启动 MariaDB
systemctl restart mariadb
systemctl enable mariadb
2
检查服务状态:
systemctl status mariadb
如果状态为 active (running),则数据库已正常运行。
# 5. MariaDB 安全配置 🔒
MariaDB 默认安装后需要 执行安全配置 来提升数据库的安全性:
mariadb-secure-installation
按以下方式操作:
- Enter current password for root (enter for none): 直接回车(默认无密码)。
- Change the root password? 选择
y
,然后输入新密码(例如root
)。 - Remove anonymous users? 选择
y
(移除匿名用户)。 - Disallow root login remotely? 选择
n
(允许远程 root 访问)。 - Remove test database and access to it? 选择
y
(删除测试数据库)。 - Reload privilege tables now? 选择
y
(刷新权限表)。
# 6. 配置远程访问 🌍
默认情况下,MariaDB 只允许 本地访问,我们需要手动开启远程访问:
# 6.1 在数据库中创建远程用户
mysql -uroot -p
然后执行:
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
2
3
'root'@'%'
代表 允许任何 IP 访问数据库。FLUSH PRIVILEGES;
使权限修改立即生效。
# 6.2 在客户端验证远程连接
在客户端(192.168.3.2)上执行:
mysql -uroot -p'root' -h 192.168.3.1 -e "SELECT 1;"
如果返回 1
,说明远程访问已配置成功。