CentOS下安装MySQL8.0完整指南
一、安装方式对比
| 安装方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 包管理器安装(apt/yum/dnf) | 快速部署、追求稳定性、新手友好 | 自动处理依赖、配置简单、易于升级维护 | 版本可能较旧、定制化程度低 |
| 手动编译安装 | 需要特定版本、深度定制、学习原理 | 版本可控、性能优化灵活、功能模块可选 | 步骤繁琐、依赖管理复杂、易出错 |
| 官方仓库安装 | 需要较新稳定版、兼顾便捷与版本 | 版本较新、官方维护、相对规范 | 需添加第三方仓库,有轻微配置成本 |
对于绝大多数场景,推荐使用包管理器或官方仓库安装。以下以CentOS/RHEL (使用yum/dnf)和Ubuntu/Debian (使用apt)两大主流派系为例,演示MySQL 8.0的安装。
二、通过包管理器安装 (推荐)
1. 对于 CentOS / RHEL / Rocky Linux / AlmaLinux 系统
# 1. 添加MySQL官方Yum仓库 sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm# 注:请根据你的系统版本(el7, el8, el9)替换上方URL中的对应数字。 # 2. 安装MySQL服务器 sudo yum install -y mysqlcommunity-server# 或使用 dnf (CentOS 8/RHEL 8及以上) # sudo dnf install -y mysql-community-server# 3. 启动MySQL服务并设置开机自启 sudo systemctl start mysqld sudo systemctl enable mysqld # 4. 查看服务状态,确认运行正常 sudo systemctl status mysqld2. 对于 Ubuntu / Debian 系统
# 1. 更新软件包索引sudo apt update # 2. 安装MySQL服务器 sudo apt install -y mysql-server # 3. 启动MySQL服务并设置开机自启 (Ubuntu 16.04+ / Debian 9+) sudo systemctl start mysql sudo systemctl enable mysql # 4. 查看服务状态 sudo systemctl status mysql三、初始安全配置与登录
安装完成后,MySQL会生成一个临时root密码(仅适用于某些安装方式,如CentOS的RPM包)或要求你立即设置root密码(如Ubuntu的APT安装)。请按以下步骤操作:
# 1. 查找临时密码 (CentOS/RHEL等系统可能需要) sudo grep 'temporary password' /var/log/mysqld.log # 输出类似:`A temporary password is generated for root@localhost: 3e5r&*qskqQw` # 2. 运行安全配置向导 (强烈推荐) sudo mysql_secure_installation执行上述命令后,会进入交互式配置,根据提示完成以下操作:
- 输入当前的root密码(如果是临时密码,则粘贴上一步查到的)。
- 设置新的root密码(需满足密码强度策略)。
- 移除匿名用户 (
Remove anonymous users?):输入Y。 - 禁止root远程登录 (
Disallow root login remotely?):输入Y(除非你明确需要)。 - 删除测试数据库 (
Remove test database and access to it?):输入Y。 - 立即重新加载权限表 (
Reload privilege tables now?):输入Y。
# 3. 使用新密码登录MySQL mysql -u root -p # 输入你刚设置的root密码四、基础配置与常用命令
1. 修改配置文件 (如调整字符集、端口等)
MySQL主配置文件通常位于/etc/my.cnf或/etc/mysql/my.cnf。
# 使用vim或nano编辑配置文件 sudo vim /etc/my.cnf在[mysqld]部分添加或修改以下常见配置:
[mysqld] # 设置默认字符集为utf8mb4 character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci # 设置MySQL数据存储目录 (按需修改) datadir=/var/lib/mysql # 设置MySQL监听端口 (默认3306) port=3306 # 设置表名大小写不敏感 (1为不敏感,0为敏感) lower_case_table_names=1 # 设置最大连接数 max_connections=1000修改后需重启服务生效:
sudo systemctl restart mysqld # CentOS/RHEL #或 sudo systemctl restart mysql # Ubuntu/Debian2. 开放远程访问 (谨慎操作)
默认情况下,MySQL只允许本地(localhost)连接。如需从其他机器访问,需进行配置:
-- 1. 在MySQL命令行中,创建一个允许远程连接的用户 (示例:用户`remoteuser`,密码`StrongPass123!`) CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'StrongPass123!'; -- 2. 授予该用户所有数据库的所有权限 (生产环境建议按需细化权限) GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION; -- 3. 刷新权限 FLUSH PRIVILEGES;# 4. 配置防火墙,开放3306端口# CentOS/RHEL (firewalld) sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload # Ubuntu/Debian (ufw) sudo ufw allow 3306/tcp sudo ufw reload3. 常用服务管理命令
| 操作 | CentOS/RHEL 命令 | Ubuntu/Debian 命令 |
|---|---|---|
| 启动服务 | sudo systemctl start mysqld | sudo systemctl start mysql |
| 停止服务 | sudo systemctl stop mysqld | sudo systemctl stop mysql |
| 重启服务 | sudo systemctl restart mysqld | sudo systemctl restart mysql |
| 查看状态 | sudo systemctl status mysqld | sudo systemctl status mysql |
| 开机自启 | sudo systemctl enable mysqld | sudo systemctl enable mysql |
| 禁止开机自启 | sudo systemctl disable mysqld | sudo systemctl disable mysql |
五、验证安装与基本测试
# 1. 检查MySQL版本 mysql --version# 2. 登录MySQL并执行简单查询 mysql -u root -p -e "SELECT VERSION(); SHOW DATABASES;"如果一切顺利,你将看到MySQL的版本信息和数据库列表。
参考来源
- linux安装mysql数据库教程
- Linux系统安装MySQL数据库详细教程
- Linux安装MySQL数据库教程
- linux安装单机mysql_【数据库】-【DB】-Linux CentOS6.5下编译安装MySQL 5.6.16【给力详细教程】-安装-单机...
- Linux (centos8)安装 MySQL 8 数据库(图文详细教程)