MySQL 是全球最流行的开源关系型数据库,而 8.0 版本是其性能与功能飞跃的重要里程碑。本文将提供 MySQL 8.0.46 在 Windows、Linux 及 macOS 三大主流操作系统上的超详细安装、配置与使用指南,涵盖从下载、环境搭建、安全加固到日常运维的全流程,助你彻底掌握企业级数据库部署。
MySQL 8.0.46 一键安装地址:https://onefire.blog.csdn.net/article/details/160682983
一、版本选型与下载准备
1.1 为什么选择 MySQL 8.0?
相较于老旧的 5.7 版本,MySQL 8.0 带来了革命性提升:
-
性能倍增 :支持真正的降序索引(物理存储降序),优化器对复杂查询(如窗口函数)的支持更完善,JSON 处理能力大幅增强。
-
安全性强化 :默认身份认证插件改为
caching_sha2_password,支持原子 DDL(数据定义语句支持事务,要么全成功要么全回滚),杜绝元数据损坏。 -
功能现代 :默认字符集改为
utf8mb4(完整支持 Emoji 及生僻字),引入通用表表达式(CTE)和角色管理(Role)。
1.2 官方下载指引
访问 MySQL 官方社区下载页(dev.mysql.com/downloads/mysql/),根据你的系统选择对应版本:
-
Windows :推荐下载
mysql-8.0.46-winx64.zip(压缩包版,纯净)或mysql-installer-community-8.0.46.0.msi(安装向导版,含图形工具)。 -
Linux:选择对应发行版的 RPM Bundle 或 Generic Tarball。
-
macOS :下载
.dmg安装包或使用 Homebrew 直接安装。
注意:下载时请认准 "Community Server" 版本,此为免费开源版本。若官网要求登录 Oracle 账户,可点击页面底部的 "No thanks, just start my download." 直接下载。
二、Windows 系统安装(以 ZIP 解压版为例)
Windows 环境是开发者的主战场,ZIP 版能让你更清晰地掌控文件结构,避免安装器带来的"黑盒"问题。
2.1 解压与目录准备
-
将下载的
mysql-8.0.46-winx64.zip解压至目标目录,例如D:\mysql-8.0.46。 -
在解压目录下创建以下关键文件夹:
-
data:用于存放数据库文件(需空文件夹)。 -
logs:用于存放日志文件。 -
my.ini:配置文件(需新建)。
-
2.2 配置文件(my.ini)详解
在 D:\mysql-8.0.46下创建 my.ini文件,写入以下核心配置(路径请根据实际情况修改):
[mysqld]
# 基础设置
port=3306
basedir=D:/mysql-8.0.46
datadir=D:/mysql-8.0.46/data
socket=D:/mysql-8.0.46/mysql.sock
# 字符集与认证(关键!解决 Navicat 连接报错 2059)
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci
default_authentication_plugin=mysql_native_password
# 日志设置
log-error=D:/mysql-8.0.46/logs/error.log
general_log=1
general_log_file=D:/mysql-8.0.46/logs/general.log
# 性能设置(开发环境可适当调小)
max_connections=200
innodb_buffer_pool_size=256M
[mysql]
default-character-set=utf8mb4
[client]
port=3306
default-character-set=utf8mb4
配置说明 :将认证插件显式设为
mysql_native_password是为了兼容旧版客户端(如 Navicat 15 以下、部分 PHP 驱动),若全为现代客户端(MySQL Shell 8.0+),可保持默认的caching_sha2_password。
2.3 初始化与安装服务
-
以管理员身份打开 CMD 或 PowerShell,进入 MySQL 的 bin 目录:
cd D:\mysql-8.0.46\bin -
初始化数据目录(生成 root 初始密码):
mysqld --initialize --console关键步骤 :执行后控制台会输出一行包含
[Note] A temporary password is generated for root@localhost: xxxxxx的信息,务必抄录此随机密码 (如Ush&1gqAkl?a),这是首次登录的唯一凭证。 -
安装 Windows 服务:
mysqld --install MySQL80(
MySQL80为服务名,可自定义,如MySQL8)。 -
启动服务:
net start MySQL80
2.4 修改 root 密码与测试
-
登录 MySQL(使用刚才记录的临时密码):
mysql -u root -p -
在 MySQL 命令行中执行密码修改(必须执行,否则无法操作数据库):
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; FLUSH PRIVILEGES; exit; -
使用新密码重新登录,若成功进入
mysql>提示符,则安装成功。
2.5 环境变量配置(可选但推荐)
将 D:\mysql-8.0.46\bin添加到系统的 PATH环境变量中,此后可在任意路径直接运行 mysql -u root -p,无需切换目录。
三、Linux 系统安装(以 CentOS 7/8 为例)
Linux 是生产环境的主流选择,推荐使用 YUM 源安装,便于后续管理和自动更新。
3.1 清理旧版本与添加官方源
-
检查并卸载系统自带的 MariaDB 或旧版 MySQL:
sudo yum remove mariadb-libs -
添加 MySQL 8.0 官方 YUM 源:
sudo rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm(对于 CentOS 8/RHEL 8,请使用对应的 el8 版本源)。
3.2 安装与启动服务
-
安装 MySQL Server:
sudo yum install -y mysql-community-server -
启动服务并设置开机自启:
sudo systemctl start mysqld sudo systemctl enable mysqld
3.3 获取初始密码与安全配置
-
MySQL 8.0 在首次启动时会自动初始化并生成临时 root 密码,查看日志获取:
sudo grep 'temporary password' /var/log/mysqld.log -
运行安全配置脚本(强烈推荐):
sudo mysql_secure_installation此脚本会引导你:
-
输入临时密码。
-
设置新 root 密码(注意:8.0 默认密码策略要求包含大小写、数字和特殊字符,长度至少 8 位)。
-
移除匿名用户。
-
禁止 root 远程登录(生产环境必选)。
-
删除测试数据库
test。
-
3.4 基础配置优化
编辑配置文件 /etc/my.cnf,在 [mysqld]段添加:
[mysqld]
# 字符集
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
# 连接数与内存(根据服务器内存调整)
max_connections=1000
innodb_buffer_pool_size=1G
# 错误日志
log-error=/var/log/mysqld.log
重启服务使配置生效:sudo systemctl restart mysqld。
四、macOS 系统安装
macOS 用户可选择图形化安装或命令行安装,后者更受开发者青睐。
4.1 使用 Homebrew 安装(推荐)
-
确保已安装 Homebrew,然后执行:
brew install mysql@8.0 -
启动服务并设置开机自启:
brew services start mysql@8.0 -
初始化安全设置(类似 Linux):
mysql_secure_installation
4.2 使用官方 DMG 安装
-
双击下载的
.dmg文件,按向导将 MySQL 图标拖入 Applications 文件夹。 -
进入"系统偏好设置" -> "MySQL" -> "Initialize Database" 完成初始化。
-
在终端中,将
/usr/local/mysql/bin添加到PATH中,方便命令行调用。
五、核心配置与安全加固
无论何种系统,安装后的配置是保证稳定与安全的关键。
5.1 用户管理与远程连接(解决 Navicat 报错 2059)
MySQL 8.0 默认只允许 root@localhost登录。如需远程连接(如用 Navicat 管理),切勿直接修改 root 的 host,应创建专用用户:
-- 1. 创建用户(使用 native 插件兼容旧客户端)
CREATE USER 'dev_user'@'%' IDENTIFIED WITH mysql_native_password BY 'StrongPassword123!';
-- 2. 授权(授予所有数据库权限,生产环境应限制为特定库)
GRANT ALL PRIVILEGES ON *.* TO 'dev_user'@'%';
-- 3. 刷新权限
FLUSH PRIVILEGES;
安全警告 :
'%'代表允许任意 IP 连接,生产环境建议绑定具体 IP(如'192.168.1.100')。
5.2 防火墙与端口开放
MySQL 默认使用 3306 端口。若需远程访问,必须在服务器防火墙放行:
-
Linux (firewalld):
sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload -
Windows :在"Windows Defender 防火墙"中添加入站规则,允许
mysqld.exe或端口 3306。
5.3 密码策略调整(开发环境可选)
MySQL 8.0 默认密码策略严格,若在开发环境觉得繁琐,可适当降低(切勿在生产环境执行):
SET GLOBAL validate_password.policy = LOW; -- 降低密码强度要求
SET GLOBAL validate_password.length = 6; -- 最小长度改为 6
六、基础使用与运维命令
6.1 数据库与表操作(SQL 示例)
-- 1. 查看所有数据库
SHOW DATABASES;
-- 2. 创建数据库(使用 utf8mb4 字符集)
CREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE myapp_db;
-- 3. 创建表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- 4. 插入数据
INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com');
-- 5. 查询数据(使用窗口函数,8.0 新特性)
SELECT id, name, ROW_NUMBER() OVER (ORDER BY id) as row_num FROM users;
6.2 常用运维命令
-- 查看当前连接进程
SHOW PROCESSLIST;
-- 查看版本与状态
SELECT VERSION(), @@hostname;
SHOW STATUS LIKE 'Threads_connected';
-- 备份数据库(在系统命令行执行)
mysqldump -u root -p myapp_db > myapp_backup.sql
-- 恢复数据库
mysql -u root -p myapp_db < myapp_backup.sql
七、故障排查与总结
7.1 常见问题(Q&A)
-
ERROR 1045 (28000): Access denied
-
原因:密码错误或用户无权限。
-
解决 :确认密码无误;检查用户
@后的 host(localhost与%是不同的用户)。
-
-
Navicat 连接报错 2059
-
原因:认证插件不兼容。
-
解决 :如本文 5.1 节所示,创建用户时指定
mysql_native_password,或升级 Navicat 至支持新插件的新版本。
-
-
服务无法启动(Windows 下 1067 错误)
-
原因 :
my.ini路径错误或data目录权限问题。 -
解决 :检查
my.ini中的路径是否为双反斜杠或正斜杠;确保data目录为空且未被占用。
-
7.2 总结
MySQL 8.0.46 的安装核心在于**"初始化获取临时密码"** 和**"认证插件配置"** 。Windows 用户需关注 my.ini的路径写法;Linux 用户应熟练使用 systemctl和 mysql_secure_installation。安装完成后,务必进行密码修改、用户授权和防火墙配置,这是数据库安全的第一道防线。