MySQL 8.0.46 全平台安装与配置详解(Windows/Linux/macOS)

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 解压与目录准备

  1. 将下载的 mysql-8.0.46-winx64.zip解压至目标目录,例如 D:\mysql-8.0.46

  2. 在解压目录下创建以下关键文件夹:

    • 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 初始化与安装服务

  1. 以管理员身份打开 CMD 或 PowerShell,进入 MySQL 的 bin 目录:

    复制代码
    cd D:\mysql-8.0.46\bin
  2. 初始化数据目录(生成 root 初始密码):

    复制代码
    mysqld --initialize --console

    关键步骤 :执行后控制台会输出一行包含 [Note] A temporary password is generated for root@localhost: xxxxxx的信息,务必抄录此随机密码 (如 Ush&1gqAkl?a),这是首次登录的唯一凭证。

  3. 安装 Windows 服务

    复制代码
    mysqld --install MySQL80

    MySQL80为服务名,可自定义,如 MySQL8)。

  4. 启动服务

    复制代码
    net start MySQL80

2.4 修改 root 密码与测试

  1. 登录 MySQL(使用刚才记录的临时密码):

    复制代码
    mysql -u root -p
  2. 在 MySQL 命令行中执行密码修改(必须执行,否则无法操作数据库):

    复制代码
    ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
    FLUSH PRIVILEGES;
    exit;
  3. 使用新密码重新登录,若成功进入 mysql>提示符,则安装成功。

2.5 环境变量配置(可选但推荐)

D:\mysql-8.0.46\bin添加到系统的 PATH环境变量中,此后可在任意路径直接运行 mysql -u root -p,无需切换目录。


三、Linux 系统安装(以 CentOS 7/8 为例)

Linux 是生产环境的主流选择,推荐使用 YUM 源安装,便于后续管理和自动更新。

3.1 清理旧版本与添加官方源

  1. 检查并卸载系统自带的 MariaDB 或旧版 MySQL:

    复制代码
    sudo yum remove mariadb-libs
  2. 添加 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 安装与启动服务

  1. 安装 MySQL Server:

    复制代码
    sudo yum install -y mysql-community-server
  2. 启动服务并设置开机自启:

    复制代码
    sudo systemctl start mysqld
    sudo systemctl enable mysqld

3.3 获取初始密码与安全配置

  1. MySQL 8.0 在首次启动时会自动初始化并生成临时 root 密码,查看日志获取:

    复制代码
    sudo grep 'temporary password' /var/log/mysqld.log
  2. 运行安全配置脚本(强烈推荐):

    复制代码
    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 安装(推荐)

  1. 确保已安装 Homebrew,然后执行:

    复制代码
    brew install mysql@8.0
  2. 启动服务并设置开机自启:

    复制代码
    brew services start mysql@8.0
  3. 初始化安全设置(类似 Linux):

    复制代码
    mysql_secure_installation

4.2 使用官方 DMG 安装

  1. 双击下载的 .dmg文件,按向导将 MySQL 图标拖入 Applications 文件夹。

  2. 进入"系统偏好设置" -> "MySQL" -> "Initialize Database" 完成初始化。

  3. 在终端中,将 /usr/local/mysql/bin添加到 PATH中,方便命令行调用。


五、核心配置与安全加固

无论何种系统,安装后的配置是保证稳定与安全的关键。

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)

  1. ERROR 1045 (28000): Access denied

    • 原因:密码错误或用户无权限。

    • 解决 :确认密码无误;检查用户 @后的 host(localhost%是不同的用户)。

  2. Navicat 连接报错 2059

    • 原因:认证插件不兼容。

    • 解决 :如本文 5.1 节所示,创建用户时指定 mysql_native_password,或升级 Navicat 至支持新插件的新版本。

  3. 服务无法启动(Windows 下 1067 错误)

    • 原因my.ini路径错误或 data目录权限问题。

    • 解决 :检查 my.ini中的路径是否为双反斜杠或正斜杠;确保 data目录为空且未被占用。

7.2 总结

MySQL 8.0.46 的安装核心在于**"初始化获取临时密码"** 和**"认证插件配置"** 。Windows 用户需关注 my.ini的路径写法;Linux 用户应熟练使用 systemctlmysql_secure_installation。安装完成后,务必进行密码修改、用户授权和防火墙配置,这是数据库安全的第一道防线。

相关推荐
善恶怪客1 小时前
LocalSend基本使用
windows
小康小小涵1 小时前
基于ESP32S3实现无人机RID模块底层源码编译
linux·开发语言·python
CQU_JIAKE1 小时前
4.28~4.30【Q】
linux·运维·服务器
左手厨刀右手茼蒿1 小时前
Linux 内核中的设备驱动开发:从字符设备到网络设备
linux·嵌入式·系统内核
先知后行。1 小时前
Linux 设备模型和platform平台
linux·运维·服务器
lzh200409192 小时前
深入理解进程:从PCB内核结构到写时拷贝的底层实战
linux·c++
AtOR CUES2 小时前
MySQL——表操作及查询
android·mysql·adb
日取其半万世不竭2 小时前
Minecraft Java版社区服务器搭建教程(Linux,适合新手)
java·linux·服务器
时空自由民.2 小时前
蓝牙协议之GAP协议
linux·服务器·网络