Day01 MySQL概述卸载安装配置初步使用 及使用docker安装

一、SQL概述

1.数据库的好处

实现数据的持久化
使用完整的管理系统统一管理,易于查询

2.数据库的相关概念

DB:		
	数据库(database): 存储数据的“仓库”。他保存了一系列“有组织”的数据。
	
DBMS:
	数据库管理系统(Database Management System)。数据库是通过DBMS创建和操作的容器。
	
SQL:
	结构化查询语言(Structure Query Language): 专门用来与数据库通信的语言

在这里插入图片描述

3.SQL语言概述

SQL的优点:

​ 1.不是某个特点数据库供应商专有的语言,几乎所有DBMS都支持SQL2.简单易学

​ 3.虽然简单,但实际上是一种强有力的语言,灵活等用其语言元素,可以进行非常复杂和高级的数据库操作

在这里插入图片描述

4.数据库存储数据的特点

1.将数据放到表中,表再放到库中

2.一个数据库中可以有多个表,每个表都有对应的名字,用来标识自己。表明具有唯一性。

3.表具有一些特性,这些特性定义了数据在表中如何存储,类似java中“类”的设计。

4.表由列组成,我们也称为字段。所以表都是由一个或多个列组成,每一列类似java中的"属性"

5.表中的数据是按行存储的,每一行类似与java中的“对象”。

5.MySQL软件介绍

①软件介绍

MySQL数据库隶属于MySQL AB公司,总部位于瑞典,后被Oracle收购

  • 优点
    • 成本低: 开发源代码,一般可以免费使用
    • 性能高: 执行快
    • 简单: 很容易安装和使用

②DBMS分类

基于共享文件系统的DBMS(Access)
基于客户机(C/S架构)—服务器的DBMS(MySQL、Oracle、SqlServer)

③MySQL版本

社区版(免费)
企业版(收费)

6.MySQL软件的卸载

1.正常流程的卸载MySQL软件后会有残留
2.删除 在原本安装路径MySQL
3.删除 C盘根目录下ProgramData(隐藏)/MySQL

还没干净就如下图操作↓
在这里插入图片描述

7.docker 安装mysql

1 执行如下命令拉取和查看mysql镜像

# 此命令下载的是最新版
docker pull mysql
 
# 此命令下载的是指定版本的
docker pull mysql:8.0

# 查看镜像
docker images

2 运行 mysql 容器


# mysql 5.x使用此命令,挂载目录与8.x有所不同
docker run -d -p 3306:3306 --name mysql5.7 -v /devtools/mysqldata/log:/var/log/mysql  -v /devtools/mysqldata/data:/var/lib/mysql  -v /devtools/mysqldata/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7
 
 
# mysql 8.x使用此命令,挂载目录与5.x有所不同
docker run -d -p 3306:3306 --name mysql8 -v /devtools/mysqldata/log:/var/log/mysql  -v /devtools/mysqldata/data:/var/lib/mysql  -v /devtools/mysqldata/conf:/etc/mysql -v /devtools/mysqldata/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=root mysql:8.0.29
 
 
# mysql 8.x 分多行写法
docker run --name mysql8 -d -p 3306:3306 \
-v /devtools/mysqldata/log:/var/log/mysql \
-v /devtools/mysqldata/data:/var/lib/mysql \
-v /devtools/mysqldata/conf:/etc/mysql \
-v /devtools/mysqldata/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=root \
mysql:8.0.28

运行命令 参数解释:

docker run:运行一个容器实例

-d:该容器在后台运行,不挂断

-p 3306:3306:把doker容器里面的端口暴露到宿主机端口。左为宿主机端口、右为容器端口

–name mysql:容器运行后的名称,容器名称

-v /devtools/mysqldata/log:/var/log/mysql:将容器 /var/log/mysql 目录下的数据,备份到宿主机的 /devtools/mysqldata/log 目录下

-v /devtools/mysqldata/data:/var/lib/mysql:将容器 /var/lib/mysql 目录下的数据,备份到宿主机的 /devtools/mysqldata/data 目录下

-v /devtools/mysqldata/conf:/etc/mysql:将容器 /etc/mysql 目录下的数据,备份到宿主机的 /devtools/mysqldata/conf 目录下

-v /devtools/mysqldata/mysql-files:/var/lib/mysql-files:将容器 /var/lib/mysql-files 目录下的数据,备份到宿主机的 /devtools/mysqldata/mysql-files 目录下。(mysql 8.x必须挂载此项,否则报错。5.x版本不需要挂载此项)

-e MYSQL_ROOT_PASSWORD=root:设置当前 mysql 实例的用户密码为 root

mysql:5.7:需要运行的容器名称及版本号

说明:
做了上述 -v 参数命令备份后,就算当前的 mysql 容器被删了,那么再次启动 mysql 容器后,数据会自动从主机加载到容器中,数据不会丢失

挂载语法:
-v xxx:yyy:把宿主机的 xxx 目录挂载到容器中的 yyy 目录下

3 切换到上述备份的宿主机配置的 /devtools/mysqldata/conf 目录下

cd /devtools/mysqldata/conf

4 创建 my.conf 文件

touch my.conf

5 编辑刚才创建的 my.conf 文件,添加如下内容。在docker中安装的 mysql 容器默认字符集是latin1,需要把存储引擎编码改成 utf8 防止乱码

[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8

编辑完成后,按 Esc 输入 :wq! 保存并退出即可

6 查看编辑内容

cat my.conf

7 完成上述步骤之后,重启 mysql 容器,使刚才的配置文件生效

# 重启mysql容器
docker restart  mysql
 
#启动mysql容器
docker start mysql
 
# 停止mysql容器
docker stop  mysql

8 查看容器是否启动成功

docker ps -a

成功启动,mysql安装完成
在这里插入图片描述
9、测试连接

# 第一步执行,进入容器,docker exec -it 容器名称 bash
docker exec -it mysql bash
 
 
# 第二步执行,连接数据库,mysql -u用户 -p密码
mysql -uroot -proot

在这里插入图片描述

8.MySQL的常见命令

 - 查看当前所有的数据库:	show databases;
 - 打开指定的库:	use 库名;
 - 查看当前库的所有表:	show tables;
 - 查看其它库的所有表:	show tables from 库名;
 - 创建表: create table 表名(
		列名 列类型,
		列明 列类型,
		...
	)
 - 查看表结构:	desc 表明;	
 - 查看服务器版本: 
		方式一: 登录到mysql服务端	select version();
		方式二: 没有登入到mysql服务端(在cmd下)	mysql --version 或 mysql --V

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

9.MySQL的语法规范

  • 不区分大小写,但建议关键字大写, 表明、列名小写。
  • 每条命令最好用分号结尾;
  • 每条命令根据需要,可以进行缩进,或换行
  • 注释
    • 单行注释: [-- 注释文字]
    • 多行注释: [/* 注释文字 */]
    • 单行注释: [#注释文字]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值