「MySQL-02」数据库的操纵、备份、还原和编码规则

news2024/11/28 14:28:09

目录

一、库操作

1. 创建数据库

2. 查看所有数据库

3. 删除数据库

4. 修改数据库

5. 进入一个数据库

二、查看和设置数据库的编码规则

1. MySQL的两个编码规则:字符集和校验规则

2. 查看MySQL当前使用的字符集以及校验规则

3. 查看MySQL支持的所有字符集

4. 查看MySQL支持的所有校验规则

5. 设置字符集和校验规则

三、数据库的备份和还原

1.数据库的备份和还

2.数据库的还原

四、查看库的连接情况


一、库操作

1. 创建数据库

语法:
    CREATE DATABASE [IF NOT EXISTS] `数据库名` [charset=要设置的字符集] [collate 要设置的校验规则];
示例:
    create databse if not exists test charset=utf8;
说明:
    1.MySQL对大小写不敏感,所以关键字可大写也可小写,MySQL的存储引擎优化后都能识别。
    2.[] 是可选项
    3.IF NOT EXISTS:如果不存在就创建。
    4.数据库名的反引号可加可不加,一般是数据库名称和MySQL中的关键字冲突时加。
    5.charset: 指定数据库采用的字符集
    6.collate: 指定数据库字符集的校验规则
    7.创建数据库的本质就是在 /var/lib/mysql路径下创建目录

2. 查看所有数据库

show databases;
--查看当前用户有权限访问的所有数据库
--本质上就是查看 /var/lib/mysql路径下的目录

3. 删除数据库

语法:
    DROP DATABASE [IF EXISTS] 数据库名称;
示例:
    drop database if exists test1;
说明:
    IF EXISTS:如果存在就删除
    本质上就是删除 /var/lib/mysql路径下的指定目录,级联删除,里面的数据表全部被删

4. 修改数据库

语法:
    ALTER DATABASE 数据库名称 [charset 要设置的字符集] [collate 要设置的校验规则];
示例:
    alter database test charset=utf8;
说明:
    该sql语句主要就是用来修改数据库的字符集和校验规则,无法修改数据库的名字
    修改字符集校验规则也会跟着修改
    但要校验规则如果和当前字符集不匹配将无法修改

5. 进入一个数据库

use 数据库名;
-- 本质上是进入数据库对应的目录

二、查看和设置数据库的编码规则

1. MySQL的两个编码规则:字符集和校验规则

  • 字符集     :规定MySQL以什么编码方式接收、保存用户数据和给发送用户发送数据。
  • 校验规则 :在设立好的字符集的基础上,规定MySQL以什么方式来识别用户发来的SQL语句和比对用户发来的数据跟数据库中的数据,如是否要大小写敏感、是否bin(二元)结束

        MySQl中字符集和校对规则是一对多的关系,虽然字符集都有一个默认的校对规则,但我们可以自主设置字符集和校验规则,只要两者能匹配就不会出现乱码问题。要注意的是只设置字符集时,MySQL会自动将校对规则设置为字符集中对应的默认校对规则。

2. 查看MySQL当前使用的字符集以及校验规则

  • 查看MySQL中数据库使用的字符集以及校验规则:
    show variables like 'character_set_database';
    show variables like 'collation_database';
  • 查看MySQL中数据库服务端使用的字符集以及校验规则:
    show variables like 'character_set_server';
    show variables like 'collation_server';
  • 查看MySQL中各部分使用的字符集以及校验规则:
    show variables like 'character_set_%';
    show variables like 'collation_%';
  • 通过数据库目录下的db.opt文件查看指定数据库使用的字符集以及校验规则
    cat 数据库名称/db.opt

3. 查看MySQL支持的所有字符集

  • SQL语句:
        show charset;
  • 示例: 

        

  • 说明:
        图中第三列即为字符集能匹配上的校验规则。

4. 查看MySQL支持的所有校验规则

  • SQL语句:
        show collation;
  • 示例:
        
  • 说明:
        图中第二列即为校验规则能匹配上的字符集。

5. 设置字符集和校验规则

4.4.1 通过配置my.cnf文件设置MySQL的默认字符集和默认校验规则

示例:

        使用vim打开MySQL配置文件 :  vim /etc/my.cnf

        然后在最后一行前面加上:character-set-server=utf8

        最后重启MySQL客户端 : systemctl restart mysqld 

说明:

        character-set-server=utf8 是在设置MySQL的服务端的默认字符集为utf-8。


4.4.2 创建数据库时指明该数据库使用的字符集和校验规则

SQL语句:

        create database 数据库名 charset 要设置的字符集 collate 要设置的校验规则

示例:

        create database test charset utf8 collate utf8_bin;

说明:

        设置好了字符集,校验规则也会跟着改变为默认匹配的。反之亦然。

        如果创建数据库时不指明该数据库使用的字符集和校验规则,就使用MySQL的默认字符集和默认校验规则。

        设置数据库的字符集,校验规则本质上就是在修改数据库目录下的db.opt文件。


三、数据库的备份和还原

1.数据库的备份和还

语法(在Linux环境下):
    mysqldump -P端口号 -uMySQL用户名 -p用户密码 -B数据库名 > 存储数据库备份信息的文件的路径
示例:
    mysqldump -P3306 -uroot -p123456 -Btest > ./db.sql
说明:
    该语句的主要作用就是将数据库的主要信息和历史操作信息保存到了指定文件中
    mysqldump和mysql服务端,客户端一样也是由MySQL提供给用户的工具,用来备份数据库。
    如果备份时,没有-B参数,在恢复数据库时,需要先创建空数据库,然后进入数据库,再使用source来还原

如果备份的不是整个数据库,而是其中的一张表,怎么做?
    mysqldump -u root -p 数据库名 表名1 表名2 > 存储数据库备份信息的文件的路径

同时备份多个数据库
    mysqldump -u root -p -B 数据库名1 数据库名2 ... > 存储数据库备份信息的文件的路径

2.数据库的还原

方法:
    先登录mysql,再输入以下sql语句:
    source 保存数据库备份信息的文件路径;
示例
    source root/mysql/db.sql
说明:
    这里保存数据库备份信息的文件路径为绝对路径。

四、查看库的连接情况

语法:
    show processlist

说明:
    用该sql语句我们可以知道当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。

------------------------END-------------------------

才疏学浅,谬误难免,欢迎各位批评指正。

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

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

相关文章

nnUNet v2数据准备及格式转换 (二)

如果你曾经使用过nnUNet V1,那你一定明白数据集的命名是有严格要求的,必须按照特定的格式来进行命名才能正常使用。 这一节的学习需要有数据,如果你有自己的数据,可以拿自己的数据来实验,如果没有,可以用十…

JVM类的加载过程

加载过程 JVM的类的加载过程分为五个阶段:加载、验证、准备、解析、初始化。 加载   加载阶段就是将编译好的的class文件通过字节流的方式从硬盘或者通过网络加载到JVM虚拟机当中来。(我们平时在Idea中书写的代码就是放在磁盘中的,也可以通…

Kubernetes可视化管理工具Kuboard部署使用及k8s常用命令梳理记录

温故知新 📚第一章 前言📗背景📗目的📗总体方向 📚第二章 安装 Kubernetes 多集群管理工具 - Kuboard v3📗部署方式📗通过Kuboard v3 - Kubernetes安装(在master节点执行)&#x1f4…

大学生攻略:正确的购买和使用你的电脑

笔者是计算机专业在读大学生,从小学开始接触电脑,进行过各种操作(更换硬件维修,换系统,系统命令行,管理员权限,无视风险继续安装,没有这条 ),相对大学生有一定参考价值。 购买 1.买…

【Java并发】聊聊AQS原理机制

什么是AQS AbstractQueuedSynchronizer是一个抽象队列同步器,主要是实现并发工具类的基石。 是用来构建锁或者其它同步器组件的重量级基础框架及整个JUC体系的基石, 通过内置的FIFO队列来完成资源获取线程的排队工作,并通过一个int类变量表示…

仿京东 项目笔记1

目录 项目代码1. 项目配置2. 前端Vue核心3. 组件的显示与隐藏用v-if和v-show4. 路由传参4.1 路由跳转有几种方式?4.2 路由传参,参数有几种写法?4.3 路由传参相关面试题4.3.1 路由传递参数(对象写法)path是否可以结合pa…

MyBatis-Plus —— 初窥门径

前言 在前面的文章中荔枝梳理了MyBatis及相关的操作,作为MyBatis的增强工具,MyBatis-Plus无需再在xml中写sql语句,在这篇文章中荔枝将梳理MyBatis-Plus的基础知识并基于SpringBoot梳理MyBatis-Plus给出的两个接口:BaseMapper和ISe…

【微服务部署】三、Jenkins+Maven插件Jib一键打包部署SpringBoot应用Docker镜像步骤详解

前面我们介绍了K8SDockerMaven插件打包部署SpringCloud微服务项目,在实际应用过程中,很多项目没有用到K8S和微服务,但是用到了Docker和SpringBoot,所以,我们这边介绍,如果使用Jenkinsjib-maven-plugin插件打…

第 3 章 栈和队列 (循环队列)

1. 背景说明 和顺序栈相类似,在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外, 尚需附设两个指针 front 和 rear 分别指示队列头元素及队列尾元素的位置。约定:初始化建空队列时&#x…

测试人:“躺平?不可能的“, 盘点测试人在职场的优势

之前有这么一个段子:有人喜欢创造世界,他们做了程序员;有人喜欢拯救世界,他们做了测试员!近几年,测试工程师在企业究竟是怎么样的发展?随着企业对于用户体验的满意度越来越重视,更加…

vue 从后端取图片返回发现是两张,但自己只要一张图片 怎么操作

1.用JavaScript里边常用的分隔符去操作 item.original_status.user.profile_image_url.split(,)[0] <van-imagewidth"100"height"100":src"item.original_status.user.photo_domain item.original_status.user.profile_image_url.split(,)[0]&quo…

排序算法学习记录-快速排序

快速排序 快速排序关键在于确定一个中间值&#xff0c;使得小于这个中间值的数在左边&#xff0c;大于这个中间值的数在右边。那么中间值该如何确定呢&#xff1f;有以下几种做法 首元素&#xff0c;也就是arr[l]尾元素&#xff0c;也就是arr[r]中间元素&#xff0c;也就是ar…

编译问题:error: ‘printf’ was not declared in this scope

这个错误提示意味着编译器在当前作用域内无法找到 printf 函数的声明。这通常是因为没有包含 <stdio.h> 头文件导致的。 解决方法是在程序中添加 #include <stdio.h> 这一行代码。这个头文件中包含了 printf 函数的声明&#xff0c;告诉编译器如何处理该函数。

第五讲:ADO连接Access前期绑定与后期绑定方法实例(上)

【分享成果&#xff0c;随喜正能量】说到得失&#xff0c;不管是得是失&#xff0c;都各有因缘。是我的&#xff0c;不必力争&#xff0c;自会得到&#xff1b;不是你的&#xff0c;即使千方百计取得&#xff0c;也会随风而逝。 如果你想获得安宁与自由&#xff0c; 那么让脚步…

浅析ARMv8体系结构:异常处理机制

文章目录 概述异常类型中断终止Abort复位Reset系统调用 异常处理流程异常入口异常返回异常返回地址 堆栈选择 异常向量表异常向量表的配置 同步异常解析相关参考 概述 异常处理指的是处理器在运行过程中发生了外部事件&#xff0c;导致处理器需要中断当前执行流程转而去处理异…

swaggo的一点小理解

如有错误&#xff0c;希望指出&#xff0c;谢谢&#xff01; 很低级的概念不清&#xff0c;大佬嘴下留情。 1.关于swag的注释 我的理解是这些注释是专门提供给Swagger UI界面测试使用的&#xff0c;根据注释内容告诉swag文档这个函数应该有哪些参数&#xff0c;从什么路由走&…

基于图像切割计算轨迹相似度

目录 背景思路与核心代码数值实验优缺点分析参考文献 背景 在前面2文&#xff0c;我们分别讨论了利用夹角余弦来计算轨迹相似度和利用缓冲原理来计算轨迹相似度两种方法&#xff0c;前者可以作为一个baseline提供参考&#xff0c;后者的计算更符合人们的感官和事实&#xff0c…

1. 企业大数据开发流程

文章目录 1. 数据建设流程1.1 业务需求&#xff08;占40%&#xff09;1.2 需求调研1.3 概要设计1.4 详细设计1.5 数据开发&#xff08;占20%&#xff09;1.6 数据交付 学习链接 1. 数据建设流程 即当我们接到一个新的需求后&#xff08;需求文档&#xff09;&#xff0c;我们应…

vmware 16增加硬盘容量并在Ubuntu 18.04上边格式化并挂载

参考了《增加 VM虚拟机硬盘容量》 《Linux学习之分区挂载》中有给VMWare 16虚拟机添加一块硬盘的内容&#xff0c;需要先参考添加硬盘。 sudo mkfs.ext4 /dev/sda4给/dev/sda4进行ext4格式化。 sudo mkdir /mountsda4新建一个挂载目录。 sudo mount -t ext4 /dev/sda4 /mo…

羊城杯-2023-Crypto

文章目录 Danger_RSA题目描述&#xff1a;题目分析&#xff1a; Easy_3L题目描述&#xff1a;题目分析&#xff1a; XOR贯穿始终题目描述&#xff1a;题目分析&#xff1a; MCeorpkpleer题目描述&#xff1a;题目分析&#xff1a; SigninCrypto题目描述&#xff1a;题目分析&am…