操作系统是win10
1、MySQL 数据库的安装
1.1 安装方式1-程序式安装
mysql5.7安装包,点击下载 mysql-installer-community-5.7.37.0.zip
解压双击 mysql-installer-community-5.7.37.0.msi
如果有其他需要,官网:https://dev.mysql.com/downloads/mysql
进入安装界面后选择 Custom自定义安装
,点击 Next
。
标注1:安装所有 MySQL 数据库需要的产品; 标注2:仅仅使用 MySQL 数据库的服务器; 标注3:仅仅使用 MySQL 数据库的客户端; 标注4:安装所有包含 MySQL 数据库的产品; 标注5:手动选择需要安装的 MySQL 数据库的产品。
- 在左侧目录中选择
MySQL Server 5.7.37 - X64
,点击→
加载到右侧,点击要安装的产品名,右下角会出现Advanced Options
,单击它可以设置安装路径。
- 将
安装路径
和数据路径
修改到D:\develop\
下,点击OK
。
- 点击
Next
。
有的可能会出现提示需要先安装 C 动态库等,那就先安装 C 动态库,没有提示说明操作系统中有你需要的动态库。
- 点击
Execute
:
- 点击
Next
。
- 将 MySQL 配置类型选择
Development Computer
,点击Next
。
- 设置 MySQL 密码,因为管理员用户为 root ,学习初期建议将 MySQ L数据库密码也设置为
root
,设置完成后,点击Next
。
- 设置
Windows Service 系统服务
,设置完毕后点击Next
。
- 日志设置,不做任何修改,点击
Next
。
- 高级设置,不做任何修改,点击
Next
。
- 点击
Execute
。
- 安装完成,点击
Finish
。
控制面板查看服务启动状态
1.3 配置环境变量
在黑框(即CMD)中输入一个可执行程序的名字,Windows会先在环境变量中的
Path
所指的路径中寻找一遍,如果找到了就直接执行,没找到就在当前工作目录找,如果还没找到,就报错。我们添加环境变量的目的就是能够在任意一个黑框直接调用MySQL中的相关程序而不用总是修改工作目录,大大简化了操作。
1.2 安装方式2-解压安装(真香)
1.2.1 解压安装包
mysql-5.7.37-winx64.zip
解压zip包到指定安装目录,我的解压在了D:\Develop\MySQL\mysql-5.7.37-winx64 2.2
1.2.2 配置环境变量
1.2.3 创建并配置初始化的my.ini文件
[mysqld]
-- 设置3306端口
port=3306
-- 设置mysql的安装目录
basedir=D:/MySQL/mysql-5.7.37-winx64
-- 设置mysql数据库的数据的存放目录
datadir=D:/MySQL/mysql-5.7.37-winx64/data
-- 允许最大连接数
max_connections=200
-- 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
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
1.2.4 初始化MySQL数据库
系统左下角,Windows徽标处右键,选择“命令提示符(管理员)”:
注意:这里必须是以“管理员身份”运行控制命令台!
在控制命令台中,进入到刚刚解压的MySQL的bin目录中:
命令:**mysqld --initialize-insecure**
作用:初始化数据库,并设置默认root密码为空
初始化完成后,在mysql根目录中会自动生成data文件夹,如下图所示:
注意:当出现如上图所示的三个文件夹后才表示初始化完成!
1.2.5 为Windows系统安装MySQL服务
输入执行命令:**mysqld install [服务名]**
作用:为Windows系统安装MySQL服务,默认服务名为:mysql
注意:后面的服务名可以不写,默认的名字为 mysql。当然,如果你的电脑上需要安装多个MySQL服务,就可以用不同的名字区分了,比如 mysql5 和 mysql8。
1.2.6 启动mysql服务
安装完成之后,就可以通过命令net start mysql启动MySQL的服务了。通过命令net stop mysql停止服务。如果想卸载某个服务通过命令**sc delete MySQL/mysqld -remove**
卸载 MySQL 服务
1.2.7 更改密码
在MySQL安装目录的 bin 目录下执行命令:
mysql -u root -p
这时候会提示输入密码,直接回车键(上面设置的是空密码)登录成功,进入MySQL命令模式。 修改密码( 修改密码是必须得 不然设置不了远程连接)
切换到mysql 并执行命令:
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
后,即可设置成功,此时mysql的用户名为:root,密码为:root
最后exit 退出,用root 在登录一次,远程连接的用户名为:root,密码为:root
2、MySQL 数据库的卸载
如果需要更换版本,或者数据库使用过程中损坏,或者安装过程中卡死;
那么需要卸载数据库重新安装
3.1 软件的卸载准备
- 学习网络编程时, TCP / IP 协议程序有服务器端和客户端。mysql 这个数据库管理软件是使用 TCP / IP 协议。我们现在要卸载的是 mysql 的服务器端,它没有界面。
- 将 MySQL 服务停止:
① 命令行:
net stop MySQL57
② 图形化界面:
3.2 使用geek软件进行卸载
geek.zip
解压双击即可使用,官网介绍(看着很牛),确实牛,好用系列(^▽^)
3.3 清理残余文件
- 如果再次安装不成功,可以卸载后对残余文件进行清理后再安装。
- ① 服务目录:mysql 服务的安装目录。
- ② 数据目录:默认在 C:\ProgramData\MySQL 。
- 如果自己单独指定过数据目录,就找到自己的数据目录。
3.4 清理注册表(geek删除不干净的时候,选做)
- 在系统的搜索框中输入 regedit 。
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL服务:目录删除。
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL服务:目录删除。
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL服务:目录删除。
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MySQL服务:目录删除。
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL服务:目录删除。
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL服务:删除。
注册表中的 ControlSet001,ControlSet002 ,不一定是 001 和 002 ,可能是 ControlSet005、006 之类。没有的就不用管
3.5 清理服务列表中的服务名
- 如果在 windows 操作系统,删除注册表后,在服务列表中仍然存在原来的服务名,可以通过如下命令删除:
- 打开cmd,以管理员运行
sc delete 服务名
3 、MySQL 数据库服务的启动和停止
3.1 图形化界面
3.2 命令行方式
MySQL是个服务,安装完成之后不会有界面,我们需要通过客户端连接
客户端有MySQL自带客户端和可视化连接工具
4.1 MySQL 自带客户端登录
- 开始菜单 —》所有应用 —》MySQL—》MySQL Server 5.7—》MySQL 5.7 Command Line Client - Unicode。
- 退出
exit
4.2 CMD命令行方式登入
此方式必须为数据库配置环境变量
- 登入 ```java mysql -h localhost -P 3306 -u root -p123456
— h:host 主机地址 — P:port 端口 — u:user/username 用户名 — p:password 密码
- 退出
```java
exit
4.3 Navicat 安装与登录
- Navicat for MySQL 是管理和开发 MySQL 或 MariaDB 的理想解决方案。
- 这套全面的前端工具为数据库管理、开发和维护提供了一款直观而强大的图形界面。
- 安装包点击链接下载Navicat.zip
激活教程:
把下载的文件Navicat Keygen Patch v5.6.0 DFoX.exe 复制到Navicat Premium安装目录中里面
2、打开Navicat Keygen Patch v5.6.0 DFoX.exe,先点击Generate ,最后再点击Patch
2、出现以下弹窗,即表示生成成功。(等待,有的会有一会未响应状态)
4、打开Navicat Premium软件,点击注册
然后就可以开始愉快地进行数据库练习啦~~~
5、MySQL的编码配置(重要)
5.1 首先查看自己数据库编码:
- 登录mysql客户端,输入以下命令:
show variables like 'character_%'; show variables like 'collation_%';
5.2 找到my.ini配置文件并修改
(安装版的在数据库数据安装目录里)
查看mysql的安装路径:
查看数据库data的路径:show variables like '%basedir%';
把编码设置语句,复制到show variables Like '%datadir%';
[mysql]
或者[mysqld]
对应的包裹范围内(不是整体复制)文件最好用富文本编辑器(NotePad++)打开,具有高亮效果
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 服务端使用的字符集默认为UTF-8
character-set-server=utf8
# 服务端使用的字符集排序规则
collation-server=utf8_general_ci
如图所示:
- 重启 mysql 服务,到服务里找到 数据库服务,重启
- 再次,查看编码是否OK
6、mysql 字符集和排序规则
6.1 编码和解码
- 计算机中存储的信息都用二机制表示的
- 编码过程:字符根据编码表转换为二进制的数值。
- 解码过程:将二进制数值根据编码表转换为字符。
- 乱码:编码和解码过程中使用的字符集不一致。
- 简单理解:
存储一个字符a,首先需要在码表中查到对应数字是97,然后转换成二进制进行存储
读取的时候,先把二进制解析出来,再转换成97,通过97查找到对应字符是a;
6.2 码表
- 字符编码( CharacterEncoding ):就是一套自然语言的字符和二进制数之间的对应规则。
- 又叫做字符集,是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等
- 计算机要准确的存储和识别各种字符集符号,就需要进行字符编码,一套字符集必然至少有一套字符编码。常见字符集有ASCII字符集、GBXXX字符集、Unicode字符集等
可见,当指定了编码,它所对应的字符集自然就指定了,所以编码才是我们最终要关心的。
6.3 常见的码表
- ASCII字符集(American Standard Code for Information Interchange,美国信息交换标准代码):
- 是基于拉丁字母的一套电脑编码系统,用于显示现代英语,主要包括控制字符(回车键、退格、换行键等)和可显示字符(英文大小写字符、阿拉伯数字和西文符号)
- 基本的ASCII字符集,使用7位表示一个字符,共128字符。ASCII的扩展字符集使用8位表示一个字符,共256字符,方便支持欧洲常用字符。是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等
- ASCII码表中是没有中文的。
- ISO-8859
- ISO-8859实在ASCII码上的扩展,其中包含128个ASCII码字符,并增加了128个用于西欧国家的字符。
- GBXXX字符集:
- GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,GB2312收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。其中包括6763个汉字。
- GBK:windows默认的码表,兼容ASCII码表,最常用的中文码表。是在GB2312标准基础上的扩展规范,使用了双字节编码方案,共收录了21003个汉字,完全兼容GB2312标准,同时支持繁体汉字以及日韩汉字等
- Unicode字符集:
- Unicode是一个字符集,这个字符集就厉害了,他想包含所有的字符,由国际组织ISO指定,是统一的万国码,基本上包括了世界上所有语言的常见字符。
- 但是因为表示的字符太多了,所以Unicode码表中的数组不会直接以二进制的的形式存储到计算机中,会先通过UTF-7,UTF-7.5,UTF-8,UTF-16,以及UTF-32进行编码,再存储到计算机,其中最常见的就是UTF-8
- UTF-8编码:可以用来表示Unicode标准中任意字符,它是电子邮件、网页及其他存储或传送文字的应用中优先采用的编码。互联网工程工作小组(IETF)要求所有互联网协议都必须支持UTF-8编码。它使用一至四个字节为每个字符编码
- 编码规则:
- 128个US-ASCII字符,只需一个字节编码
- 拉丁文等字符,需要二个字节编码
- 大部分常用字(含中文),使用三个字节编码
- 其他极少使用的Unicode辅助字符,使用四字节编码
注意:UTF-8 不是一张码表,他只是一种编码格式
6.4 MYSQL一般选择utf-8
一般选择utf8下面介绍一下utf8与utfmb4的区别。
utf8mb4兼容utf8,且比utf8能表示更多的字符。至于什么时候用,看你的做什么项目了
6.5 排序规则
- 是指对指定字符集下不同字符的比较规则,其特征有以下几点:
- 两个不同字符集不能有相同的排序规则
- 两个字符集有一个默认的排序规则
- 字符集有一些常用的命名规则,
- 如_cl结尾表示大小写不敏感(caseinsensitive) ,
- _cs表示大小写敏感(case sensitive),
- _bin表示二进制的比较(binary) .
6.6 排序规则区别
utf8_general_ci
不区分大小写,这个你在注册用户名和邮箱的时候就要使用。
utf8_general_cs
区分大小写,如果用户名和邮箱用这个 就会照成不良后果
utf8_bin:
字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容
utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。
utf8_general_ci
校对速度快,但准确度稍差。
(准确度够用,一般建库选择这个)
utf8_unicode_ci
准确度高,但校对速度稍慢。