【MySQL_02】安装(8.4.4LTS : Windows + Linux)
文章目录
- 一、版本说明
- 二、官网下载
- 三、Windows安装
- 3.1 安装和配置
- 3.2 后续操作
- 3.21 使用自带命令行客户端
- 3.22 添加环境变量
- 3.33 安装图像化界面
- 3.33.1 MySQL WorkBench
- 3.33.2 Navicat
- 四、Linux安装
- 4.1 安装
- 4.2 远程连接
- 4.3 安装默认示例数据库
历史文章点击👉:SQL
🐈⬛github:https://github.com/mysql
💻官网: https://www.mysql.com
🌏维基百科:https://zh.wikipedia.org/wiki/MySQL
一、版本说明
按许可证分类:
版本 | 特点 | 优势 | 适用场景 |
---|---|---|---|
社区版(Community Edition ) | 免费开源,基于 GPL 许可证,适合中小型企业、开发环境。 | 无成本,适合预算有限的项目;社区支持活跃,文档丰富。 | 中小型企业、开发环境、个人项目、教育用途。 |
企业版(Enterprise Edition) | 付费版,提供完整功能和技术支持,包含高级工具和服务。 | 包括备份工具、高级安全功能(如数据加密、审计日志)、性能监控和调优工具;官方技术支持。 | 大型企业、高安全性需求场景、关键业务系统。 |
集群版(Cluster Edition) | 开源免费,基于 GPL 许可证,支持分布式数据库架构和高可用性。 | 支持高可用性和分布式数据库架构;适合需要横向扩展的场景。 | 需要高可用性和扩展性的场景,如 Web 应用、物联网。 |
高级集群版(Cluster CGE) | 需付费,提供高级集群功能和技术支持,基于 MySQL NDB Cluster。 | 提供更强大的集群管理功能、高可用性和实时性能优化;官方技术支持。 | 大型企业、高并发和高可用性需求的场景,如金融、电信。 |
嵌入式版(Embedded Edition) | 免费开源,专为嵌入式系统设计,占用资源较少。 | 轻量级,适合资源受限的环境;易于集成到应用程序中。 | 嵌入式系统、IoT 设备、移动应用。 |
经典版(Classic Edition) | 旧版 MySQL,基于 MyISAM 存储引擎,现已逐渐淘汰。 | 简单易用,适合传统应用。 | 旧系统维护、传统应用迁移。 |
主要版本号:
版本 | 发布时间 | 主要特性 |
---|---|---|
MySQL 5.5 | 2010年 | InnoDB 成为默认存储引擎。 |
MySQL 5.6 | 2013年 | 支持全文索引、GTID 复制等。 |
MySQL 5.7 | 2015年 | 支持 JSON 数据类型、性能优化、安全性提升。 |
MySQL 8.0 | 2018年 | 支持 UTF-8mb4 字符集、窗口函数、增强的 JSON 功能。 |
MySQL 8.4 | 2024年4月 | 长期支持版本(LTS)。 |
MySQL 9.2 | 2025年1月 | 最新创新版本( Innovation),带来了大量针对 JavaScript 和存储程序的改进。 |
版本后缀:
后缀 | 含义 |
---|---|
GA (General Availability) | 正式发布版本,稳定且可用于生产环境。 |
RC (Release Candidate) | 候选发布版本,接近正式版,但仍可能存在未发现的 bug。 |
Beta | 测试版本,功能基本完成,但可能存在较多 bug,不建议用于生产环境。 |
Alpha | 早期测试版本,功能不完整,仅用于开发和测试。 |
LTS (Long-Term Support) | 长期支持版本,提供长时间的安全更新和技术支持。 |
Innovation | 创新版本,引入新功能和实验性特性,适合开发者和早期采用者。 |
DMR (Development Milestone Release) | 开发里程碑版本,用于展示新功能和改进,通常不稳定。 |
安装包格式:
后缀 | 含义 |
---|---|
Source | 源代码版本,需手动编译安装。 |
Compressed | 压缩版本,通常以压缩包形式提供,需解压后使用。 |
RPM (Red Hat Package Manager) | 适用于 Red Hat 系列 Linux 系统的安装包格式。 |
DEB (Debian Package) | 适用于 Debian 系列 Linux 系统的安装包格式。 |
MSI (Microsoft Installer) | 适用于 Windows 系统的安装包格式。 |
DMG (Disk Image) | 适用于 macOS 系统的安装包格式。 |
二、官网下载
🔹🔹下载可能需要登录Oracle账户,自己注册即可。
🟢本文安装第一小节里面标红的版本,即社区版、LTS,操作系统为Windows和Linux(MacOS安装相应的版本即可)。
再MySQL官网点击Downloads
即可选择要下载的内容。
比如在Downloads界面下方选择社区版:MySQL Community (GPL) Downloads »
进去有很多选项:本文主要下载的是MySQL Community Server这一项。
☘️其它选项说明:
类别 | 名称 | 说明 |
---|---|---|
MySQL 下载源 | MySQL Community Downloads | MySQL 社区版的官方下载页面。 |
MySQL Yum Repository | 适用于基于 RPM 的 Linux 系统(如 CentOS、RHEL)的 Yum 仓库。 | |
MySQL APT Repository | 适用于基于 Debian/Ubuntu 系统的 APT 仓库。 | |
MySQL SUSE Repository | 适用于 SUSE Linux 系统的仓库。 | |
MySQL 核心产品 | MySQL Community Server | MySQL 的免费开源数据库服务器。 |
MySQL NDB Cluster | MySQL 的高可用性、实时集群解决方案。 | |
MySQL Router | 用于将应用程序流量路由到 MySQL 服务器的轻量级中间件。 | |
MySQL Shell | MySQL 的高级命令行客户端,支持 JavaScript、Python 和 SQL。 | |
MySQL Operator | 用于在 Kubernetes 上管理 MySQL 集群的 Operator。 | |
MySQL NDB Operator | 用于在 Kubernetes 上管理 MySQL NDB 集群的 Operator。 | |
MySQL Workbench | MySQL 的官方图形化管理工具,支持数据库设计、开发和管理。 | |
MySQL 安装工具 | MySQL Installer for Windows | Windows 平台上的 MySQL 安装工具,支持安装多个 MySQL 产品和组件。 |
C API (libmysqlclient) | MySQL 的 C 语言客户端库,用于开发 MySQL 应用程序。 | |
Download Archives | MySQL 的历史版本下载存档。 | |
MySQL 连接器 | Connector/C++ | 用于 C++ 的 MySQL 连接器。 |
Connector/J | 用于 Java 的 MySQL 连接器(JDBC 驱动)。 | |
Connector/NET | 用于 .NET 平台的 MySQL 连接器。 | |
Connector/Node.js | 用于 Node.js 的 MySQL 连接器。 | |
Connector/ODBC | 用于 ODBC 的 MySQL 连接器。 | |
Connector/Python | 用于 Python 的 MySQL 连接器。 | |
MySQL Native Driver for PHP | 用于 PHP 的 MySQL 原生驱动(mysqlnd)。 | |
其他工具和数据 | MySQL Benchmark Tool | 用于测试 MySQL 性能的工具。 |
Time zone description tables | MySQL 的时区描述表,用于支持时区功能。 |
较新的版本(2025-03-05):https://dev.mysql.com/downloads/mysql/
历史版本下载:https://downloads.mysql.com/archives/community/
(上面的连接都是MySQL官网的,若失效,官网下载即可)
选择版本和操作系统即可:
三、Windows安装
3.1 安装和配置
下载上图中的 8.4.4 LTS Windows MSI
安装包。
双击安装,这里先安装typical
版本吧,后面需要其它组件再安装即可。
安装完后,不要取消勾选进入Configuratior
,然后完成,即可进入配置向导。
每个选项基本都有小字说明的,仔细看看就明白了。
取消勾选了也没事,自己打开即可:
后面要修改MySQL的设置,再次打开MySQL Configuratior修改就行了。
(1)自己设置数据保存目录:
(2)配置类型和网络:
-
配置类型(
Config Type
)- Development Computer:开发环境,占用较少资源,适合个人开发或测试。
- Server Computer:服务器环境,优化性能,适合中小型应用。
- Dedicated Computer:专用服务器,最大化性能,适合大型应用或高并发场景。
-
连接性
- 打开或关闭TCP连接,以及设置相应的端口。
- Named Pipe 是一种用于进程间通信(IPC)的机制,适用于 Windows 系统。它允许客户端和服务器通过一个命名的管道进行通信。
- Shared Memory 是另一种本地通信机制,适用于 Windows 系统。它通过共享内存区域实现客户端和服务器之间的高效数据传输。
-
Advanced Configuration 暂时不打开,是一些高级的设置。
(3) root账户密码设置-添加账户
设置root账户密码,以及添加其它用户。
暂时没有添加用户,比如你的用户只能查询,就可以添加一个相应的用户。
(4)Windows Service选项
在 Windows 系统上,MySQL 可以作为服务运行。通过将 MySQL 配置为 Windows 服务,可以实现 MySQL 的自动启动、停止和管理。
配置成Windows服务的好处就是: 服务可以设置为随 Windows 系统启动,无需手动启动 MySQL 服务器;可以后台运行等等。
选择配置:可以设置服务名称、是否开机自启动、以什么身份运行。
这里暂时不配置(不勾选),看实际需求即可。
(5)服务器文件权限:
可以运行所有用户,也可以自己设置。比如我选中系统和我当前登录的账户14143,(绿色箭头移动用户,左边有完全控制权限,右边没有)
(6)安装示例数据
就按照一些示例的数据库,给你学习、测速用。好多软件都有这个选项的。
- world: 包含国家、城市和语言信息。
- sakila: 模拟一个 DVD 租赁商店的数据库。
我都选上了:
(7)应用以上选项
点击Execute
即可应用前面的选项,等待完成即可。
后面要修改MySQL的设置,再次打开MySQL Configuratior修改就行了。
3.2 后续操作
3.21 使用自带命令行客户端
安装之后会自带一个客户端:
进去,输入之前设置的密码即可看到MySQL 的命令行提示符:
一些简单语句:
查看所有数据库:
SHOW DATABASES;
创建新数据库:
CREATE DATABASE mydatabase;
使用某个数据库:
USE mydatabase;
查看当前数据库中的表:
SHOW TABLES;
创建表:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
插入数据:
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
查询数据:
SELECT * FROM users;
删除数据:
DELETE FROM users WHERE id = 1;
退出 MySQL 命令行:
EXIT;
示例:之前安装的时候我安装了2个可选的数据库:world
和sakila
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
6 rows in set (0.01 sec)
mysql> use sakila;
Database changed
mysql> show tables;
+----------------------------+
| Tables_in_sakila |
+----------------------------+
| actor |
| actor_info |
| address |
| category |
| city |
| country |
| customer |
| customer_list |
| film |
| film_actor |
| film_category |
| film_list |
| film_text |
| inventory |
| language |
| nicer_but_slower_film_list |
| payment |
| rental |
| sales_by_film_category |
| sales_by_store |
| staff |
| staff_list |
| store |
+----------------------------+
23 rows in set (0.01 sec)
mysql> select * from actor;
+----------+-------------+--------------+---------------------+
| actor_id | first_name | last_name | last_update |
+----------+-------------+--------------+---------------------+
| 1 | PENELOPE | GUINESS | 2006-02-15 04:34:33 |
| 2 | NICK | WAHLBERG | 2006-02-15 04:34:33 |
| 3 | ED | CHASE | 2006-02-15 04:34:33 |
| 4 | JENNIFER | DAVIS | 2006-02-15 04:34:33 |
| 5 | JOHNNY | LOLLOBRIGIDA | 2006-02-15 04:34:33 |
| 6 | BETTE | NICHOLSON | 2006-02-15 04:34:33 |
| 7 | GRACE | MOSTEL | 2006-02-15 04:34:33 |
| 8 | MATTHEW | JOHANSSON | 2006-02-15 04:34:33 |
| 9 | JOE | SWANK | 2006-02-15 04:34:33 |
后面省略
除了安装的2个示例数据库,还有几个其他的:
Database | 用途 | 是否可修改 | 示例查询 |
---|---|---|---|
information_schema | 存储 MySQL 服务器的元数据,如数据库、表、列、权限等信息。 | 只读 | SELECT * FROM information_schema.TABLES; |
mysql | 存储 MySQL 的系统数据,如用户权限、插件、日志等。 | 可修改 | SELECT user, host FROM mysql.user; |
performance_schema | 存储 MySQL 服务器的性能监控数据,用于分析和优化性能。 | 只读 | SELECT * FROM performance_schema.events_statements_summary_by_digest; |
sakila | 示例数据库,模拟 DVD 租赁商店的业务场景,适合练习 SQL 查询。 | 可修改 | SELECT * FROM sakila.customer LIMIT 10; |
sys | 基于 performance_schema 和 information_schema ,提供更易读的性能监控视图。 | 只读 | SELECT * FROM sys.session; |
world | 示例数据库,包含国家、城市和语言的数据,适合练习 SQL 查询。 | 可修改 | SELECT * FROM world.city WHERE CountryCode = 'USA'; |
3.22 添加环境变量
添加环境变量后就可以在其它地方使用mysql了,比如powershell、cmd等等。
这个也是很多软件的常规操作,把bin
目录(即二进制可执行文件目录)添加到环境变量即可。
在任意mysql相关软件上右键打开文件所在位置:
复制这个目录,添加到环境变量即可:
现在就可以在power shell连接了:
mysql -u root -p
3.33 安装图像化界面
数据库的 命令行是用的比较少的,界面稍多,编程语言最多。
界面,就是把命令换成界面的点点点了,你自己都可以写一个界面。不过这里介绍的是大家常用的两个,还有其它的,也可以去搜一搜。
工具名称 | 平台支持 | 特点 | 适用场景 |
---|---|---|---|
MySQL Workbench | 跨平台 | 功能全面,官方支持 | 开发者、DBA |
phpMyAdmin | Web 端 | 基于 Web,适合远程管理 | Web 开发者、小型团队 |
HeidiSQL | Windows | 轻量级、开源 | 个人开发者 |
DBeaver | 跨平台 | 支持多种数据库 | 多数据库用户 |
Navicat for MySQL | 跨平台 | 功能强大,企业级支持 | 企业用户、开发者 |
Sequel Pro | macOS | 专为 macOS 设计 | macOS 用户 |
Adminer | Web 端 | 轻量级、单文件 | 简单管理需求 |
DataGrip | 跨平台 | 专业数据库 IDE | 专业开发者、团队 |
SQLyog | Windows | 功能丰富 | Windows 用户 |
Beekeeper Studio | 跨平台 | 开源、现代界面 | 个人开发者、小型团队 |
3.33.1 MySQL WorkBench
这是官方的。
链接:https://dev.mysql.com/downloads/workbench/
自己安装即可。没啥可说的。
先确保mysql是运行的。
点击新建连接:连接名称自己设置,后面是地址、端口、用户名、密码这些,自己填即可。完成后就会出现下图左边所示的连接(test),点击即可进入。
点击左下方的Schemas
即可看到默认存在的数据库,我在表actor
上右键选择前1000行,即可自动生成查询语句和结果。
软件汉化自己搜即可。
3.33.2 Navicat
官网:https://www.navicat.com.cn/
学生可以申请优惠。
这个支持很多数据库:
这软件还是挺好用的:
四、Linux安装
4.1 安装
本文使用Ubuntu22.04
。
🟢 官方教程文档:https://dev.mysql.com/doc/refman/8.4/en/linux-installation-apt-repo.html
我基本上就是搬过来了。
☘️ (1)新建一个暂存目录(非必须):
mkdir mysql_temp
# 进入
cd mysql_temp
☘️ (2)下载mysql apt 的存储库文件
ubuntu就是apt包管理器,你下载软件的时候,要配置源,即从哪里下载这个软件。这一步的功能就是设置从哪里下载mysql的。
还是mysql官网,downloads,页面下方MySQL Community (GPL) Downloads »,之后进入下面这个页面:
debian,Ubuntu 就进入APT的仓库,其它的进入相应的仓库即可。
在这个下载按钮上右键,复制链接:
然后在Ubuntu上下载即可:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
没
wget
的自己apt安装一下即可。
☘️ (3)安装下载的deb包
后面的名字以实际下载的为准。
sudo dpkg -i mysql-apt-config_0.8.33-1_all.deb
安装过程需要选择你要安装的包:
前两个选项,enter,进去选择即可。选完了,再选中第三行的OK
,回车,即可。
☘️ (4)更新apt 源
sudo apt update
☘️ (5)安装
sudo apt install mysql-server
这将安装 MySQL 服务器的软件包以及客户端和数据库公共文件的软件包。
在安装过程中,系统会要求您为 MySQL 安装的 root 用户提供密码。密码要记住哦。
🟢 (6)运行
安装完之后应该会自动运行的。
但也有例外,比如mysql默认端口是3306,如果这个端口已经被其它应用占用了,就无法运行了。
比我的docker已经使用了3306端口:
ubuntu@VM-12-15-ubuntu:~/mysql_temp$ sudo lsof -i :3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 5833 root 4u IPv4 26444 0t0 TCP localhost:mysql (LISTEN)
这时候可以关闭占用的进程,或者给mysql设置其它端口。
编辑配置文件
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
添加端口配置(3360是我的一个空闲端口):
port = 3360
启动mysql server:
sudo systemctl start mysql
查看状态:
sudo systemctl status mysql
如果有还是无法运行,查看日志:
cat /var/log/mysql/error.log
4.2 远程连接
现在我在 Windows 的navicat上连接刚刚安装的 mysql:
注意:
- 如果Ubuntu开启了防火墙,那要放行mysql使用的端口(这个基本操作不说了)。
- 默认不能使用root账户进行远程连接。
- mysql默认不开启远程连接。
在Ubuntu上登录mysql:
sudo mysql -u root -p
然后输入:
SELECT user, host FROM mysql.user;
可以看到root用户只运行本地登录。
可以修改root允许远程登录,但是不建议。
🔹这里新建一个普通用户来远程登录:
(将remote_user替换为你的用户名,password替换为你的密码)
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'strong_password';
- %:表示允许从任何主机连接。如果只想允许特定IP地址连接,可以将%替换为具体的IP地址。
🔹📖给用户授予权限:
(a)所有数据库所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
(b)授予特定数据库的所有权限(将database_name替换为你的数据库名):
GRANT ALL PRIVILEGES ON database_name.* TO 'remote_user'@'%';
(c)授予特定数据库的只读权限:
GRANT SELECT ON database_name.* TO 'remote_user'@'%';
🔹刷新权限使权限生效:
FLUSH PRIVILEGES;
🔹现在应该还是不能远程连接的,停止mysql:
sudo systemctl stop mysql
然后编辑配置文件,允许远程连接:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
添加:
bind-address = 0.0.0.0
保存,重启mysql:
sudo systemctl restart mysql
🟢 现在可以远程连接了:
4.3 安装默认示例数据库
之前Windows那里已经介绍过了。
下载地址:https://dev.mysql.com/doc/index-other.html
我还是下载到之前的暂存文件夹:
wget https://downloads.mysql.com/docs/sakila-db.zip
解压:
unzip sakila-db.zip
得到3个文件:
登录mysql:
mysql -u root -p
执行sakila-schema.sql脚本来创建数据库结构,并执行 sakila-data.sql脚本来填充数据库结构,使用以下命令:
source /home/ubuntu/mysql_temp/sakila-db/sakila-schema.sql;
source /home/ubuntu/mysql_temp/sakila-db/sakila-data.sql;
已安装(Navicat右键刷新一下):