ITPub博客

首页 > 应用开发 > IT综合 > MySQL 8.0.x全平台安装详解:Windows、CentOS、Ubuntu全流程指南

MySQL 8.0.x全平台安装详解:Windows、CentOS、Ubuntu全流程指南

投稿 IT综合 作者:bhluo 时间:2025-11-21 14:20:18 0 删除 编辑

# MySQL 8.0.x全平台安装详解:Windows、CentOS、Ubuntu全流程指南


MySQL 8.0.x作为当前广泛使用的关系型数据库版本,其安装配置在不同操作系统平台上存在差异。本文将提供Windows、CentOS、Ubuntu三大平台的详细安装指南,涵盖从环境准备到问题解决的完整流程。


## Windows平台安装指南


### 安装包下载与准备


在Windows系统上安装MySQL 8.0.x,推荐使用官方提供的MySQL Installer进行图形化安装。


```batch

:: 检查系统架构

echo %PROCESSOR_ARCHITECTURE%


:: 清理可能存在的旧版本

net stop MySQL80

sc delete MySQL80


:: 下载MySQL 8.0.x Windows版本

:: 访问官网:https://dev.mysql.com/downloads/mysql/

:: 选择Windows (x86, 64-bit), MSI Installer

```


### 图形化安装步骤


通过MySQL Installer进行安装的具体流程:


1. **启动安装程序**

   - 以管理员身份运行MySQL Installer

   - 选择"Custom"自定义安装类型


2. **选择安装组件**

```sql

-- 建议选择以下产品:

-- MySQL Server 8.0.x

-- MySQL Workbench 8.0.x

-- MySQL Shell 8.0.x

-- MySQL Router 8.0.x

```


3. **执行安装**

   - 点击"Execute"开始安装

   - 等待所有组件安装完成


4. **产品配置**

```sql

-- 配置类型选择:

-- Development Computer:开发环境

-- Server Computer:服务器环境

-- Dedicated Computer<"baby.kandy58.cn">:专用MySQL服务器


-- 认证方法选择:

-- Use Strong Password Encryption for Authentication (RECOMMENDED)

-- Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)

```


5. **设置root密码**

```batch

# 密码强度要求:

# - 至少8个字符

# - 包含大小写字母

# - 包含数字

# - 包含特殊字符

```


### 命令行安装方式


对于喜欢命令行操作的用户,可以使用Windows命令提示符进行安装。


```batch

:: 切换到MySQL安装目录

cd C:\mysql-8.0.x-winx64


:: 初始化数据目录

bin\mysqld --initialize-insecure --user=mysql


:: 安装MySQL服务

bin\mysqld --install MySQL80


:: 启动MySQL服务

net start MySQL80


:: 设置root密码(首 次登录无需密码)

bin\mysql -u root -p


:: 在MySQL中执行:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';

```


## CentOS平台安装指南


### YUM仓库配置


在CentOS系统上,推荐使用MySQL官方YUM仓库进行安装。


```bash

#!/bin/bash


# 1. 下载并安装MySQL YUM仓库

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm


# 2. 安装YUM仓库

sudo rpm -Uvh <"inch.kandy58.cn">mysql80-community-release-el7-3.noarch.rpm


# 3. 验证仓库配置

yum repolist enabled | grep mysql


# 4. 禁用默认的MySQL模块(CentOS 8需要)

sudo yum module disable mysql

```


### 安装MySQL服务器


使用YUM命令安装MySQL服务器及相关工具。


```bash

#!/bin/bash


# 安装MySQL服务器

sudo yum install -y mysql-community-server


# 安装MySQL客户端

sudo yum install -y mysql-community-client


# 安装MySQL Workbench(可选)

sudo yum install -<"wall.kandy58.cn">y mysql-workbench-community


# 启动MySQL服务

sudo systemctl start mysqld


# 设置开机自启

sudo systemctl enable mysqld


# 检查服务状态

sudo systemctl status mysqld

```


### 安全配置与初始化


首 次安装后需要进行安全配置。


```bash

#!/bin/bash


# 获取临时root密码

sudo grep 'temporary password' /var/log/mysqld.log


# 运行安全配置脚本

sudo mysql_secure_installation


# 交互式配置过程示例:

# 1. 输入临时密码

# 2. 设置新密码(符合强度要求)

# 3. 移除匿名用户? [Y/n] Y

# 4. 禁止root远程登录? [Y/n] Y

# 5. 移除test数据库? [Y/n] Y

# 6. 重新加载权限表? [Y/n] Y

```


## Ubuntu平台安装指南


### APT仓库配置


在Ubuntu系统上使用官方APT仓库安装MySQL 8.0.x。


```bash

#!/bin/bash


# 1. 更新包索引

sudo apt update


# 2. 安装依赖包

sudo apt install <"xyz.kandy58.cn">-y wget gnupg


# 3. 下载并安装MySQL APT仓库

wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb


# 4. 安装配置包

sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb


# 在配置界面选择:

# - MySQL Server & Cluster → mysql-8.0

# - MySQL Tools & Connectors → Enabled

# - OK


# 5. 更新包索引

sudo apt update

```


### 安装MySQL服务器


使用APT命令安装MySQL服务器。


```bash

#!/bin/bash


# 安装MySQL服务器

sudo apt install -y mysql-server


# 安装MySQL客户端

sudo apt install -y mysql-client


# 安装MySQL Workbench(可选)

sudo apt install -y mysql-workbench-community


# 启动MySQL服务

sudo systemctl start mysql


# 设置开机自启

sudo systemctl enable mysql


# 检查服务状态

sudo systemctl status mysql

```


### 安全配置


Ubuntu系统上的安全配置步骤。


```bash

#!/bin/bash


# 运行安全配置脚本

sudo mysql_secure_installation


# 对于Ubuntu 20.04+<"rat.kandy58.cn">,可能使用auth_socket插件

# 如果需要密码验证,执行以下操作:


# 登录MySQL

sudo mysql


# 在MySQL中执行:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword';

FLUSH PRIVILEGES;

EXIT;

```


## 通用配置与优化


### 基础配置文件


创建适合各平台的基础MySQL配置文件。


```ini

# /etc/my.cnf (Linux) 或 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini (Windows)


[mysqld]

# 基础设置

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock


# 网络设置

bind-address=0.0.0.0

port=3306


# 字符集设置

character-set-server=utf8mb4

collation-server=utf8mb4_unicode_ci


# 连接设置

max_connections=151

max_connect_errors=100000


# 缓冲池设置(根据内存调整)

innodb_buffer_pool_size=128M


# 日志设置

log-error=/var/log/mysqld.log

slow_query_log=1

slow_query_log_file=<"high.kandy58.cn">/var/log/mysql-slow.log

long_query_time=2


[mysql]

default-character-set=utf8mb4


[client]

default-character-set=utf8mb4

```


### 性能优化配置


针对不同应用场景的性能优化配置。


```sql

-- 查看当前配置

SHOW VARIABLES LIKE '%buffer%';

SHOW VARIABLES LIKE '%cache%';

SHOW VARIABLES LIKE '%innodb%';


-- 调整InnoDB缓冲池(建议为系统内存的50-70%)

SET GLOBAL innodb_buffer_pool_size = 1024*1024*1024; -- 1GB


-- 调整查询缓存(MySQL 8.0已移除查询缓存)

-- 使用性能schema进行监控

UPDATE performance_schema.setup_instruments 

SET ENABLED = 'YES', TIMED = 'YES' 

WHERE NAME LIKE '%statement/%';


-- 创建优化用户和权限

CREATE USER 'app_user'@'%' IDENTIFIED BY 'secure_password';

GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'app_user'@'%';

FLUSH PRIVILEGES;

```


## 常见问题解决方案


### 安装过程中的问题


**问题1:依赖关系错误(Linux)**


```bash

# CentOS解决方案

sudo yum install -y perl-Data-Dumper

sudo yum install -y libaio

sudo yum install -y numactl


# Ubuntu解决方案

sudo apt --fix-<"neixit.kandy58.cn">broken install

sudo apt install -f

```


**问题2:服务启动失败**


```bash

# 检查错误日志

sudo tail -f /var/log/mysqld.log  # CentOS

sudo tail -f /var/log/mysql/error.log  # Ubuntu


# 常见错误:端口被占用

sudo netstat -tulpn | grep 3306


# 解决方案:终止占用进程或修改端口

sudo kill -9 <PID>

# 或在my.cnf中修改端口

```


**问题3:忘记root密码**


```bash

# 停止MySQL服务

sudo systemctl stop mysql


# 跳过权限检查启动

sudo mysqld_safe --skip-grant-tables &


# 登录并重置密码

mysql -u root


# 在MySQL中执行:

USE mysql;

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

FLUSH PRIVILEGES;

EXIT;


# 重启MySQL服务

sudo systemctl restart mysql

```


### 连接与权限问题


**问题4:远程连接被拒绝**


```sql

-- 检查用户权限

SELECT user, host FROM mysql.user;


-- 创建远程访问用户

CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';

FLUSH PRIVILEGES;


-- 检查防火墙设置

sudo firewall-cmd --list-all  # CentOS

sudo ufw status  # Ubuntu

```


**问题5:字符集编码问题**


```sql

-- 查看当前字符集设置

SHOW VARIABLES LIKE 'character_set%';

SHOW VARIABLES LIKE 'collation%';


-- 修改数据库字符集

ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;


-- 修改表字符集

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

```


## 验证安装与测试


### 基础功能测试


完成安装后需要进行基础功能测试。


```sql

-- 登录MySQL

mysql -u root -p


-- 创建测试数据库

CREATE DATABASE test_installation;

USE test_installation<"note.kandy58.cn">;


-- 创建测试表

CREATE TABLE users (

    id INT AUTO_INCREMENT PRIMARY KEY,

    username VARCHAR(50) NOT NULL,

    email VARCHAR(100) NOT NULL,

    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


-- 插入测试数据

INSERT INTO users (username, email) VALUES 

('test_user1', 'user1@example.com'),

('test_user2', 'user2@example.com');


-- 查询测试数据

SELECT * FROM users;


-- 性能测试

EXPLAIN SELECT * FROM users WHERE username = 'test_user1';


-- 清理测试数据

DROP DATABASE test_installation;

```


### 连接测试脚本


创建连接测试脚本验证安装结果。


```python

#!/usr/bin/env python3

"""

MySQL安装验证脚本

"""

import mysql.connector

from mysql.connector import Error


def test_mysql_connection(host='localhost', user='root', password='', database='mysql'):

    """测试MySQL连接"""

    try:

        connection = mysql.connector.connect(

            host=host,

            user=user,

            password=<"ill.kandy58.cn">password,

            database=database

        )

        

        if connection.is_connected():

            print("✓ MySQL连接成功")

            

            # 获取服务器版本

            cursor = connection.cursor()

            cursor.execute("SELECT VERSION()")

            version = cursor.fetchone()

            print(f"✓ MySQL版本: {version[0]}")

            

            # 检查字符集

            cursor.execute("SHOW VARIABLES LIKE 'character_set%'")

            charset_vars = cursor.fetchall()

            print("✓ 字符集配置:")

            for var in charset_vars:

                print(f"  {var[0]}: {var[1]}")

            

            cursor.close()

            connection.close()

            return True

            

    except Error as e:

        print(f"✗ MySQL连接失败: {e}")

        return False


if __name__ == "__main__":

    # 测试本地连接

    test_mysql_connection()

```


## 备份与恢复基础


### 基础备份策略


```bash

#!/bin/bash


# 使用mysqldump进行备份

BACKUP_DIR="/backup/mysql"

DATE=$(date +%Y%m%d_%H%M%S)


# 创建备份目录

mkdir -p $BACKUP_DIR


# 备份所有数据库

mysqldump -u root -p --all-databases > $BACKUP_DIR/full_backup_$DATE.sql


# 备份特定数据库

mysqldump -u root -p database_name > <"buzzword.kandy58.cn">$BACKUP_DIR/database_name_$DATE.sql


# 压缩备份文件

gzip $BACKUP_DIR/*.sql


# 设置备份保留策略(保留最近7天)

find $BACKUP_DIR -name "*.gz" -mtime +7 -delete

```


### 恢复测试


```bash

#!/bin/bash


# 恢复数据库

gunzip < /backup/mysql/full_backup_20231201_120000.sql.gz | mysql -u root -p


# 或者先解压再恢复

gunzip /backup/mysql/full_backup_20231201_120000.sql.gz

mysql -u root -p < /backup/mysql/full_backup_20231201_120000.sql

```


## 结语


MySQL 8.0.x在不同平台上的安装过程虽然有所差异,但遵循正确的步骤和配置方法,可以顺利完成安装并构建稳定的数据库环境。本文提供的详细指南涵盖了Windows、CentOS、Ubuntu三大主流平台,从基础安装到问题解决,为不同技术背景的用户提供了全面的参考。


在实际部署过程中,建议根据具体硬件配置和应用需求调整性能参数,并建立完善的监控和备份机制,确保数据库系统的稳定运行和数据安全。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/19545/viewspace-3102839/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-11-01

  • 博文量
    895
  • 访问量
    933664