目录
一、前言
前阵子要安装MySQL,直接在官网下载了一个安装包,打开安装时,傻眼了,我记得之前的安装方式不是这样子的,是哪里搞错了吗?
看了之前另外一台电脑的安装记录,才发现,下载的安装包不一样,之前使用zip安装包,这次下载的是msi安装包。
然后在网上溜了一圈,发现很多文章都只是介绍了其中的一种安装方式,也没有进行一个差异化比较。
本着求索的心态,我仔细琢磨了一下,发现安装大同小异,但是有些东西,还是需要注意一下,于是梳理一下过程中的一些异同点和你分享一下,下面一起来看看。
本教程配置如下:
系统:windows 10(其他版本大同小异)
MySQL版本:mysql-8.0.29-winx64(其他版本大同小异)
二、官网产品介绍及文件下载
2.1 产品介绍
MySQL官网上提供了两类安装包,分别是zip安装包和msi安装包。
这两类安装都可以实现在本地安装MySQL服务器,但是过程中有一些不同。
- zip安装包是一个预安装的压缩包,下载完解压再配置下参数便可使用;
- msi安装包是一个未安装的程序包,下载完需要进一步安装。
两种方式上有一些关键点是不同的,对比如下:
项目 | zip安装 | msi安装 |
自定义安装路径 | 支持 | 不支持 |
手动初始化配置 | 需要 | 不需要 |
添加环境变量 | 需要 | 需要 |
密码设置 | 随机初始密码,首次登录后修改 | 配置过程自定义 |
产品内容 | 仅MySQL Server,不含MySQL Client,可通过命令提示符或第三方编辑器接入 | 全家桶任选:MySQL Server、MySQL Workbench、MySQL Shell、MySQL Router、MySQL Documentation、Samples and Examples、Connector/ODBC、Connector/C++、Connector/J、Connector/NET |
使用场景 | 专注SQL训练 | SQL训练+其他 |
喜点 | 方便快捷、自定义安装 | 多产品任选,图形可视化操作 |
痛点 | 命令行操作、随机初始密码输入很头疼 | 安装配置流程很长 |
zip安装方式通过命令提示符(CMD或shell)执行相关命令初始化和激活MySQL,有个小小的门槛,用户最好能熟悉命令行操作,不熟悉的话建议通过msi安装包安装;msi安装包是图形化化向导型的安装方式,通过不断地【Next】基本就能完成。
还有一点zip安装包安装是纯净式安装,仅安装MySQL Server,如果需要编辑器,需要另外配置,不然只能命令行敲代码;而msi安装包可以选择多安装一些图形界面的编辑器一起安装,一步到位。
关于图形化编辑器,市面上有很多,免费收费的都有,感兴趣可以搜一下【mysql 编辑器】会有很多介绍。
除了一些比较专业的编辑器,还有很多插件,适合使用多种语言的用户,这里介绍一款自己常用编辑器,是在VS code上的一个MySQL插件——在VS code拓展界面,搜索mysql ,找到如下图标的插件,点击右下角的 【安装】(我已经安装过,所以显示成更新)。
安装完该插件之后连接数据库,可以直接点击数据库中的表查看表数据,也可以创建 .sql 后缀的文件敲代码,选中代码之后 Ctrl+Enter 可以运行代码。在VS code上使用该插件,主要是方便切换到其他的语言进行相关工作,不用使用一堆工具包来回切换。
读者可根据自身情况和需求进行选择~~~下面开始分别介绍这两种安装方式~~~
补充:MySQL server是我们的本地服务器,地址127.0.0.1,端口号是3306,服务器的程序是mysqld,在后台运行;而我们敲代码的命令行和编辑器都是客户端,运行程序是mysql。
2.2 文件下载
在 MySQL官网上,点击DOWNLOADS ,可以进入到下载首页,拉到最底下的 MySQL Community (GPL) Downloads 点击进入到产品下载页面。
产品下载页面有很多产品的下载入口,其中MySQL Community Server 就是上文提到的zip安装包的下载入口,而MySQL Installer for Windows 则是msi安装包的下载入口。
1.2.1 zip安裝包下载
【续上】点击的【MySQL Community Server】入口,进入到选择产品界面。
下图,第一个是稳定版的,第二个是测试版的,我们安装稳定版就可以了。
点击第一个的 Download 会跳转到下载页面。
终于到了这一步,点击下图红框按钮即可下载。
【历史版本】
如果需要下载历史版本,则点击【Archives】按钮,点击之后可以跳转到对应安装包类型历史MySQL版本的下载界面。
进入下载界面,选择历史的版本,然后点击【Download】即可下载。
1.2.2 msi安裝包下载
点击【MySQL Installer for Windows】入口,进入到选择产品界面。
下图,第一个是网页版的,第二个是本地使用的,我们安装就第二个版本。
点击第一个的Download 会跳转到下载页面。
终于到了这一步,点击下图红框按钮即可下载。
【历史版本】
如果需要下载历史版本,则点击【Archives】按钮,点击之后可以跳转到对应安装包类型历史MySQL版本的下载界面。
进入下载界面,选择历史的版本,然后点击【Download】即可下载。
三、zip安装包安装
等待下载完之后,可以看到文件是一个压缩包,直接解压,然后放到指定的安装路径即可。比如我这里放在 D\MySQL 下,并且在该路径下新建一个 Data 文件夹用于存放数据:
# 软件安装路径
D:\MySQL\mysql-9.0.29-winx64
# 数据存放路径
D:\MySQL\Data
这两个路径后面配置文件会用到。
3.1 配置文件设置
新建一个文本文件:右键>新建>文本文档,打开之后输入相关的配置信息。
配置信息如下,注意【basedir】和【datadir】修改为你自己的软件安装路径和数据存放路径,就是上文提到的那两个路径。
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=【你的软件安装路径】
# 设置mysql数据库的数据的存放目录
datadir=【你的数据存放路径】
# 允许最大连接数
max_connections=20
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
3.2 进行配置并修改密码
先以管理员身份打开命令提示符(CMD)。
方法1:windows电脑CMD的路径是:C:\Windows\System32,找到CMD-右键,以管理员身份运行。
方法2:在开始菜单栏>windows系统>命令提示符-右键>更多>以管理员身份运行。
打开CMD之后,依次输入以下命令:
# 切换盘符,如果是放在C盘,则不需要切换盘符,直接进入第二步
d:
# 切换路径
cd <你的安装路径>
# 初始化MySQL Server
mysqld --initialize --console
# 安装MySQL,新增window系统服务
mysqld --install mysql
# 启动服务
net start mysql
# 连接数据库
mysql -u root -p
# 修改密码
alter user root@localhost identified by '<你的密码>';
跟着以上流程走完之后,MySQL就安装好了。
注:这里在输入初始密码的时候可能需要反复测试好几遍,需要有点小小的耐心。
3.3 添加环境变量
虽然已经可以愉快地敲代码了,但是每次都要切换路径到安装路径才可以连接MySQL,为了使得能够在任何路径下都能连接数据库,需要添加一下环境变量。
添加环境变量,需要找到MySQL的安装路径(又是安装路径)下bin的路径,然后根据下图找到环境变量中的PATH,新增即可。
我的bin文件夹的完整路径是: D:\MySQL\mysql-8.0.29-winx64\bin,添加到图中蓝色区域。
四、msi安装包安装
等待下载完之后,可以看到文件是一个程序包,需要进一步安装才可使用。
4.1 安装方式
运行程序包之后,会进入下图,选择安装的类型。
这里提供了5种安装类型,但不管哪一种安装方式,只是产品选择上的不同而已,基本的安装流程也差不多:选择产品>安装>配置>检验。配置过程中,一般涉及服务配置类型>密码验证方式>密码设置>服务配置。
安装类型 | 相关产品 |
Developer Default(默认) | MySQL Server、MySQL Workbench、MySQL Shell、MySQL Router、MySQL Documentation、Samples and Examples,还有几个连接器Connector/ODBC、Connector/C++、Connector/J、Connector/NET |
Server Only(仅服务器) | 只安装MySQL Server(附带MySQL Client) 注:MySQL Client 是一个命令行客户端,和命令提示符差不多,不过仅用于MySQL。 |
Client Only(仅客户端) | MySQL Server、MySQL Workbench、MySQL Shell、MySQL Route,还有几个连接器Connector/ODBC、Connector/C++、Connector/J、Connector/NET |
Full(全家桶) | MySQL Server、MySQL Workbench、MySQL Shell、MySQL Router、MySQL Documentation、Samples and Examples,还有几个连接器Connector/ODBC、Connector/C++、Connector/J、Connector/NET |
Custom(自定义) | 根据自己的需求选择不同的产品 |
前面的四种安装方式比较相似,基本走完一遍默认安装便可贯通,而,自定义安装在安装过程有一些不同,所以这里主要讲讲默认安装和自定义安装。
注:为了保证完整性,一些重要描述会同时出现在默认安装和自定义安装的流程中,任看其一即可。
4.1.1 默认安装:Developer Default
选择【Developer Default】,然后点击【Next】,进入到下一步【Check Requirements】,字面意思是检查设备,大致意思是这两个设备不符合要求,MySQL安装器尝试自行解决它,但是可能安装不成功。这两个不安装也没有多大影响,直接点击【Yes】即可。
进入下一环节【Installation】开始执行安装,可以看到,默认情况下,给安装了10个应用!其中必备的其实只有第一个【MySQL Server】(附带了MySQL Client),其他的不装也可以正常使用MySQL。
安装时间可能会有点久,让机器自行解决,静候佳音即可。
安装完了,继续【Next】【Next】。
一些配置信息,使用默认值即可,继续【Next】
【Authentication Method】是验证方式,使用默认即可。默认的是新版的强密码校验,第二个是老版的。值得注意的是,如果客户端没有更新使用新版的验证方式,会导致链接不上数据库,如果要保险起见,也可以选择第二种方式。不过也可以选择第一个安装完之后,使用客户端尝试连接,不行再更换验证方式,或者升级一下客户端试试。如果需要修改,可以使用以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
补充:在my.ini 配置文件中,相关的参数名是default_authentication_plugin,参数值caching_sha2_password为新版(即下图第一个加强版验证方式),参数值mysql_native_password为旧版(即下图第二个验证方式)。
default_authentication_plugin=caching_sha2_password
default_authentication_plugin=mysql_native_password
【Accounts and Roles】给超级管理员【root】设置账户密码,同时可以新增角色。需要新增角色可以点击【Add User】按钮新增,当然,也可以后续在客户端再新增。设置完【Next】。
【Windows Server】Windows服务的配置在看到网上很多文章都是直接一笔带过,这里有两个配置还是需要注意下,一个是服务名,我目前这个版本的服务名默认是【MySQL80】这个有什么作用呢,就是在命令行启动或停用MySQL时需要使用到(可能会有更多场景,待发现),相关语法如下。命令中不能直接使用mysql ,否则会报错,为了避免一些不必要的麻烦,建议服务名设置为MySQL。
net start mysql80 # 启动服务
net stop mysql80 # 停止服务
第二个是系统开机即启动,如果经常使用MySQL,可以保留该默认状态,否则建议去勾。节省一些不必要的电脑开销。如果去勾,后续要启动服务,只需要使用以上命令启动服务即可。
【Apply Configuration】应用配置,直接执行即可。
至此,MySQL Server 安装和配置都已完成。
接下来,开始第二个产品配置:MySQL路由器的配置。
默认即可。
接下来,开始第三个产品配置:样品和案例配置。
测试链接:输入刚刚设置的密码,点击【Check】,正确之后,会出现一个绿色对√ 和绿底的Connection succeeded。继续【Next】。
直接【Excute】。
点击【Finish】。完成所有配置。
继续【Next】。
【Installation Complete】至此,终于大功告成!!!
4.1.2 自定义安装:Custom
继3.1之后,通过自定义按照。
选择【Custom】,然后点击【Next】。
进入到下一步【SelectProducts】,选择产品,这里我只选了【MySQL Server】,如果只是下载MySQL练练手,其他的可以不安装。
这里有一个选项,自定义产品功能,勾选后,后面会多一步再次筛选产品的步骤(如下图二),可以不用勾选,直接安装这几个产品。
(【Edit】中还可以进行一些筛选,筛选不同产品及历史版本,系统等,需要的话也可以选一下相关的选项了解一下)
直接执行安装,安装完继续【Next】
开始产品配置,继续【Next】。
一些配置信息,使用默认值即可,继续【Next】
【Authentication Method】是验证方式,使用默认即可。默认的是新版的强密码校验,第二个是老版的。值得注意的是,如果客户端没有更新使用新版的验证方式,会导致链接不上数据库,如果要保险起见,也可以选择第二种方式。不过也可以选择第一个安装完之后,使用客户端尝试连接,不行再更换验证方式,或者升级一下客户端试试。如果需要修改,可以使用以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
补充:在my.ini 配置文件中,相关的参数名是default_authentication_plugin,参数值caching_sha2_password为新版(即下图第一个加强版验证方式),参数值mysql_native_password为旧版(即下图第二个验证方式)。
default_authentication_plugin=caching_sha2_password
default_authentication_plugin=mysql_native_password
【Accounts and Roles】给超级管理员【root】设置账户密码,同时可以新增角色。需要新增角色可以点击 【Add User】按钮新增,当然,也可以后续在客户端再新增。设置完【Next】。
【Windows Server】Windows服务的配置在看到网上很多文章都是直接一笔带过,这里有两个配置还是需要注意下,一个是服务名,我目前这个版本的服务名默认是【MySQL80】这个有什么作用呢,就是在命令行启动或停用MySQL时需要使用到(可能会有更多场景,待发现),相关语法如下。命令中不能直接使用mysql ,否则会报错,为了避免一些不必要的麻烦,建议服务名设置为MySQL。
net start mysql80 # 启动服务
net stop mysql80 # 停止服务
第二个是系统开机即启动,如果经常使用MySQL,可以保留该默认状态,否则建议去勾。节省一些不必要的电脑开销。如果去勾,后续要启动服务,只需要使用以上命令启动服务即可。
【Apply Configuration】应用配置,直接执行即可,配置完【Finish】。
至此,MySQL Server 安装和配置都已完成。
接下来两步直接【Next】【Finish】即可。
安装完成。
4.1.3 关于配置文件和路径说明
走完默认安装和自定义安装的整一个流程之后,软件就直接安装好了,也没有涉及到安装路径设置和【my.ini】配置文件,这是因为这两种安装方式都默认了安装路径(包含软件安装路径和数据存放路径),而【my.ini】配置文件则是在一步步配置操作完之后生成的。
默认情况下,相关路径如下:
软件安装路径:C:\Program Files\MySQL\MySQL Server 8.0
数据存放路径:C:\ProgramData\MySQL\MySQL Server 8.0\Data
配置文件路径:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
其他的文件在MySQL下都可以看到:
4.2 添加环境变量
所有添加环境变量的方法都基本一致,就是打开环境变量,然后找到程序的安装路径,添加进去。
添加环境变量的作用也是一致的:就是可以在打开命令行之后,在任意文件夹下可以调用相关的软件程序。
使用msi程序包安装和zip安装时一样,就是按下图顺序打开环境变量,然后编辑Path,新建一行(直接在空白处双击),粘贴路径。通过3.1安装完,我的两个路径都是:
C:\Program Files\MySQL\MySQL Server 8.0\bin
输入的时候按照自己的路径来。
4.3 检验安装
检验安装一般可以通过两种方式进行,一种是通过【MySQL Client】,一种是通过【命令行提示符(CMD)】。
【MySQL Client】在开始菜单栏,找到MySQL打开可以看到客户端。安装之后会有两个客户端,一个带Unicode标识,都可以使用。
补充:Unicode是统一的字符编码标准,MySQL的Windows客户端自从5.6.2版本后提供了Unicode界面支持。原来的MySQL Client是默认在dos下运行的,不够满足Windows下标准编码的需求。在Unicode下运行速度比原来的在dos环境下运行要快得多,字体等也更符合编程要求(Unicode是用的16位储存和表示每个字符的,并能够表示大多数字符)。
打开客户端直接输入密码即可。
返回如上结果,说明安装和配置都成功了,可以正常使用了。
【命令行提示符】按路径执行:开始菜单栏>windows系统>命令提示符右键>更多>以管理员身份运行。
以管理员身份打开命令行之后,依次输入命令:
# 开启服务,服务名安装时可设置
net start mysql80
# 连接数据库,两个任一均可,输入完回车会提示输入密码
mysql -u root -p
mysql -h 127.0.0.1 -P 3306 -u root -p
返回如上结果,说明安装和配置都成功了,可以正常使用了。
4.4 数据迁移
注意:通过默认方法安装,数据默认存储在C盘,如果后续需要数据库越来越大,影响到了C盘的内存,可能需要进行数据迁移,更换数据库的存放路径,这里提供一个迁移的方法供参考。
- 停止MySQL服务,即命令行输入:net stop mysql;
- 移动Data和修改配置文件:将Data下所有文件及文件夹都复制或剪切到目标路径下,然后在【my.ini】配置文件中修改【datadir】数据看的路径;
- 启动MySQL服务,即命令行输入:net start mysql。
重点讲解下第2点。
比如我要将数据路径放到【D:\mysql】文件夹下,则把【C:\ProgramData\MySQL\MySQL Server 8.0】路径下的【Data】文件夹复制粘贴【D:\mysql】下;然后修改一下配置文件。
由于配置文件的内容很长,肉眼很难快速定位到相关内容,可以Ctrl+F调出查找框,输入关键词datadir,快速定位到。
配置文件的修改主要有两步,删掉或者注释掉原来的路径,然后加入新的路径,再保存即可。
# datadir=C:/ProgramData/MySQL/MySQL Server 8.0\Data
datadir=D:\MySQL\Data
五、建库表
安装和配置完成之后,接下来就可以大展拳脚了!
下面介绍一下一些库表的基本操作,方便需要的读者直接落地实践。直接看代码注释和截图吧~
5.1 建库和删库
-- 建库
create database my_data;
-- 查看创建的库
show databases;
-- 删库
drop database my_data;
5.2 建表和删表
注意:执行以下代码,需要有my_data库,请在创建my_data库之后执行。
-- 建表
create table if not exists my_data.users
(
user_id bigint not null auto_increment comment '用户ID'
,sex int default 2 comment '性别 0女 1男 2未知'
,age int comment '年龄'
,mobile varchar(16) not null comment '手机号'
,wxid varchar(32) comment '微信号'
,province varchar(16) comment '省份'
,city varchar(16) comment '城市'
,created_at datetime not null default current_timestamp comment '创建时间'
,update_at datetime not null default current_timestamp on update current_timestamp comment '更新时间'
,primary key(user_id)
) comment '用户表 by Xin学数据';
-- 查看表
show tables from my_data;
desc my_data.users;
-- 删表
drop table if exists my_data.users;
5.3 表数据的基本操作
注意:执行一下步骤,需要有my_data库和该库下有users表,请创建完my_data库和该库下users表(上一步已经把表删了,再粘贴跑一遍建表语句即可)再执行。
【插入数据】
-- 插入一行数据
insert into my_data.users(sex,age,mobile,wxid,province,city) values(null,20,'12345678901',null,'北京','北京');
insert into my_data.users(user_id,age,mobile,wxid,province,city) values(3,20,'22345678901',null,'上海','上海');
-- 插入多行数据,使用values()
insert into my_data.users(sex,age,mobile,wxid,province,city) values
(1,30,'32345678901',null,'广东','广州'),
(2,23,'13345678901',null,'广东','深圳'),
(0,25,'15345678901',null,'浙江','杭州');
-- 插入多行数据,使用select 语句(由于没有其他表,直接用union拼几行数据)
insert into my_data.users(sex,age,mobile,wxid,province,city)
select 0,25,'16345678901',null,'福建','厦门' union all
select 1,25,'16345678901',null,'四川','成都' union all
select 2,25,'16345678901',null,'浙江','杭州'
;
-- 新增列
alter table my_data.users add income double after city;
【删除数据】
-- 删除行
delete from my_data.users where user_id=1;
-- 删除列
alter table my_data.users drop column income;
【修改数据】
-- 修改数据
update my_data.users set sex=1,age=22 where user_id=3;
【查询数据】
上面已经有很多例子,此处略。
-- 查询数据
select * from my_data.users limit 100;
六、总结
从文件包的介绍,到下载,到安装配置,到最后的建库表落地实践,整一个流程终于全部都介绍完了。
是不是收获满满呢?
下面一起来回顾一下吧。
首先是安装包的介绍:
- zip安装包是纯净安装,仅含MySQL Server,支持自定义安装路径,流程比较简单一些,但是命令行操作。
- msi安装包支持图像化界面操作,方便拓展安装其他相关的软件包,但是流程长,而且如果C盘不够大,数据量多时需要迁移。
注:MySQL server是我们的本地服务器,地址127.0.0.1,端口号是3306,服务器的程序是mysqld,在后台运行;而我们敲代码的命令行和编辑器都是客户端,运行程序是mysql。
然后是安装流程介绍:
- zip安装流程:下载安装包>创建配置文件>命令行初始化mysql并修改密码>添加环境变量。
- 过程中涉及到【my.ini】配置文件和一些配置代码。
- msi安装方式基本的安装流程:选择产品>安装>配置>检验。配置过程中,一般涉及服务配置类型>密码验证方式>密码设置>服务配置。
- 默认装在C盘,在数据太多,C盘不够用时,需要迁数据。先暂停服务,然后拷贝数据到指定路径,并修改【my.ini】配置文件,然后重启服务即可。
最后,数据库表的操作,基本可以分为四类,增、删、改、查。根据这四步提炼之后的代码参考如下:
-- 增
create database db_name;
create table tb_name(col_name [type]……);
alter table tb_name add col_name [type]……;
insert into my_data.users(col_names) values(<values>);
insert into my_data.users(col_names) values(<values>),(<values>),(<values>)……;
insert into my_data.users(col_names) select col_name from tb_name;
-- 删库
drop database db_name;
drop table tb_name;
delete from tb_name where <condition>;
alter table tb_name drop column col_name;
-- 改
update db_name set col_name=xx,col_name=xx where <condition>;
-- 查
show databases;
show table from db_name;
desc tb_name;
select * from db_name limit 100;
# 注释:
# db_name: 数据库名
# tb_name: 表名
# col_name(s): 字段名
# <values>: 值
# <condition>: 条件
- END -
如果本文对您有帮助,记得点赞👍收藏⭐哦!
如果想了解我更多相关领域的好文,记得👀关注
我哦,之后每一次更新都会在首页
-关注
下第一时间收到通知,不错过每一篇好文!