在CentOS系统中在线安装MySQL是许多开发者和系统管理员常用的操作,本文将详细介绍完整的安装流程、配置步骤及常见问题解决方案,帮助读者顺利完成MySQL的部署与使用。

准备工作
在开始安装前,确保系统满足基本要求:建议使用CentOS 7或更高版本,至少1GB可用内存,root权限或具备sudo权限的用户账户,建议更新系统软件包以确保兼容性,可通过执行sudo yum update -y命令完成。
添加MySQL官方仓库
MySQL官方仓库提供了稳定且经过验证的安装包,推荐优先使用,首先下载并添加MySQL官方的Yum仓库配置文件:
sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm -y
安装完成后,可通过以下命令验证仓库是否添加成功:
sudo yum repolist enabled "mysql*-community*"
预期输出中应包含”mysql-community”和”mysql-community-source”两个仓库。
安装MySQL服务器
确认仓库配置无误后,执行以下命令安装MySQL服务器:
sudo yum install mysql-community-server -y
安装过程会自动下载依赖包并完成配置,耗时取决于网络速度和系统性能。

启动并配置MySQL服务
安装完成后,启动MySQL服务并设置为开机自启:
sudo systemctl start mysqld sudo systemctl enable mysqld
通过sudo systemctl status mysqld命令检查服务状态,确保显示”active (running)”。
初始安全配置
首次启动后,MySQL会生成一个临时root密码,可通过以下命令查看:
sudo grep 'temporary password' /var/log/mysqld.log
使用该密码登录MySQL后,执行mysql_secure_installation脚本进行安全配置,包括设置新密码、移除匿名用户、禁止root远程登录等操作,建议设置强密码并启用密码验证插件。
配置远程访问(可选)
如需远程连接MySQL,需修改配置文件并开放防火墙端口,编辑/etc/my.cnf文件,在[mysqld]部分添加:
bind-address = 0.0.0.0
保存后重启MySQL服务,开放3306端口并重新加载防火墙规则:

sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload
常用管理命令
以下为MySQL日常管理中常用的命令:
| 功能 | 命令 |
|---|---|
| 登录MySQL | mysql -u root -p |
| 查看数据库 | SHOW DATABASES; |
| 创建数据库 | CREATE DATABASE db_name; |
| 创建用户并授权 | CREATE USER ‘user’@’%’ IDENTIFIED BY ‘password’; GRANT ALL PRIVILEGES ON db_name.* TO ‘user’@’%’; FLUSH PRIVILEGES; |
| 备份数据库 | mysqldump -u root -p db_name > backup.sql |
| 恢复数据库 | mysql -u root -p db_name < backup.sql |
常见问题解决
- 安装依赖冲突:若出现”public key is not available”错误,可执行
sudo rpm --import https://dev.mysql.com/doc/refman/8.0/mysql-community.asc导入公钥后重试。 - 服务启动失败:检查
/var/log/mysqld.log日志文件,常见原因包括端口占用、配置文件语法错误等。
FAQs
Q1: 如何修改MySQL默认字符集?
A1: 编辑/etc/my.cnf文件,在[mysqld]部分添加以下配置:
character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
保存后重启MySQL服务,可通过SHOW VARIABLES LIKE 'character_set%';验证修改结果。
Q2: 忘记MySQL root密码如何重置?
A2: 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('new_password') WHERE User='root'; FLUSH PRIVILEGES;;
4. 重启MySQL服务完成重置。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复