操作系统是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
image.png

标注1:安装所有 MySQL 数据库需要的产品; 标注2:仅仅使用 MySQL 数据库的服务器; 标注3:仅仅使用 MySQL 数据库的客户端; 标注4:安装所有包含 MySQL 数据库的产品; 标注5:手动选择需要安装的 MySQL 数据库的产品。

  • 在左侧目录中选择 MySQL Server 5.7.37 - X64 ,点击 加载到右侧,点击要安装的产品名,右下角会出现 Advanced Options ,单击它可以设置安装路径。

image.png
image.png
image.png

  • 安装路径数据路径修改到 D:\develop\ 下,点击 OK

image.png

  • 点击 Next

image.png

有的可能会出现提示需要先安装 C 动态库等,那就先安装 C 动态库,没有提示说明操作系统中有你需要的动态库。

  • 点击 Execute

image.png

image.png

  • 点击 Next

image.png
image.png

  • 将 MySQL 配置类型选择 Development Computer ,点击 Next

image.png
image.png

  • 设置 MySQL 密码,因为管理员用户为 root ,学习初期建议将 MySQ L数据库密码也设置为 root ,设置完成后,点击 Next

image.png

  • 设置 Windows Service 系统服务 ,设置完毕后点击 Next

image.png

  • 日志设置,不做任何修改,点击 Next

image.png
image.png

  • 高级设置,不做任何修改,点击 Next

image.png

  • 点击 Execute

image.png

  • 安装完成,点击 Finish

image.png
image.png
image.png
控制面板查看服务启动状态
image.png
1.3 配置环境变量

在黑框(即CMD)中输入一个可执行程序的名字,Windows会先在环境变量中的Path所指的路径中寻找一遍,如果找到了就直接执行,没找到就在当前工作目录找,如果还没找到,就报错。我们添加环境变量的目的就是能够在任意一个黑框直接调用MySQL中的相关程序而不用总是修改工作目录,大大简化了操作。

image.png
image.png

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文件

  1. [mysqld]
  2. -- 设置3306端口
  3. port=3306
  4. -- 设置mysql的安装目录
  5. basedir=D:/MySQL/mysql-5.7.37-winx64
  6. -- 设置mysql数据库的数据的存放目录
  7. datadir=D:/MySQL/mysql-5.7.37-winx64/data
  8. -- 允许最大连接数
  9. max_connections=200
  10. -- 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
  11. max_connect_errors=10
  12. -- 服务端使用的字符集默认为UTF8
  13. character-set-server=utf8
  14. -- 创建新表时将使用的默认存储引擎
  15. default-storage-engine=INNODB
  16. -- 默认使用“mysql_native_password”插件认证
  17. default_authentication_plugin=mysql_native_password
  18. [mysql]
  19. -- 设置mysql客户端默认字符集
  20. default-character-set=utf8
  21. [client]
  22. -- 设置mysql客户端连接服务端时默认使用的端口
  23. port=3306
  24. 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
解压双击即可使用,官网介绍(看着很牛),确实牛,好用系列(^▽^)
image.png
image.png
image.png
image.png

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 之类。没有的就不用管

image.png
image.png

3.5 清理服务列表中的服务名

  • 如果在 windows 操作系统,删除注册表后,在服务列表中仍然存在原来的服务名,可以通过如下命令删除:
  • 打开cmd,以管理员运行
    sc  delete  服务名
    
    image.png

3 、MySQL 数据库服务的启动和停止

3.1 图形化界面

image.png
image.png
image.png
image.png

3.2 命令行方式

  • 启动:

    net start MySQL57
    
  • 停止:

    net stop MySQL57
    

    4、MySQL 数据库登录

MySQL是个服务,安装完成之后不会有界面,我们需要通过客户端连接
客户端有MySQL自带客户端可视化连接工具
image.png

4.1 MySQL 自带客户端登录

  • 开始菜单 —》所有应用 —》MySQL—》MySQL Server 5.7—》MySQL 5.7 Command Line Client - Unicode。

image.png
image.png
image.png
image.png

  • 退出
    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

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
激活教程:
把下载的文件Navicat Keygen Patch v5.6.0 DFoX.exe 复制到Navicat Premium安装目录中里面

image.png
2、打开Navicat Keygen Patch v5.6.0 DFoX.exe,先点击Generate ,最后再点击Patch
image.png
2、出现以下弹窗,即表示生成成功。(等待,有的会有一会未响应状态)
image.png
4、打开Navicat Premium软件,点击注册
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
然后就可以开始愉快地进行数据库练习啦~~~

5、MySQL的编码配置(重要)

5.1 首先查看自己数据库编码:

  • 登录mysql客户端,输入以下命令:
    show variables like 'character_%';
    show variables like 'collation_%';
    
    image.png
    image.png

    5.2 找到my.ini配置文件并修改

    (安装版的在数据库数据安装目录里)
    查看mysql的安装路径:
    show variables like '%basedir%';
    
    查看数据库data的路径:
    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

如图所示:
image.png

  • 重启 mysql 服务,到服务里找到 数据库服务,重启

image.png

  • 再次,查看编码是否OK

6、mysql 字符集和排序规则

6.1 编码和解码

  • 计算机中存储的信息都用二机制表示的
  • 编码过程:字符根据编码表转换为二进制的数值。
  • 解码过程:将二进制数值根据编码表转换为字符。
  • 乱码:编码和解码过程中使用的字符集不一致。
    • 简单理解:

存储一个字符a,首先需要在码表中查到对应数字是97,然后转换成二进制进行存储
读取的时候,先把二进制解析出来,再转换成97,通过97查找到对应字符是a;


image.png

6.2 码表

  • 字符编码( CharacterEncoding ):就是一套自然语言的字符和二进制数之间的对应规则。
  • 又叫做字符集,是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等
  • 计算机要准确的存储和识别各种字符集符号,就需要进行字符编码,一套字符集必然至少有一套字符编码。常见字符集有ASCII字符集、GBXXX字符集、Unicode字符集等

image.png

可见,当指定了编码,它所对应的字符集自然就指定了,所以编码才是我们最终要关心的。

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

image.png
一般选择utf8下面介绍一下utf8与utfmb4的区别。
utf8mb4兼容utf8,且比utf8能表示更多的字符。至于什么时候用,看你的做什么项目了

6.5 排序规则

  • 是指对指定字符集下不同字符的比较规则,其特征有以下几点:
    1. 两个不同字符集不能有相同的排序规则
    2. 两个字符集有一个默认的排序规则
    3. 字符集有一些常用的命名规则,
      1. 如_cl结尾表示大小写不敏感(caseinsensitive) ,
      2. _cs表示大小写敏感(case sensitive),
      3. _bin表示二进制的比较(binary) .

6.6 排序规则区别

utf8_general_ci不区分大小写,这个你在注册用户名和邮箱的时候就要使用。

utf8_general_cs区分大小写,如果用户名和邮箱用这个 就会照成不良后果

utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容

utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。

utf8_general_ci 校对速度快,但准确度稍差。
(准确度够用,一般建库选择这个)

utf8_unicode_ci 准确度高,但校对速度稍慢。