MySQL 教程

MySQL 环境搭建

🎉摘要:本文详细介绍了MySQL在Windows、Linux(Ubuntu/Debian、CentOS/RHEL)及Docker环境下的安装步骤,包括安装包选择、配置、环境变量设置、服务启动和连接验证。同时提供了命令行和图形化工具(如DBeaver、Workbench)连接MySQL服务器的方法,以及安装后的基本配置建议,如字符集和时区设置,帮助用户快速完成MySQL的部署与使用。

MySQL 支持多平台,下面介绍如何在 Windows、Linux 平台安装 MySQL。

Windows 环境下安装 MySQL

使用安装包安装

访问 MySQL 官方下载页面(https://dev.mysql.com/downloads/mysql/),选择 Windows 平台的 MSI Installer。建议下载较大的那个安装包(几百MB),它包含了所有必要的组件,不需要额外下载。如下图:

image.png

安装过程中需要注意以下几点:

  1. 选择安装类型:初学者建议选择 "Server only",只安装数据库服务器。如果你想一并安装图形化管理工具,可以选择 "Full"。

  2. 配置root密码:安装向导会提示设置 root 用户的密码。root 是 MySQL 的超级管理员,务必设置一个强度足够的密码并妥善保管(学习环境可以设置一个好记的密码,避免忘记)。

  3. Windows服务:建议勾选 "Configure MySQL Server as a Windows Service",这样 MySQL 会随系统启动而自动运行。

  4. 端口号:默认使用3306端口,如果该端口已被占用(比如之前装过 MySQL),可以改为其他端口如 3307。

安装完成后,打开命令提示符,输入以下命令验证安装是否成功:

mysql --version

如果看到类似 "mysql Ver 8.0.xxx for Win64" 的输出版本信息,说明安装成功了。

配置环境变量

为了在任何目录下都能使用 mysql 命令,需要将 MySQL 的 bin 目录添加到系统环境变量 Path中。

默认安装路径通常是 C:\Program Files\MySQL\MySQL Server 8.x\bin。添加完成后,新开一个命令提示符窗口,输入 mysql --version 测试。

详细教程请参考 Windows 安装 zip 版本的 MySQL8 文章。

Linux 环境下安装 MySQL

在 Linux 服务器上部署 MySQL 更为常见。以下是几种主流发行版的安装方法。

Ubuntu/Debian

# 更新软件包索引
sudo apt update

# 安装MySQL服务器
sudo apt install mysql-server

# 安装完成后,MySQL会自动启动。检查状态:
sudo systemctl status mysql

# 运行安全脚本,设置root密码等
sudo mysql_secure_installation

CentOS/RHEL

# 下载MySQL官方Yum源
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

# 安装Yum源
sudo rpm -Uvh mysql80-community-release-el7-11.noarch.rpm

# 安装MySQL服务器
sudo yum install mysql-community-server

# 启动服务
sudo systemctl start mysqld

# 查看初始密码(CentOS安装后会生成临时密码)
sudo grep 'temporary password' /var/log/mysqld.log

# 修改root密码
mysql -u root -p
# 登录后执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

Docker安装(推荐开发环境使用)

如果你本地已经装了 Docker(不会 Docker 请学习 Docker 教程),这是最省事的安装方式:

# 拉取MySQL 8.0镜像
docker pull mysql:8.0

# 运行容器
docker run --name mysql8 \
  -e MYSQL_ROOT_PASSWORD=你的密码 \
  -p 3306:3306 \
  -d mysql:8.0

# 进入容器内部
docker exec -it mysql8 bash

# 登录MySQL
mysql -u root -p

Docker 方式的优势是干净、隔离,不想用了直接删除容器就行,不会影响主机环境。

实战如下:

(1)拉取镜像,笔者这里已经拉取过了,因此非常快,如果没有拉取过,需要等待镜像下载完成

[root@centos9 ~]# docker pull mysql:8.0
8.0: Pulling from library/mysql
Digest: sha256:7dcddc01f13bab2f15cde676d44d01f61fc9f99fe7785e86196dfc07d358ae2b
Status: Image is up to date for mysql:8.0
docker.io/library/mysql:8.0

(2)查看镜像信息,如下:

[root@centos9 ~]# docker images | grep mysql
mysql                                               8.0           6cd09145362d   2 months ago    799MB

(3)创建容器,这里采用最简单的方式进行创建

[root@centos9 ~]# docker run --name mysql8 \
  -e MYSQL_ROOT_PASSWORD=aaaaaa \
  -p 3306:3306 \
  -d mysql:8.0
db3dfe8b69e569dfd96085644b4b4204c5bf680f58af24780cc63bc588531740

(4)查看创建的新容器

[root@centos9 ~]# docker ps | grep mysql
db3dfe8b69e5   mysql:8.0   "docker-entrypoint.s…"   10 seconds ago   Up 10 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql8

到这里,mysql8 的镜像就创建完成了。

(5)进入容器,容器内部提供了 mysql 命令,可以使用该命令连接 mysql

[root@centos9 ~]# docker exec -it mysql8 bash
bash-5.1#

成功进入容器,可以继续实现后续的连接 MySQL 服务器的操作了。

连接MySQL服务器

安装完成后,我们可以使用 mysql 客户端工具连接服务器(docker 安装方式需要进入到容器内部才能执行 mysql 命令,进入容器内部 docker exec -it mysql8 bash)。

命令行连接

下面是连接 mysql 的命令语法:

# 基本连接语法
mysql -u 用户名 -p

# 输入密码后进入 MySQL 命令行界面
# 或者直接在命令行中指定密码(不推荐,历史记录会暴露密码)
mysql -u root -p你的密码

# 连接远程服务器
mysql -h 服务器地址 -P 端口号 -u 用户名 -p

# 示例:连接IP为192.168.1.100的MySQL服务器
mysql -h 192.168.1.100 -P 3306 -u root -p

示例:

进入到 Docker 容器内部,如果不是 Docker,可以忽略。如果是 Windows / Linux 进入命令行:

[root@centos9 ~]# docker exec -it mysql8 bash
bash-5.1#

查看 mysql 的版本信息,验证 MySQL 是否可用:

bash-5.1# mysql --version
mysql  Ver 8.0.46 for Linux on x86_64 (MySQL Community Server - GPL)

使用 mysql 命令登录到 mysql,如下:

bash-5.1# mysql -u root -p
Enter password:   # 注意,这里需要输入密码

成功登录后,会看到如下提示:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.46 MySQL Community Server - GPL

Copyright (c) 2000, 2026, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

注意,“mysql>”就是 MySQL 的命令提示符,表示等待输入SQL语句。

常用的MySQL命令行操作

在 MySQL 命令行中,除了执行 SQL 语句,还有一些实用的快捷命令,查看 mysql 中的数据库、表等信息:

(1)show databases  查看当前有哪些数据库,例如:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

(2)CREATE DATABASE  创建数据库,例如:

mysql> create database testdb;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.00 sec)

(3)USE testdb  切换到某个数据库,例如:

mysql> use testdb;  # 切换到 testdb 数据库
Database changed
mysql> use mysql;   # 再次切换到 mysql 数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

(4)SHOW TABLES  查看当前数据库中有哪些表,例如:

mysql> show tables;
+------------------------------------------------------+
| Tables_in_mysql                                      |
+------------------------------------------------------+
| columns_priv                                         |
| component                                            |
| db                                                   |
...
| time_zone_transition                                 |
| time_zone_transition_type                            |
| user                                                 |
+------------------------------------------------------+
38 rows in set (0.00 sec)

(5)EXIT 或 QUIT  推出 MySQL 命令行,或者按 Ctrl+D (Linux/Mac) / Ctrl+C (Windows),例如:

mysql> exit;
Bye
bash-5.1# 

# 或者

mysql> quit;
Bye
bash-5.1#

注意:SQL 语句以分号“;”结尾表示语句结束,按回车才会执行。如果只按回车没写分号,MySQL会认为语句还没写完,会继续等待输入。例如:将 show databases; 语句分为三行。

mysql> show
    -> databases
    -> ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.00 sec)

使用图形化工具

命令行操作虽然高效,但对于初学者来说,图形化工具更直观。推荐几款常用的 MySQL 管理工具:

  • MySQL Workbench:官方出品,功能全面,完全免费。包含数据库设计、SQL开发、服务器管理等功能。缺点是界面略显老旧,启动较慢。

  • Navicat:付费软件,但功能非常强大,界面美观。支持连接多种数据库(MySQL、PostgreSQL、SQLite、Oracle 等),数据传输、同步、备份等功能一应俱全。

  • DBeaver:开源免费,基于 Java 开发,跨平台。功能接近 Navicat,社区版已经足够日常使用。

  • DataGrip:JetBrains 出品,智能提示做得非常好,适合开发者。收费但学生可以免费申请。

  • HeidiSQL:Windows 平台上的轻量级免费工具,体积小巧但功能齐全。

对于学习阶段,推荐安装 MySQL Workbench 或 DBeaver,两者都完全免费且功能足够。下面将使用 DBeaver 连接到 MySQL:

1、打开 DBeaver,点击新建连接按钮,选择 MySQL 数据库。如果没有安装点击链接 https://dbeaver.io/download/  下载安装,可以选择 exe 或者便携版 zip 包,下载解压就可以使用。

image.png

在弹出的连接信息框中输入MySQL服务的主机地址、端口、账号和密码,如下图:

image.png

然后点击“测试连接”,如果是第一次连接到 MySQL 服务器,会提示下载 JDBC 驱动,直接下载即可。此时连接,抛出了如下错误:

image.png

这个报错不是网络不通,是 MySQL8.0 新版 JDBC 驱动安全限制。可以修改数据库,或者在 DBeaver 设置即可,下面教你如果通过设置 DBeaver 解决该问题:

image.png

再次点击“测试连接”,效果如下图:

image.png

恭喜,连接成功了,后续所有学习均将在 DBeaver 下面进行,这对学习非常方便。

安装后的基本配置

MySQL安装后有一些配置建议调整,以便更好地使用。

修改字符集配置

MySQL 8.0 默认使用 utf8mb4 字符集,这很好。但如果你安装的是 5.7或更早版本,建议修改配置文件确保使用 utf8mb4(因为 mysql 的 utf8 不是完整的,导致表情符号不能存储,而 utf8mb4 才是完整的 UTF8 编码),配置方式如下:

如果是 Docker 容器安装的 MySQL,使用 docker exec -it mysql8 bash 进入到容器,在 /etc 下面可以找到 my.cnf。

找到 my.cnf(Linux)或 my.ini(Windows)配置文件,在  [mysqld] 段落下添加:

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

修改后重启 MySQL 服务生效。

修改默认时区

默认情况下 MySQL 使用系统时区。如果你希望使用北京时间,可以修改配置:

[mysqld]
default_time_zone='+8:00'

或者在连接时指定:

mysql -u root -p --default-character-set=utf8mb4 --default-time-zone='+8:00'

更多 MySQL 知识,请阅读后续章节。

  

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号