CentOS服务器安装MySQL数据库教程
CentOS 服务器安装 MySQL 数据库详细教程
本文将详细介绍在 CentOS 服务器上安装 MySQL 数据库的步骤,涵盖了从准备环境到配置安全性的整个过程。我们将使用 YUM 包管理器进行安装,这是 CentOS 上最常用的方法。本文以 CentOS 7 和 CentOS 8 为例,并指出两者之间的细微差别。
一、 准备工作
-
服务器环境: 确保你的 CentOS 服务器已连接到互联网,并且具有 root 用户权限或 sudo 权限。
-
更新系统: 在开始安装之前,建议更新系统软件包到最新版本,以确保获得最新的安全补丁和功能:
bash
sudo yum update -y -
检查是否已安装MySQL (可选): 如果你不确定服务器上是否已经安装了MySQL,可以使用以下命令检查:
bash
rpm -qa | grep mysql
如果没有任何输出,说明没有安装。如果有输出,表示已经安装了某个版本的MySQL,你可以选择卸载旧版本或进行版本升级(本文不涉及升级步骤)。
二、 安装 MySQL (CentOS 7)
CentOS 7 默认的 YUM 仓库中可能包含较旧的 MySQL 版本。为了安装较新的版本(如 MySQL 8.0),我们需要先添加 MySQL 的官方 YUM 仓库。
-
添加 MySQL YUM 仓库:
-
下载仓库配置文件:
bash
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
(注意:el7-7
中的数字可能会根据最新版本而变化,请访问 MySQL YUM Repository 页面获取最新的下载链接。) -
验证仓库包:
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
-
-
安装 MySQL 服务器:
bash
sudo yum install mysql-community-server -y -
启动 MySQL 服务:
bash
sudo systemctl start mysqld -
设置开机自启动:
bash
sudo systemctl enable mysqld -
检查 MySQL 服务状态:
bash
sudo systemctl status mysqld
如果看到 "active (running)",则表示 MySQL 服务已成功启动。
三、 安装 MySQL (CentOS 8)
CentOS 8 的 AppStream 仓库中已经包含了 MySQL 8.0,因此安装过程相对简单。
-
安装 MySQL 服务器:
bash
sudo yum install @mysql -y
或者
bash
sudo dnf install @mysql -y
@mysql
是一个模块流,它包含了 MySQL 及其相关组件。 -
启动 MySQL 服务:
bash
sudo systemctl start mysqld -
设置开机自启动:
bash
sudo systemctl enable mysqld -
检查 MySQL 服务状态:
bash
sudo systemctl status mysqld
四、 安全配置 MySQL
安装完成后,MySQL 的默认配置并不安全。我们需要运行 mysql_secure_installation
脚本来进行安全设置。
-
运行安全配置脚本:
bash
sudo mysql_secure_installation -
脚本会询问一系列问题,以增强安全性:
- VALIDATE PASSWORD PLUGIN (CentOS 8, 可选): 是否启用密码强度验证插件?建议启用,输入
y
并选择密码强度级别(0-LOW, 1-MEDIUM, 2-STRONG)。CentOS 7 上没有这个选项。 - Set root password? 设置 root 用户的密码。输入
y
并设置一个强密码(包含大小写字母、数字和特殊字符)。请务必记住这个密码! - Remove anonymous users? 移除匿名用户?输入
y
。 - Disallow root login remotely? 禁止 root 用户远程登录? 出于安全考虑,建议输入
y
。如果需要远程管理,可以创建一个具有特定权限的非 root 用户。 - Remove test database and access to it? 移除测试数据库和对它的访问权限?输入
y
。 - Reload privilege tables now? 立即重新加载权限表?输入
y
。
- VALIDATE PASSWORD PLUGIN (CentOS 8, 可选): 是否启用密码强度验证插件?建议启用,输入
五、 登录 MySQL
现在,你可以使用新设置的 root 密码登录 MySQL 了:
bash
mysql -u root -p
系统会提示你输入密码,输入你刚刚设置的 root 密码即可。
成功登录后,你会看到 MySQL 的提示符:
mysql>
六、 基本 MySQL 命令 (示例)
登录 MySQL 后,你可以执行各种 SQL 命令来管理数据库。以下是一些常用的命令:
-
显示所有数据库:
sql
SHOW DATABASES; -
创建数据库:
sql
CREATE DATABASE mydatabase; -
使用数据库:
sql
USE mydatabase; -
创建表:
sql
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL
); -
插入数据:
sql
INSERT INTO users (username, password) VALUES ('john_doe', 'secure_password'); -
查询数据:
sql
SELECT * FROM users; -
退出 MySQL:
sql
EXIT;
七、 远程连接 MySQL (可选)
如果你允许了 root 用户远程登录 (不推荐),或者创建了具有远程访问权限的其他用户,你需要进行以下配置才能从其他机器连接到 MySQL 服务器:
-
修改 MySQL 配置文件:
打开 MySQL 的配置文件(通常位于
/etc/my.cnf
或/etc/mysql/my.cnf
)。
找到bind-address
这一行。默认情况下,它可能被设置为127.0.0.1
,这意味着 MySQL 只监听本地连接。
将其注释掉(在行首添加#
)或者将其改为服务器的 IP 地址:```
bind-address = 127.0.0.1
bind-address = 你的服务器IP地址
``` -
重启 MySQL 服务:
bash
sudo systemctl restart mysqld -
防火墙设置(重要):
如果你的服务器启用了防火墙(例如 firewalld 或 iptables),你需要允许外部访问 MySQL 的默认端口(3306): -
firewalld:
bash
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload -
iptables (如果使用iptables而不是firewalld):
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
sudo service iptables save #CentOS 7
sudo iptables-save > /etc/sysconfig/iptables # CentOS 7, 更持久的保存
sudo systemctl restart iptables #CentOS 7
或者对于CentOS8:
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
sudo dnf install iptables-services # 如果还没有安装
sudo systemctl enable --now iptables
sudo iptables-save > /etc/iptables/rules.v4 #IPv4 rules
sudo iptables-save > /etc/iptables/rules.v6 #IPv6 rules (如果需要) -
授权远程用户:
登录到 MySQL,并执行以下命令(将 'your_user'
、'your_password'
和 'your_client_ip'
替换为实际值):
sql
GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'your_client_ip' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
* 'your_user'
:你要创建的用户名。
* 'your_password'
:用户的密码。
* 'your_client_ip'
:允许连接的客户端 IP 地址。可以使用 %
通配符表示允许所有 IP 地址连接(非常不安全!强烈建议指定具体的 IP 地址)。
八、 总结
至此,你已经在 CentOS 服务器上成功安装并配置了 MySQL 数据库。请务必牢记 root 用户的密码,并根据实际需求创建其他用户和数据库。 强烈建议阅读MySQL官方文档,以了解更多高级配置和安全最佳实践。 希望本教程对你有所帮助!