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


    目录

    一、库操作

    1. 创建数据库

    2. 查看所有数据库

    3. 删除数据库

    4. 修改数据库

    5. 进入一个数据库

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

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

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

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

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

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

    三、数据库的备份和还原

    1.数据库的备份

    2.数据库的还原

    四、查看库的连接情况


    一、库操作

    1. 创建数据库

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

    2. 查看所有数据库

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

    3. 删除数据库

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

    4. 修改数据库

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

    5. 进入一个数据库

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

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

    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. 设置字符集和校验规则

    5.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。


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

    SQL语句:

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

    示例:

            create database test charset utf8 collate utf8_bin;

    说明:

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

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

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


    三、数据库的备份和还原

    1.数据库的备份

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

    2.数据库的还原

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

    四、查看库的连接情况

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

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

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

  • 相关阅读:
    nginx四层tcp负载均衡及主备、四层udp负载均衡及主备、7层http负载均衡及主备配置(wndows系统主备、负载均衡)
    C语言基础语法复习06-c语言关键字
    【MAC】升级 Mac os 后报错
    网课自动暂停解决方法、挂课后台播放方法、解决继续教育自动暂停
    编译原理6.1:NFA转DFA、DFA化简
    变量承接函数类型的方法
    开源ESP32智能小车机械臂控制板Baize_Carboard(支持mixly)
    vr航天探索科普展vr航天科普亲子嘉年华
    python小题库(三)
    linux下doc转docx
  • 原文地址:https://blog.csdn.net/look_outs/article/details/132513194