MySQL服务器安装与基本使用入门


MySQL服务器安装与基本使用入门:一份详尽指南

MySQL是当今世界上最受欢迎的关系型数据库管理系统(RDBMS)之一,以其开源、免费(社区版)、高性能、稳定可靠以及广泛的社区支持而闻名。无论是构建小型个人网站、大型企业级应用,还是数据分析平台,MySQL都扮演着至关重要的角色。本文将详细介绍如何在不同操作系统上安装MySQL服务器,并引导你完成基本的数据库操作,为你踏入MySQL的世界打下坚实的基础。

一、 MySQL简介与为何选择它

1. 什么是MySQL?
MySQL是一个基于SQL(Structured Query Language,结构化查询语言)的数据库管理系统。它采用客户端/服务器架构,允许用户通过网络连接到MySQL服务器,并使用SQL语句来创建、查询、更新和管理数据。MySQL最初由瑞典公司MySQL AB开发,后被Sun Microsystems收购,最终随着Sun被Oracle公司收购而归入Oracle旗下。尽管如此,MySQL仍然提供开源的社区版(Community Edition),这是大多数用户和开发者使用的版本。

2. 为何选择MySQL?
* 开源与免费: 社区版完全免费,降低了使用门槛。源代码开放,允许用户根据需要进行定制。
* 跨平台性: 支持Windows、Linux、macOS等多种主流操作系统。
* 高性能与可伸缩性: 经过多年发展和优化,MySQL在处理大量数据和高并发请求时表现出色。支持多种存储引擎(如InnoDB、MyISAM),满足不同场景的需求。支持主从复制、集群等技术实现高可用和负载均衡。
* 易用性: 拥有清晰的文档、丰富的图形化管理工具(如MySQL Workbench、phpMyAdmin、DBeaver等)以及简单的命令行接口。
* 成熟稳定: 经过长时间的广泛应用和测试,MySQL被证明是一个非常稳定可靠的数据库系统。
* 庞大的社区与生态: 拥有活跃的开发者社区和用户群体,遇到问题时容易找到解决方案。与各种编程语言(PHP, Java, Python, Node.js等)和框架(WordPress, Drupal, Django, Spring Boot等)有良好的集成。

二、 安装MySQL服务器

MySQL的安装过程因操作系统的不同而有所差异。下面将分别介绍在Windows、Linux(以Ubuntu/Debian和CentOS/Fedora为例)和macOS上的典型安装方法。

1. 在Windows上安装MySQL

对于Windows用户,最推荐使用官方提供的MySQL Installer进行安装。

  • 下载: 访问MySQL官方网站(https://dev.mysql.com/downloads/installer/),下载适用于Windows的MySQL Installer(通常选择Web社区版或完整版)。
  • 运行安装程序: 下载完成后,双击运行.msi文件。
  • 接受许可协议: 阅读并接受许可条款。
  • 选择安装类型:
    • Developer Default: 安装MySQL服务器以及开发常用的工具(如Workbench, Shell, Connectors等)。适合开发者。
    • Server only: 仅安装MySQL服务器。
    • Client only: 仅安装客户端工具,用于连接远程服务器。
    • Full: 安装所有可用的MySQL产品和特性。
    • Custom: 手动选择需要安装的组件。
      对于初学者,推荐选择 "Developer Default" 或 "Server only"。如果选择 "Server only",后续可能需要单独安装管理工具如MySQL Workbench。
  • 检查需求: 安装程序可能会检查并提示安装所需的依赖项(如Microsoft Visual C++ Redistributable)。按照提示安装即可。
  • 安装过程: 确认选择后,点击 "Execute" 开始下载和安装所选组件。
  • 配置MySQL服务器: 安装完成后,Installer会自动进入配置阶段。
    • Type and Networking:
      • Config Type: 选择 "Development Computer"(开发环境,占用资源较少)、"Server Computer"(服务器环境,与其他服务共享资源)或 "Dedicated Computer"(专用数据库服务器,占用大部分资源)。初学者可选 "Development Computer"。
      • Connectivity: 保持默认TCP/IP端口号3306,确保防火墙允许此端口的连接(如果需要远程访问)。
    • Authentication Method:
      • Use Strong Password Encryption (Recommended): 使用caching_sha2_password插件,更安全,但需要较新的客户端驱动支持。
      • Use Legacy Authentication Method: 使用mysql_native_password,兼容旧版客户端。
        对于新项目,推荐使用强密码加密。如果遇到兼容性问题,可以考虑切换。
    • Accounts and Roles: 设置root用户的密码。请务必设置一个强密码并牢记! 可以选择性地添加其他MySQL用户账户。
    • Windows Service: 配置将MySQL服务器作为Windows服务运行。保持默认设置即可,服务名通常是MySQL加上版本号(例如MySQL80)。可以选择是否开机自启。
    • Apply Configuration: 点击 "Execute" 应用所有配置步骤。
  • 完成: 配置完成后,点击 "Finish"。MySQL服务器已成功安装并(通常)已启动。

验证安装(Windows):
* 打开Windows服务(搜索 "services.msc"),查找名为 MySQLXX 的服务,确认其状态为 "正在运行"。
* 打开命令提示符(CMD)或PowerShell,导航到MySQL安装目录下的bin文件夹(例如 C:\Program Files\MySQL\MySQL Server 8.0\bin),运行 mysql -u root -p,然后输入之前设置的root密码。如果成功进入MySQL命令行提示符 (mysql>),则表示安装和连接成功。

2. 在Linux上安装MySQL (以apt和yum/dnf为例)

在Linux上,通常使用系统的包管理器进行安装。

a) Ubuntu/Debian (使用 apt)

  • 更新包列表:
    bash
    sudo apt update
  • 安装MySQL服务器:
    bash
    sudo apt install mysql-server

    安装过程中可能会提示设置root密码,也可能不会(取决于发行版和版本)。
  • 安全配置(重要): 安装完成后,强烈建议运行安全脚本:
    bash
    sudo mysql_secure_installation

    这个脚本会引导你完成以下安全设置:

    • VALIDATE PASSWORD component: 是否启用密码强度验证插件(建议启用)。
    • Set root password: 如果安装时未设置,这里会要求设置root密码。如果已设置,可能会要求输入当前密码以进行更改或确认。
    • Remove anonymous users: 是否移除匿名用户(强烈建议移除)。
    • Disallow root login remotely: 是否禁止root用户远程登录(强烈建议禁止,应创建专用用户进行远程访问)。
    • Remove test database and access to it: 是否移除test数据库(建议移除)。
    • Reload privilege tables now: 是否立即重载权限表使更改生效(选择是)。
  • 检查服务状态:
    bash
    sudo systemctl status mysql

    如果服务未运行,可以使用 sudo systemctl start mysql 启动,并使用 sudo systemctl enable mysql 设置开机自启。

b) CentOS/Fedora (使用 yum/dnf)

  • 更新包列表:
    bash
    sudo yum update # CentOS 7 或更早版本
    # 或者
    sudo dnf update # CentOS 8+, Fedora
  • 安装MySQL服务器:
    • CentOS 7 通常使用 MariaDB(MySQL的一个分支)作为默认数据库,如果要安装Oracle的MySQL,需要添加MySQL官方的Yum仓库。访问 https://dev.mysql.com/downloads/repo/yum/ 下载对应的repo包并安装,然后执行:
      bash
      sudo yum install mysql-community-server
    • CentOS 8+ / Fedora 可以直接安装:
      bash
      sudo dnf install mysql-community-server
      # 或者有时包名就是 mysql-server
      # sudo dnf install @mysql # 安装MySQL模块(CentOS 8 Stream/RHEL 8)
  • 启动并设置开机自启:
    bash
    sudo systemctl start mysqld # 注意服务名可能是 mysqld
    sudo systemctl enable mysqld
  • 获取临时root密码(如果需要): 某些MySQL版本(如8.0)在首次启动时会为root用户生成一个临时密码,并记录在错误日志文件中。你需要找到这个密码才能进行首次登录和安全配置。
    bash
    sudo grep 'temporary password' /var/log/mysqld.log
  • 安全配置(重要): 使用临时密码(如果找到)或空密码(如果安装时未设置)登录,然后立即修改密码并执行安全配置。
    bash
    sudo mysql_secure_installation

    过程与Ubuntu/Debian类似,按提示操作即可。如果需要先用临时密码登录修改密码:
    bash
    mysql -u root -p
    # 输入临时密码
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword';
    mysql> exit;
    # 然后再运行 sudo mysql_secure_installation
  • 检查服务状态:
    bash
    sudo systemctl status mysqld

3. 在macOS上安装MySQL

在macOS上,可以通过下载官方DMG包或使用Homebrew包管理器进行安装。

a) 使用Homebrew(推荐)

  • 安装Homebrew(如果尚未安装): 访问 https://brew.sh/,按照官网指示在终端中运行安装命令。
  • 更新Homebrew:
    bash
    brew update
  • 安装MySQL:
    bash
    brew install mysql
  • 启动MySQL服务:
    bash
    brew services start mysql

    使用brew services list查看服务状态。若要设置开机自启,Homebrew通常会自动处理。
  • 安全配置(重要):
    bash
    mysql_secure_installation

    过程与Linux类似。Homebrew安装的MySQL默认root用户没有密码,直接回车即可进入配置流程。按提示设置root密码并完成其他安全选项。

b) 使用官方DMG包

  • 下载: 访问MySQL官网(https://dev.mysql.com/downloads/mysql/),下载适用于macOS的DMG Archive。
  • 安装: 双击下载的DMG文件,然后双击.pkg安装包,按照安装向导的提示进行操作。安装过程中会提示你设置root密码,请务必设置强密码并记住。
  • 启动服务: 安装完成后,通常会在“系统偏好设置”(System Preferences)中添加一个MySQL面板,你可以在那里启动/停止MySQL服务,并设置是否开机自启。
  • 将MySQL命令添加到PATH(可选): 为了方便在任何终端目录下使用mysql等命令,可以将MySQL的bin目录添加到系统的PATH环境变量中。编辑你的shell配置文件(如~/.zshrc~/.bash_profile),添加类似行:
    bash
    export PATH="/usr/local/mysql/bin:$PATH"

    然后运行 source ~/.zshrcsource ~/.bash_profile 使更改生效。

验证安装(Linux/macOS):
在终端中运行:
bash
mysql -u root -p

输入设置的root密码。如果成功进入 mysql> 提示符,表示安装成功。

三、 连接到MySQL服务器

安装并启动MySQL服务器后,你需要使用客户端工具连接到它才能执行操作。

1. 使用命令行客户端 (mysql)

这是最基础也是最常用的方式。

  • 基本语法:
    bash
    mysql -h hostname -u username -p -P port databasename

    • -h hostname: 指定服务器主机名或IP地址。如果连接本地服务器,可以省略,默认为localhost
    • -u username: 指定连接使用的MySQL用户名(例如root)。
    • -p: 提示输入密码。注意 -p 和密码之间没有空格。如果密码为空,可以直接回车。为了安全,建议总是使用-p而不是直接在命令行写明密码。
    • -P port: 指定服务器端口号。如果使用默认端口3306,可以省略。
    • databasename: (可选)指定连接后默认使用的数据库。
  • 示例:

    • 连接本地服务器的root用户:
      bash
      mysql -u root -p

      (然后输入密码)
    • 连接远程服务器192.168.1.100上的用户myuser,并默认使用数据库mydatabase
      bash
      mysql -h 192.168.1.100 -u myuser -p mydatabase
  • 退出MySQL命令行:
    mysql> 提示符下输入 exitquit,然后按回车。

2. 使用图形化界面(GUI)工具

对于不喜欢命令行的用户,或者需要更直观地查看数据和管理数据库结构时,可以使用GUI工具。常见的有:

  • MySQL Workbench: Oracle官方提供的免费、跨平台的集成工具,功能强大,包含SQL开发、数据建模、服务器管理等。
  • phpMyAdmin: 基于Web的MySQL管理工具,非常流行,尤其是在Web开发环境中。需要Web服务器(如Apache或Nginx)和PHP支持。
  • DBeaver: 一款通用的数据库管理工具,支持MySQL及多种其他数据库,免费且跨平台。
  • Navicat for MySQL: 功能强大的商业数据库管理工具。
  • DataGrip: JetBrains出品的商业数据库IDE,功能全面,支持多种数据库。

这些工具通常提供一个连接管理器,你只需输入主机名、端口、用户名和密码即可建立连接,然后在图形界面中进行数据库操作。

四、 MySQL基本使用入门 (SQL基础)

连接到MySQL服务器后,你就可以使用SQL(Structured Query Language)来与数据库交互了。SQL是关系型数据库的标准语言。以下是一些最基本的操作:

1. 数据库(Database / Schema)操作

数据库是存储相关表的容器。在MySQL中,DATABASESCHEMA 是同义词。

  • 显示所有数据库:
    sql
    SHOW DATABASES;

    注意:SQL语句通常以分号 ; 结尾。在 mysql 命令行客户端中,必须使用分号。

  • 创建新数据库:
    sql
    CREATE DATABASE database_name;
    -- 例如:
    CREATE DATABASE my_test_db;

    数据库名称最好使用小写字母、数字和下划线,并避免使用SQL关键字。

  • 选择要使用的数据库: 在进行表操作之前,需要先指定在哪个数据库中工作。
    sql
    USE database_name;
    -- 例如:
    USE my_test_db;

    成功后,提示符可能会改变,或者会显示 "Database changed"。

  • 删除数据库(危险操作!): 这将永久删除数据库及其包含的所有表和数据!请谨慎使用。
    sql
    DROP DATABASE database_name;
    -- 例如:
    DROP DATABASE my_test_db;

2. 表(Table)操作

表是数据库中存储数据的基本结构,由行(记录)和列(字段)组成。

  • 显示当前数据库中的所有表:
    sql
    SHOW TABLES;

  • 创建新表: 需要指定表名和列定义(列名、数据类型、约束等)。
    sql
    CREATE TABLE table_name (
    column1_name data_type constraints,
    column2_name data_type constraints,
    ...
    columnN_name data_type constraints,
    PRIMARY KEY (primary_key_column) -- 可选,定义主键
    );

    常用数据类型:

    • INTINTEGER: 整数。
    • VARCHAR(n): 可变长度字符串,最大长度为n个字符。
    • TEXT: 长文本数据。
    • DATE: 日期(YYYY-MM-DD)。
    • DATETIME: 日期和时间(YYYY-MM-DD HH:MM:SS)。
    • TIMESTAMP: 时间戳,通常自动记录插入或更新时间。
    • DECIMAL(p, s)NUMERIC(p, s): 精确的定点数,p是总位数,s是小数位数。
    • BOOLEANBOOL: 布尔值(在MySQL中通常用TINYINT(1)实现)。

    常用约束:
    * NOT NULL: 该列不允许为空值。
    * UNIQUE: 该列的值必须唯一。
    * PRIMARY KEY: 主键约束,唯一标识表中的每一行,隐含NOT NULLUNIQUE。一个表只能有一个主键(但主键可以由多个列组成)。
    * AUTO_INCREMENT: 通常用于主键列,使MySQL自动为新插入的行生成唯一的递增ID。
    * DEFAULT value: 为列设置默认值。
    * FOREIGN KEY: 外键约束,用于建立表与表之间的关联。

    示例:创建一个users
    sql
    CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    email VARCHAR(100) NOT NULL UNIQUE,
    full_name VARCHAR(100),
    registration_date DATE DEFAULT (CURRENT_DATE),
    last_login TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
    );

  • 查看表结构:
    sql
    DESCRIBE table_name;
    -- 或者简写:
    DESC table_name;
    -- 例如:
    DESC users;

    这将显示表的列名、数据类型、是否允许NULL、键信息、默认值等。

  • 修改表结构(ALTER TABLE): 用于添加、删除或修改列,添加/删除约束等。
    ```sql
    -- 添加新列
    ALTER TABLE table_name ADD COLUMN new_column_name data_type constraints;
    -- 例如: 添加 age 列
    ALTER TABLE users ADD COLUMN age INT NULL;

    -- 修改列定义
    ALTER TABLE table_name MODIFY COLUMN column_name new_data_type new_constraints;
    -- 例如: 将 full_name 长度增加到 150
    ALTER TABLE users MODIFY COLUMN full_name VARCHAR(150);

    -- 删除列
    ALTER TABLE table_name DROP COLUMN column_name;
    -- 例如: 删除 age 列
    ALTER TABLE users DROP COLUMN age;
    ```

  • 删除表(危险操作!): 永久删除表及其所有数据。
    sql
    DROP TABLE table_name;
    -- 例如:
    DROP TABLE users;

3. 数据操作(CRUD: Create, Read, Update, Delete)

  • 插入数据 (Create - INSERT): 向表中添加新行。
    sql
    INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

    如果为所有列按顺序提供值,可以省略列名列表:
    sql
    INSERT INTO table_name VALUES (value1_for_col1, value2_for_col2, ...);

    示例:向users表插入数据
    ```sql
    -- 指定列名插入
    INSERT INTO users (username, email, full_name) VALUES ('john_doe', '[email protected]', 'John Doe');

    -- 插入另一条记录,让 registration_date 使用默认值,last_login 为 NULL
    INSERT INTO users (username, email) VALUES ('jane_smith', '[email protected]');
    ``
    对于
    AUTO_INCREMENTid`列,不需要为其提供值,MySQL会自动生成。

  • 查询数据 (Read - SELECT): 从表中检索数据。
    sql
    SELECT column1, column2, ... FROM table_name; -- 选择特定列
    SELECT * FROM table_name; -- 选择所有列

    添加条件 (WHERE):
    ```sql
    SELECT column1, column2 FROM table_name WHERE condition;
    -- 例如: 查询用户名为 'john_doe' 的用户
    SELECT id, email, registration_date FROM users WHERE username = 'john_doe';

    -- 例如: 查询注册日期在 2023-01-01 之后的用户
    SELECT * FROM users WHERE registration_date > '2023-01-01';
    **排序 (ORDER BY):**sql
    SELECT * FROM users ORDER BY username ASC; -- 按用户名升序 (ASC 是默认)
    SELECT * FROM users ORDER BY registration_date DESC; -- 按注册日期降序
    **限制结果数量 (LIMIT):**sql
    SELECT * FROM users LIMIT 10; -- 只返回最多 10 条记录
    SELECT * FROM users ORDER BY id DESC LIMIT 5; -- 返回最新的 5 个用户
    ```

  • 更新数据 (Update - UPDATE): 修改表中已存在的记录。极其重要:务必使用WHERE子句指定要更新的行,否则将更新表中的所有行!
    sql
    UPDATE table_name SET column1 = new_value1, column2 = new_value2, ... WHERE condition;

    示例:更新john_doe用户的全名
    sql
    UPDATE users SET full_name = 'Johnathan Doe' WHERE username = 'john_doe';

    示例:将所有用户的last_login更新为当前时间(不推荐,仅作语法演示)
    sql
    -- 假设没有 WHERE 条件,将更新所有行!
    -- UPDATE users SET last_login = NOW();

  • 删除数据 (Delete - DELETE): 从表中删除行。极其重要:务必使用WHERE子句指定要删除的行,否则将删除表中的所有行!
    sql
    DELETE FROM table_name WHERE condition;

    示例:删除用户名为 jane_smith 的用户
    sql
    DELETE FROM users WHERE username = 'jane_smith';

    示例:删除所有注册日期早于 2022-01-01 的用户
    sql
    DELETE FROM users WHERE registration_date < '2022-01-01';

    示例:删除表中的所有数据(但保留表结构)
    sql
    DELETE FROM users; -- 非常危险,通常不推荐这样做,除非你确实想清空表
    -- 或者使用 TRUNCATE TABLE,效率更高,且不能回滚
    -- TRUNCATE TABLE users;

4. 用户管理与权限(简述)

出于安全考虑,不应总是使用root用户进行日常操作。应创建具有适当权限的专用用户。

  • 创建用户:
    sql
    CREATE USER 'new_username'@'host' IDENTIFIED BY 'password';
    -- 'host' 可以是 'localhost' (仅限本地连接), '%' (任何主机), 或特定IP/域名
    -- 例如: 创建一个只能从本地连接的用户
    CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'SecurePassword123';
    -- 例如: 创建一个可以从任何地方连接的用户 (需谨慎)
    CREATE USER 'remote_user'@'%' IDENTIFIED BY 'AnotherSecureP@ss';

  • 授予权限 (GRANT):
    ```sql
    GRANT privilege1, privilege2, ... ON database_name.table_name TO 'username'@'host';
    -- 常用权限: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, ALL PRIVILEGES
    -- ON 可以指定 specific_db. (数据库所有表), specific_db.specific_table, 或 .* (所有数据库所有表,非常危险)

    -- 例如: 授予 app_user 对 my_test_db 数据库中所有表的 SELECT, INSERT, UPDATE, DELETE 权限
    GRANT SELECT, INSERT, UPDATE, DELETE ON my_test_db.* TO 'app_user'@'localhost';

    -- 授予所有权限 (管理员级,慎用)
    -- GRANT ALL PRIVILEGES ON my_test_db.* TO 'admin_user'@'localhost';

    -- 使权限生效
    FLUSH PRIVILEGES;
    ```

  • 查看用户权限:
    sql
    SHOW GRANTS FOR 'username'@'host';
    -- 例如:
    SHOW GRANTS FOR 'app_user'@'localhost';

  • 撤销权限 (REVOKE):
    sql
    REVOKE privilege1, privilege2, ... ON database_name.table_name FROM 'username'@'host';
    -- 例如: 撤销 app_user 的 DELETE 权限
    REVOKE DELETE ON my_test_db.* FROM 'app_user'@'localhost';
    FLUSH PRIVILEGES;

  • 删除用户:
    sql
    DROP USER 'username'@'host';
    -- 例如:
    DROP USER 'remote_user'@'%';

5. 备份与恢复(简述)

数据备份至关重要。MySQL提供了mysqldump工具用于逻辑备份。

  • 备份单个数据库:
    bash
    mysqldump -u username -p database_name > backup_file.sql

    (会提示输入密码)

  • 备份所有数据库:
    bash
    mysqldump -u root -p --all-databases > all_databases_backup.sql

  • 备份特定表:
    bash
    mysqldump -u username -p database_name table1 table2 > tables_backup.sql

  • 恢复备份: 使用mysql客户端导入.sql文件。
    bash
    mysql -u username -p database_name < backup_file.sql

    如果是包含CREATE DATABASE语句的完整备份,可以先不指定数据库名,或者先手动创建空数据库再导入:
    ```bash
    # 如果备份文件包含 CREATE DATABASE
    mysql -u root -p < all_databases_backup.sql

    如果备份文件不包含 CREATE DATABASE,需要先创建

    mysql -u root -p -e "CREATE DATABASE database_name;"

    mysql -u root -p database_name < backup_file.sql

    ```

五、 总结与后续学习

恭喜你!通过本文,你已经了解了MySQL的基本概念,掌握了在不同操作系统上安装MySQL服务器的方法,学会了如何连接服务器,并初步实践了使用SQL进行数据库、表和数据的基本操作(CRUD),以及用户管理和备份恢复的基础知识。

这只是MySQL世界的冰山一角。要成为一名熟练的MySQL使用者或管理员,你还需要继续学习:

  • 更深入的SQL: 连接(JOINs)、子查询、聚合函数(COUNT, SUM, AVG, MAX, MIN)、分组(GROUP BY)、视图(VIEWs)、存储过程(Stored Procedures)、触发器(Triggers)、函数(Functions)。
  • 索引(Indexing): 理解索引的工作原理,如何创建和优化索引以提高查询性能。
  • 存储引擎: 深入了解InnoDB(事务、行级锁、外键)和MyISAM(表级锁、全文索引)等存储引擎的特性和适用场景。
  • 事务处理与并发控制: 理解ACID属性,隔离级别,锁机制。
  • 性能优化: 查询分析(EXPLAIN),服务器配置调优,硬件选择。
  • 高可用与扩展: 主从复制(Replication),读写分离,MySQL集群(MySQL Cluster, Galera Cluster),分库分表。
  • 安全性: 更详细的权限管理,SSL/TLS加密连接,防止SQL注入等。
  • 与应用程序集成: 学习如何在你的编程语言(如Python的mysql-connector-pythonPyMySQL,Java的JDBC,PHP的mysqli或PDO等)中连接和操作MySQL。

不断实践,构建项目,解决实际问题是掌握MySQL的最佳途径。希望本文能为你开启精彩的MySQL学习之旅提供一个坚实的起点。


THE END