MySQL学习笔记第一天

news2024/10/7 10:13:00

第02章 MySQL环境搭建

1.MySQL的卸载

步骤1:停止MySQL服务

在卸载之前,先停止MySQL8.0的服务。按键盘上的“Ctrl + Alt + Delete”组合键,打开“任务管理器”对话框,可以在“服务”列表找到“MySQL8.0”的服务,如果现在“正在运行”状态,可以右键单击服务,选择“停止”选项停止MySQL8.0的服务。

步骤2:软件的卸载

方式1:通过控制面板方式
卸载MySQL8.0的程序可以和其他桌面应用程序一样直接在“控制面板”选择“卸载程序”,并在程序列表中找到MySQL8.0服务器程序,直接双击卸载即可,这种方式删除,数据目录下的数据不会跟着删除。
在这里插入图片描述
方式2:通过360或电脑管家等软件卸载

方式3:通过安装包提供的卸载功能卸载
你也可以通过安装向导程序进行MySQL8.0服务器程序的卸载。
① 再次双击下载的mysql-installer-community-8.0.26.0.msi文件,打开安装向导。安装向导会自动检测已安装的MySQL服务器程序。
② 选择要卸载的MySQL服务器程序,单击“Remove”(移除),即可进行卸载。
③ 单击“Next”(下一步)按钮,确认卸载。
④ 弹出是否同时移除数据目录选择窗口。如果想要同时删除MySQL服务器中的数据,则勾选“Remove thedata directory”。
⑤ 执行卸载。单击“Execute”(执行)按钮进行卸载。
⑥ 完成卸载。单击“Finish”(完成)按钮即可。如果想要同时卸载MySQL8.0的安装向导程序,勾选“Yes,Uninstall MySQL Installer”即可。

步骤3:残余文件的清理

如果再次安装不成功,可以卸载后对残余文件进行清理后再安装。
(1)服务目录:mysql服务的安装目录,我的放在C盘的progam files里面
(2)数据目录:默认在C:\ProgramData\MySQL
如果自己单独指定过数据目录,就找到自己的数据目录进行删除即可。
注意:请在卸载前做好数据备份。
在操作完以后,需要重启计算机,然后进行安装即可。

步骤4:清理注册表(选做)

如果仍然安装失败,需要继续操作如下步骤4。
如果前几步做了,再次安装还是失败,那么可以清理注册表。
如何打开注册表编辑器:在系统的搜索框中输入 regedit。

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之类

步骤5:删除环境变量配置

找到path环境变量,将其中关于mysql的环境变量删除,切记不要全部删除。
例如:删除D:\develop_tools\mysql\MySQLServer8.0.26\bin; 这个部分

2.MySQL的下载、安装、配置

3.MySQL的登录

3.1 服务的启动与停止

MySQL安装完毕之后,需要启动服务器进程,不然客户端无法连接数据库。
在前面的配置过程中,已经将MySQL安装为Windows服务,并且勾选当Windows启动、停止时,MySQL也自动启动、停止。

方法1:使用图形界面工具

  • 步骤1:打开windows服务
    方式1:计算机(点击鼠标右键)→ 管理(点击)→ 服务和应用程序(点击)→ 服务(点击)
    在这里插入图片描述
    方式2:控制面板(点击)→ 系统和安全(点击)→ 管理工具(点击)→ 服务(点击)
    方式3:任务栏(点击鼠标右键)→ 启动任务管理器(点击)→ 服务(点击)
    方式4:单击【开始】菜单,在搜索框中输入“services.msc”,按Enter键确认

  • 步骤2: 找到MySQL80(点击鼠标右键)→ 启动或停止(点击)

方法2:使用命令行工具

启动 MySQL 服务命令(记得要以管理员身份运行cmd命令提示符):
net start MySQL服务名
停止 MySQL 服务命令:
net stop MySQL服务名

在这里插入图片描述
在这里插入图片描述

  • 说明:
  1. start和stop后面的服务名应与之前配置时指定的服务名一致。
  2. 如果当你输入命令后,提示“拒绝服务”,请以 系统管理员身份 打开命令提示符界面重新尝试。

3.2 自带客户端的登录与退出

当MySQL服务启动完成后,便可以通过客户端来登录MySQL数据库。注意:确认服务是开启的。

登录方式1:MySQL自带客户端

开始菜单 → 所有程序 → MySQL → MySQL 8.0 Command Line Client
在这里插入图片描述

说明:仅限于root用户

登录方式2:windows命令行

格式:

mysql -h 主机名 -P 端口号 -u 用户名 -p密码

注意:
(1)-p与密码之间不能有空格,其他参数名与参数值之间可以有空格也可以没有空格。如:

mysql -hlocalhost -P3306 -uroot -pabc123

2)密码建议在下一行输入,保证安全

mysql -h localhost -P 3306 -u root -p
Enter password:******

(3)客户端和服务器在同一台机器上,所以输入localhost或者IP地址127.0.0.1。同时,因为是连接本机: -hlocalhost就可以省略,如果端口号没有修改:-P3306也可以省略
简写成:

mysql -u root -p
Enter password:****

连接成功后,有关于MySQL Server服务版本的信息,还有第几次连接的id标识。也可以在命令行通过以下方式获取MySQL Server服务版本的信息:

c:> mysql -V
c:> mysql --version

登录后,通过以下方式查看当前版本信息:

mysql> select version();

退出登录:

exit

quit

4.MySQL演示使用

4.1 MySQL的使用演示

1、查看所有的数据库

show databases;

在这里插入图片描述

“information_schema”是 MySQL 系统自带的数据库,主要保存 MySQL数据库服务器的系统信息,比如数据库的名称、数据表的名称、字段名称、存取权限、数据文件 所在的文件夹和系统使用的文件夹,等等
“mysql”数据库保存了 MySQL 数据库服务器运行时需要的系统信息,比如数据文件夹、当前使用的字符集、约束检查信息,等等
“performance_schema”是 MySQL 系统自带的数据库,可以用来监控 MySQL 的各类性能指标。
“sys”数据库是 MySQL 系统自带的数据库,主要作用是以一种更容易被理解的方式展示 MySQL数据库服务器的各类性能指标,帮助系统管理员和开发人员监控 MySQL 的技术性能。

2、创建自己的数据库

create databases 数据库名
#创建dbtest1数据库,该名称不能与已经存在的数据库重名。
create database dbtest1;

在这里插入图片描述
3、使用自己的数据库

use 数据库名;
#使用dbtest1数据库
use dbtest1;

4、查看某个库的所有表格

show tables from 数据库名;
在这里插入图片描述
5、创建新的表格
create table 表名称(
字段名 数据类型,
字段名 数据类型
);
#创建一个名为emploees的新表
create table employees(id int,name verchar(15));#说名字最长不超过15个字符

6、查看一个表的数据

select * from 数据库表名称;
#查看employees表的数据
select * from employees;

7.添加一条记录

insert into 表名称 values(值列表);
#添加两条记录到employees表中
insert into employees values(1001,‘wowotou’);
insert into employees values(1002,‘baobao’);
insert into employees values(1003’张三’);

5.7版本会报错:(字符集的问题)

mysql> insert into employees values(1003,‘张三’);
ERROR 1366 (HY000): Incorrect string value: ‘\xD5\xC5\xC8\xFD’ for column ‘name’ at
row 1

8.0版本不会报错
在这里插入图片描述

8、查看表的创建信息

show create table 表名称;
#查看employees表的详细创建信息
show create table employees;

在这里插入图片描述
上面的结果显示employees的表格的默认字符集是“utf8mb4”支持中文。

9、查看数据库的创建信息

在这里插入图片描述
10、删除表格

drop table 表名称;

11、删除数据库

drop database 数据库名;

#以下均是在8.0版本输出
create database dbtext1;
#输出:Query OK, 1 row affected (0.02 sec)

show databases;
#输出:(多了dbtext1)
#+--------------------+
#| Database           |
#+--------------------+
#| information_schema |
#| dbtext1            |
#| mysql              |
#| performance_schema |
#| sys                |
#+--------------------+
#5 rows in set (0.00 sec)

use dbtext1;
#输出:Database changed
create table employees(id int,name verchar(15));
#输出 Query OK, 0 rows affected (0.04 sec)

show tables;
/*输出
+-------------------+
| Tables_in_dbtext1 |
+-------------------+
| employees         |
+-------------------+
1 row in set (0.01 sec)
*/

insert into employees values(1001,'wowotou');
#输出 Query OK, 1 row affected (0.01 sec)
insert into employees values(1002,'baobao');
#输出 Query OK, 1 row affected (0.01 sec)
select *from employees;
#输出
+------+---------+
| id   | name    |
+------+---------+
| 1001 | wowotou |
| 1002 | baobao  |
+------+---------+
2 rows in set (0.00 sec)

insert into employees values(1003,'宝宝');
#5.7版本出错 不支持汉字
# 8.0版本输出:Query OK, 1 row affected (0.00 sec)
mysql> select *from employees;
+------+---------+
| id   | name    |
+------+---------+
| 1001 | wowotou |
| 1002 | baobao  |
| 1003 | 宝宝    |
+------+---------+
3 rows in set (0.01 sec)

mysql> show create table employees;
+-----------+---------------------------------------------------------------------------------------------------------------+
| Table     | Create Table
                                               |
+-----------+----------------------------------------------------------------------------------------------------------------+
| employees | CREATE TABLE `employees` (
  `id` int DEFAULT NULL,
  `name` varchar(15) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-----------+---------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> show variables like 'character_%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | gbk                                                     |
| character_set_connection | gbk                                                     |
| character_set_database   | utf8mb4                                                 |
| character_set_filesystem | binary                                                  |
| character_set_results    | gbk                                                     |
| character_set_server     | utf8mb4                                                 |
| character_set_system     | utf8mb3                                                 |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 8.0\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.02 sec)

mysql> show variables like 'collation_%';
+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | gbk_chinese_ci     |
| collation_database   | utf8mb4_0900_ai_ci |
| collation_server     | utf8mb4_0900_ai_ci |
+----------------------+--------------------+
3 rows in set, 1 warning (0.00 sec)

4.2 MySQL的编码设置

MySQL版本5.7中

问题再现:命令行操作sql乱码问题

mysql> INSERT INTO t_stu VALUES(1,‘张三’,‘男’);
ERROR 1366 (HY000): Incorrect string value: ‘\xD5\xC5\xC8\xFD’ for column ‘sname’ at
row 1

问题解决:
步骤1:查看编码命令

#编码方式
show variables like ‘character_%’;
#比较规则
show variables like ‘collation_%’;

步骤2:修改mysql的数据目录下的my.ini配置文件:在my.ini文件里找到[mysqld]

[mysql] #大概在63行左右,在其下添加
default-character-set=utf8 #默认字符集
[mysqld] # 大概在76行左右,在其下添加
character-set-server=utf8
collation-server=utf8_general_ci

在这里插入图片描述
步骤3:重启服务
步骤4:查看编码命令

MySQL版本8.0中

在MySQL 8.0版本之前,默认字符集为latin1,utf8字符集指向的是utf8mb3。网站开发人员在数据库设计的时候往往会将编码修改为utf8字符集。如果遗忘修改默认的编码,就会出现乱码的问题。从MySQL 8.0开始,数据库的默认编码改为 utf8mb4 ,从而避免了上述的乱码问题。

在8.0版本使用查看编码命令:
在这里插入图片描述

5. MySQL图形化管理工具

MySQL图形化管理工具极大地方便了数据库的操作与管理,常用的图形化管理工具有:MySQLWorkbench、phpMyAdmin、Navicat Preminum、MySQLDumper、SQLyog、dbeaver、MySQL ODBC Connector。

6. MySQL目录结构与源码

6.1 主要目录结构

MySQL的目录结构说明
bin目录所有MySQL的可执行文件。如:mysql.exe
MySQLInstanceConfig.exe数据库的配置向导,在安装时出现的内容
data目录系统数据库所在的目录
my.ini文件MySQL的主要配置文件
c:\ProgramData\MySQL\MySQL Server 8.0\data\用户创建的数据库所在的目录

6.2 MySQL 源代码获取

首先,你要进入 MySQL下载界面。 这里你不要选择用默认的“Microsoft Windows”,而是要通过下拉栏,找到“Source Code”,在下面的操作系统版本里面, 选择 Windows(Architecture Independent),然后点
击下载。
在这里插入图片描述
接下来,把下载下来的压缩文件解压,我们就得到了 MySQL 的源代码。
MySQL 是用 C++ 开发而成的,我简单介绍一下源代码的组成。
mysql-8.0.22 目录下的各个子目录,包含了 MySQL 各部分组件的源代码:
在这里插入图片描述

  • sql 子目录是 MySQL 核心代码;
  • libmysql 子目录是客户端程序 API;
  • mysql-test 子目录是测试工具;
  • mysys 子目录是操作系统相关函数和辅助函数;
    源代码可以用记事本打开查看,如果你有 C++ 的开发环境,也可以在开发环境中打开查看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/444887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AIGC: Midjourney和Stable Diffusion在大厂中的应用

AIGC: Midjourney和Stable Diffusion在大厂中的应用和教程​http://www.webhub123.com/#/home/detail?projectHashid51631966&ownerUserid21336964 收录效果如下 登录后即可一键拥挤收藏以下所有文章网址到我的收藏夹,网站帮你简单高效地管理你的网络收藏&…

Memtiter-benchmark源码解析4memtier_benchmark.cpp源代码解读

run_benchmark 程序入口 First , create the cg_thread instances in the vector threads and then call each cg_thread’s prepare() function of them. Subsequently, launch each thread in the vector threads cg_thread m_base event_base_new() // line 528 一个cli…

移动端手机网页适配iPad与折叠屏设备

采用的网页适配方案:移动端页面px布局适配方案(viewport) 产生此问题的原因 由于手机与平板等设备宽高比差异导致页面展示不全或者功能按钮展示在视口之外点击不到。 简单来说就是我们的页面都是瘦长(即高大于宽)的,而折叠屏等设…

【计算机专业应届生先找培训还是先找个工作过渡一下?】

计算机专业应届生先找培训还是先找个工作过渡一下? 计算机应届生是先培训还是先工作,这个问题应该困扰了很多专业技能一般的同学,尤其是学历方面还没有优势的普通本专科院校。都说技术与学历优秀的人进大厂,技术一般学历优秀的人能…

@ComponentScan自动扫描组件并指定扫描规则

1.使用注解配置包扫描 1.1.创建相关类 分别创建BookDao、BookService、BookServiceImpl以及BookController这三个类,并在这三个类中分别添加Repository、Service、Controller注解 BookDaopackage com.tianxia.springannotation.dao;import org.springframework.s…

【社区图书馆】如何唤醒数学脑

如何唤醒数学脑 内容简介 每个人天生都有数学力,有着内建的“数学式思维模式”,若能有效发挥,就能在学校、职场、人际关系中表现出来,从容不迫地获得更好的效率及成就感。 但这种思维模式会受到周围情境、心理状态等因素的影响&…

思必驰闯关科创板:对标科大讯飞,发展阶段落后逾10年

4月17日,人机对话解决方案提供商——思必驰科技股份有限公司(下称“思必驰”)已更新提交相关财务资料,根据相关规定,上交所恢复了其发行上市审核。 2022年7月15日,思必驰向科创板递交IPO申请。今年3月底&am…

贵金属期货交易平台排行榜是真的还是假的?如何选择?

贵金属期货交易是一种非常常见的投资形式,其市场容量非常大,因此有各种各样的期货交易平台。这导致许多投资者不知道如何选择这些平台。对于投资者来说,只有选择一个高质量的期货交易平台,他们才能更好地进行后续的交易。如何选择…

BloomFilter在Drois中的应用

1.简介: BloomFilter是一种多哈希函数映射的快速查找算法,它实际上是由一个超长的二进制位数组和一系列的哈希函数组成的。初始时二进制位数组全部为0,当给定一个待查询的元素时,这个元素会被一系列哈希函数计算映射出一系列的值…

【redis】布隆过滤器BloomFitter

【redis】布隆过滤器BloomFitter 文章目录 【redis】布隆过滤器BloomFitter前言一、面试题二、是什么1、设计思想: 本质就是判断具体数据是否存在于一个大的集合当中 三、布隆过滤器特点1、重点 有,是可能有,无是一定无2、小总结 四、原理1、…

Node【包】

文章目录 🌟前言🌟Nodejs包🌟什么是包?🌟自定义包🌟包配置文件🌟示例🌟Package.json 属性说明🌟语义化版本号🌟package.json示例 🌟符合CommonJS规…

怎么做好管综深化设计?高效就靠它

管线综合深化设计是指将设计阶段完成的机电管线进一步深化排布,结合建筑装修的要求,根据管线不同的性质与功能统筹管线位置排布。管线综合是 BIM 技术现阶段最基础也是应用最广泛的点,如何使机电各系统的使用功能效果达到最佳,整体…

(排序11)排序的时间复杂度,空间复杂度,稳定性总结

图片总结 内排序时间复杂度总结 内部排序:数据元素全部放在内存中的排序。. 在内排序当中比较快的有希尔排序,堆排序,快速排序,归并排序,这四个排序的时间复杂度都是O(n*logn)。其中希尔排序的时间复杂度更加准确的来…

RB-PEG-COOH,罗丹明聚乙二醇羧基;RhodamineB-PEG-acid;RB-PEG2000-COOH

RB-PG-COOH, 罗丹明聚乙二醇羧基 中文名称:罗丹明-聚乙二醇-羧基 英文名称:RhodamineB-PEG-acid RB-PEG-COOH 性状:固体或粘性液体,取决于分子量 溶剂:溶于水和DCM、DMF、DMSO等常规性有机溶剂 分子量&#xff1…

MySQL运维28-MySQL复制

文章目录 1、MySQL复制模式2、MySQL复制的兼容性3、与MySQL复制相关的两种日志3.1、中继日志3.2、MySQL复制的状态日志 4、MySQL主从复制的实施示例4.1、主从库安装4.2、主库配置4.3、从库的配置4.4、启动复制和确认成功 5、对MySQL复制的监控6、MySQL监控的运维6.1、在从库修改…

ASEMI代理ADAU1979WBCPZ原装ADI车规级ADAU1979WBCPZ

编辑:ll ASEMI代理ADAU1979WBCPZ原装ADI车规级ADAU1979WBCPZ 型号:ADAU1979WBCPZ 品牌:ADI /亚德诺 封装:LFCSP-40 批号:2023 安装类型:表面贴装型 引脚数量:40 类型:车规级…

Linux串口应用编程

在Linux系统中,操作设备的统一接口就是:open/ioctl/read/write。 对于UART,又在ioctl之上封装了很多函数,主要是用来设置行规程。 所以对于UART,编程的套路就是: 使用open函数打开串口设置行规程&#xff…

vue---自定义指令

目录 1、为什么使用自定义指令? 2、自定义指令 3、自定义指令使用 1、为什么使用自定义指令? 什么时候我们需要去自定义一个指令呢? 事件修饰符,很大的程度上我们是为了让我们的代码更加显得是数据驱动的以及可测试的&#x…

姿态识别、手势识别(附代码)

姿态识别技术是一种基于计算机视觉的人体姿态分析方法,可以通过分析人体的姿态,提取出人体的关键点和骨架信息,并对人体的姿态进行建模和识别。随着深度学习技术的发展,近年来姿态识别技术得到了广泛的应用和研究,其中…

React框架的介绍、特点、安装及基本使用流程

一、react介绍 官网:React (docschina.org) react是由facebook前端开发团队开发和维护的js框架 react的实现功能类似VUE,但是由于国外的开发风格,导致在react上,并没有对数据渲染的步骤进行封装,需要开发者更多的使…