在 CentOS 系统上安装和配置 MariaDB 数据库管理系统,是一个常见的任务,MariaDB 是 MySQL 的一个分支,由开源社区维护,旨在保持与 MySQL 的高度兼容性,同时提供一些额外的功能和改进,以下是关于如何在 CentOS 7 上安装和配置 MariaDB 的详细步骤:
安装 MariaDB
1. 使用 YUM 安装 MariaDB
CentOS 7 提供了一种方便的包管理工具 YUM,可以通过以下命令安装 MariaDB:
sudo yum install mariadbserver mariadb
这个命令将安装 MariaDB 服务器和客户端软件包,安装完成后,MariaDB 服务会自动启动,并设置为开机自启动。
2. 使用二进制包安装 MariaDB
对于需要更灵活安装选项的用户,可以选择下载 MariaDB 的二进制包进行安装,从 MariaDB 官网下载最新版本的二进制包,然后解压到指定目录,按照以下步骤进行安装:
上传并解压二进制包:将下载的 MariaDB 二进制包上传到服务器,并解压到指定目录。
创建软链接:为解压后的 MariaDB 可执行文件创建软链接,以便在命令行中直接调用。
创建 MariaDB 用户和数据目录:创建一个专用的 MariaDB 用户和数据存储目录,确保数据安全。
添加 MariaDB 到 PATH:将 MariaDB 的 bin 目录添加到系统的 PATH 环境变量中,以便在任何位置都可以运行 MariaDB 命令。
初始化数据库:运行 MariaDB 安装脚本以初始化数据库和相关设置。
启动 MariaDB 服务:使用 systemctl 命令启动 MariaDB 服务,并设置为开机自启动。
3. 源码编译安装 MariaDB
对于高级用户或特定需求,可以选择从源码编译安装 MariaDB,这通常涉及以下几个步骤:
下载源码:从 MariaDB 官网或 GitHub 仓库下载最新的 MariaDB 源码。
依赖安装:确保系统已安装编译所需的依赖库和工具,如 gcc、make 等。
编译源码:进入源码目录,运行 make 命令进行编译,根据需要,可以指定编译选项来定制安装。
安装 MariaDB:编译完成后,运行 make install 命令将 MariaDB 安装到系统中。
配置 MariaDB:根据需求配置 MariaDB,如设置字符集、优化参数等。
启动 MariaDB 服务:同样使用 systemctl 命令启动 MariaDB 服务,并设置为开机自启动。
配置 MariaDB
1. 基本配置
安装完成后,需要进行一些基本的配置来确保 MariaDB 的安全和稳定运行,运行以下命令启动 MariaDB 服务,并设置为开机自启动:
sudo systemctl start mariadb sudo systemctl enable mariadb
运行mysql_secure_installation
命令进行安全配置,该命令将引导完成一系列安全相关的设置,包括设置 root 密码、删除匿名用户、禁止 root 远程登录等。
2. 字符集设置
为了支持多种语言和字符集,可能需要修改 MariaDB 的默认字符集设置,这可以通过编辑 MariaDB 配置文件(通常位于/etc/my.cnf
)来实现,在[mysqld]
标签下添加以下几行配置:
init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' charactersetserver=utf8 collationserver=utf8_unicode_ci skipcharactersetclienthandshake
这些设置将确保 MariaDB 使用 UTF8 字符集作为默认字符集,保存配置文件后,重启 MariaDB 服务使更改生效:
sudo systemctl restart mariadb
常见问题解答
1. MariaDB 和 MySQL 有什么区别?
答:MariaDB 是 MySQL 的一个分支,由原 MySQL 创始人之一的 Michael Widenius 主导开发,它完全兼容 MySQL,但在性能、功能和许可方面有所增强,MariaDB 采用 GPL 授权许可,而 MySQL 在被甲骨文公司收购后采用了更严格的许可条款,MariaDB 还提供了一些独特的功能,如内置的列式存储引擎、地理空间数据支持等。
2. 如果忘记 MariaDB root 密码怎么办?
答:如果忘记了 MariaDB root 用户的密码,可以通过以下步骤重置密码:
停止 MariaDB 服务:使用systemctl stop mariadb
命令停止 MariaDB 服务。
启动 MariaDB 安全模式:使用mysqld_safe skipgranttables &
命令启动 MariaDB,这将跳过权限表的检查。
登录 MariaDB:使用mysql u root
命令登录 MariaDB,此时不需要输入密码。
重置密码:在 MariaDB 提示符下,使用以下 SQL 语句重置 root 用户密码:
```sql
UPDATE mysql.user SET authentication_string=null WHERE User='root';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
```
new_password
是新的密码。
退出并重启 MariaDB:使用exit
命令退出 MariaDB,然后使用systemctl start mariadb
命令重启 MariaDB 服务,现在可以使用新密码登录 MariaDB 了。