在Linux操作系统上搭建MySQL数据库环境是许多开发者和运维人员的必备技能,MySQL作为开源的关系型数据库管理系统,广泛应用于Web应用、数据存储等场景,本文将以主流的Linux发行版(如CentOS/RHEL和Ubuntu/Debian)为例,详细说明从环境准备到MySQL安装、配置、安全初始化及测试验证的全过程,帮助读者顺利完成MySQL环境的搭建。
环境准备
在开始安装MySQL之前,需确保系统满足基本要求,并完成相关配置。
系统要求
- 操作系统:支持CentOS 7+/RHEL 7+、Ubuntu 18.04+/Debian 9+等主流发行版。
- 硬件资源:建议至少2GB内存、1GB可用磁盘空间(生产环境需根据数据量调整)。
- 网络配置:确保系统可以访问MySQL官方仓库(若使用在线安装)。
安装工具准备
- CentOS/RHEL:需安装
yum
或dnf
包管理工具,确保网络连通性。 - Ubuntu/Debian:需安装
apt
包管理工具,更新软件包列表(sudo apt update
)。
不同发行版的安装工具对比
发行版系列 | 包管理工具 | 推荐MySQL版本 | 仓库配置方式 |
---|---|---|---|
CentOS/RHEL | yum/dnf | MySQL 8.0 | 官方RPM仓库 |
Ubuntu/Debian | apt | MySQL 8.0 | 官方APT仓库 |
安装MySQL
根据不同Linux发行版,MySQL的安装方式存在差异,以下是具体步骤。
CentOS/RHEL系统安装
(1)添加MySQL官方仓库
MySQL提供了官方Yum仓库,需下载并添加对应的仓库配置文件,以MySQL 8.0为例:
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm -y
安装完成后,可通过以下命令验证仓库是否添加成功:
sudo yum repolist enabled | ".*" ".*" | grep ".*" | grep ".*"
(2)安装MySQL服务器
sudo yum install mysql-community-server -y
Ubuntu/Debian系统安装
(1)添加MySQL官方APT仓库
首先下载MySQL官方的APT配置包并添加到系统中:
sudo apt install wget -y wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb
在配置过程中,选择“OK”确认默认的MySQL版本(如MySQL 8.0),然后更新软件包列表:
sudo apt update
(2)安装MySQL服务器
sudo apt install mysql-server -y
验证安装
安装完成后,启动MySQL服务并检查运行状态:
# 启动MySQL服务(CentOS/RHEL) sudo systemctl start mysqld # 启动MySQL服务(Ubuntu/Debian) sudo systemctl start mysql # 检查服务状态 sudo systemctl status mysql
若显示“active (running)”,则表示MySQL已成功启动。
配置MySQL
安装完成后,需对MySQL进行基础配置,包括设置开机自启、修改初始配置等。
设置开机自启
# CentOS/RHEL sudo systemctl enable mysqld # Ubuntu/Debian sudo systemctl enable mysql
查看并修改初始密码
MySQL安装后会为root用户生成一个临时密码(仅CentOS/RHEL系统),可通过以下命令查看:
sudo grep 'temporary password' /var/log/mysqld.log
Ubuntu/Debian系统安装后可能无初始密码,需手动设置,登录MySQL后,使用ALTER USER
命令修改密码:
mysql -u root -p ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword!';
(密码需包含大小写字母、数字和特殊字符,长度至少8位)
修改配置文件(可选)
如需调整MySQL参数(如端口号、字符集等),可编辑配置文件:
- CentOS/RHEL:
/etc/my.cnf
- Ubuntu/Debian:
/etc/mysql/mysql.conf.d/mysqld.cnf
修改字符集为utf8mb4:
[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
修改后需重启MySQL服务使配置生效:
sudo systemctl restart mysql
安全初始化
MySQL提供了mysql_secure_installation
脚本,用于快速完成安全配置,包括:
- 设置root密码(若未设置)
- 移除匿名用户
- 禁止root远程登录
- 移除测试数据库
- 重新加载权限表
执行以下命令启动脚本:
sudo mysql_secure_installation
根据提示输入“Y”确认即可完成安全初始化。
测试与验证
登录MySQL
使用root用户及密码登录:
mysql -u root -p
成功登录后,执行以下命令查看数据库列表:
SHOW DATABASES;
创建测试数据库和表
CREATE DATABASE test_db; USE test_db; CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) NOT NULL); INSERT INTO users (name) VALUES ('Alice'), ('Bob'); SELECT * FROM users;
配置远程访问(可选)
若需允许其他服务器连接MySQL,需进行以下配置:
(1)创建远程用户并授权:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'RemotePassword!'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
(2)修改配置文件,允许远程连接:
编辑mysqld.cnf
(或mysql.conf.d/mysqld.cnf
),将bind-address
设置为0.0.0
:
bind-address = 0.0.0.0
(3)开放防火墙端口:
- CentOS/RHEL:
sudo firewall-cmd --add-port=3306/tcp --permanent sudo firewall-cmd --reload
- Ubuntu/Debian:
sudo ufw allow 3306/tcp
完成配置后,即可通过客户端工具(如Navicat、MySQL Workbench)远程连接MySQL。
相关问答FAQs
问题1:安装MySQL时提示“GPG检查失败”,如何解决?
解答:此错误通常是因为系统未添加MySQL官方的GPG密钥,导致包管理工具无法验证软件包的完整性,解决方法如下:
- CentOS/RHEL:手动下载并添加GPG密钥:
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
- Ubuntu/Debian:添加MySQL官方APT密钥:
sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 5072E1F5
添加密钥后重新执行安装命令即可,若仍需跳过GPG检查(不推荐),可在安装命令后添加
--nogpgcheck
(CentOS/RHEL)或--allow-unauthenticated
(Ubuntu/Debian)参数,但存在安全风险。
问题2:忘记MySQL root密码,如何重置?
解答:重置root密码需跳过权限表启动MySQL,具体步骤如下(以CentOS/RHEL为例):
(1)停止MySQL服务:
sudo systemctl stop mysqld
(2)跳过权限表启动:
sudo mysqld_safe --skip-grant-tables &
(3)登录MySQL并修改密码:
mysql -u root UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword!') WHERE User='root'; FLUSH PRIVILEGES; EXIT;
(4)重启MySQL服务:
sudo pkill mysqld sudo systemctl start mysqld
(5)使用新密码登录验证,注意:Ubuntu/Debian系统需修改/etc/mysql/debian.cnf
文件中的debian-sys-maint用户密码,步骤类似。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/31082.html