yum
是 CentOS 默认的包管理工具,它可以帮助你从 CentOS 的官方仓库或第三方仓库中轻松安装软件。为了安装 MySQL,通常有两种常见方式:安装 MySQL 官方的仓库版本,或者安装默认的 MariaDB(CentOS 7 默认安装的数据库)。
说明:MariaDB 是一个开源的关系型数据库管理系统,由 MySQL 的原始开发者在 Oracle 收购 MySQL 后分支开发而来,旨在保持开源和社区驱动的特性。它与 MySQL 在语法、API 以及数据文件格式上高度兼容,用户在大多数情况下可以直接将 MySQL 无缝迁移到 MariaDB。MariaDB 继承了 MySQL 的高性能与稳定性,同时在版本更新中不断引入新的存储引擎、安全机制和优化功能,例如 Aria、ColumnStore 以及更先进的复制和集群方案。由于其免费、跨平台、性能优秀且兼容性好,MariaDB 在网站建设、企业应用以及云数据库服务中被广泛使用。
使用官方 MySQL 仓库安装 MySQL
官方 MySQL 提供了自己的 YUM 仓库,可以通过以下步骤安装。
下载并安装MySQL的官方YUM库文件
使用以下命令来下载rpm配置包:wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
安装 MySQL YUM 仓库
安装刚才下载的rpm包:rpm -ivh mysql80-community-release-el7-3.noarch.rpm
安装 MySQL
安装完 MySQL 官方仓库配置之后,你可以使用 yum
安装 MySQL 数据库:yum install --nogpgcheck mysql-server
启动 MySQL 服务并且设置为开机自启
systemctl start mysqld
systemctl enable mysqld
获取临时 root 密码
MySQL 安装完成后,会生成一个临时的 root 密码,并保存在 /var/log/mysqld.log
文件中。
可以通过以下命令查看:grep 'temporary password' /var/log/mysqld.log
配置 MySQL
使用临时密码登录 MySQL 并设置新的 root 密码:mysql -u root -p
然后,输入临时密码后,可以通过 ALTER
语句修改 root 密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'New_password';
并使用以下语句刷新数据库权限:FLUSH PRIVILEGES;
注:MySQL有密码的策略要求,简单的密码无法通过MySQL的要求,请尽量使用复杂密码
完成安装
已经成功安装并启动MySQL,请使用复杂的管理密码,如有必要,可选仅对localhost开放。
使用YUM仓库里默认的 MariaDB
“服务三板斧”:安装,启动,并且设置开机自启
yum clean all && yum makecache #更新yum数据库
yum install mariadb-server #安装
systemctl start mariadb #启动
systemctl enable mariadb #开机自动启动
配置 MariaDB
执行mysql_secure_installation
以初始化MariaDB。
这个命令将引导你设置 root 密码、删除匿名用户、禁用远程 root 登录等安全配置。
登录 MariaDB
mysql -u root -p
结语
- 使用 MySQL 官方仓库:适用于你需要安装 MySQL 官方版本的情况。
- 使用 MariaDB:MariaDB 是 CentOS 默认的数据库,可以直接使用
yum
安装,通常与 MySQL 兼容。
安装 MySQL 后,别忘了配置防火墙、启用远程访问等,以确保数据库能正常工作。
附加:使防火墙放行数据库端口
永久放行端口
firewall-cmd --permanent --add-port=3306/tcp #放行TCP 3306端口
firewall-cmd --reload #重新加载防火墙规则
firewall-cmd --list-ports # 验证是否已经放行。如果输出里包含 3306/tcp,说明规则已生效。
如果想放行给特定 IP,而不是全部开放,可以这样:
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' \
source address='192.168.1.100' port protocol='tcp' port='3306' accept" \
firewall-cmd --reload
这样只有 192.168.1.100
才能访问数据库。
- 除了防火墙,还要确保 MariaDB 配置文件
my.cnf
中的bind-address
允许外部访问(默认可能是127.0.0.1
或者localhost
)