MySQL数据库:4、字符编码配置、数据存储引擎

一、字符编码与配置文件

1、配置字符编码

字符编码:

​ 在MySQL5.6版本之前字符编码默认为‘latin1’或‘gbk’如果不进行统一的话可能会出现乱码的现象

​ 通过在MySQL客户端输入‘\s’的方式可以查看当前用户、版本、编码类型、端口号等数据

配置字符编码:

​ 1、MySQL中默认配置文件是‘my-defaull.ini’

​ 2、拷贝配置文件,命名为‘my.ini’(原配置文件不能删除)

​ 3、将字符编码相关配置拷贝到新的文件中

​ 4、重启服务端

字符编码相关配置
    [mysqld]
        character-set-server=utf8mb4
        collation-server=utf8mb4_general_ci
    [client]
        default-character-set=utf8mb4
    [mysql]
        default-character-set=utf8mb4

须知:

​ 1、utf8mb4能够储存表情,功能更强大

​ 2、utf8和utf-8是有区别的,MySQL中只有utf8

​ 3、利用配置文件可以偷懒,在登陆时无需输入在输入管理员账户和密码

	[mysql]
		user='root'
		password=123

2、严格模式

产生的原因:

​ 严格模式是指,在我们手机用数据库储存数据时,储存的数据不符合规范,理应来说应该会报错,而不是将不符合的数据擅自进行修改,在存入表中,导致严格模式失效的原因是因为我们修改了配置文件

解决方法:

  • 零时修改
    • 只在当前客户端有效
      • set session sql_mode='strict_trans_tables';
    • 在当前服务端有效
      • set global sql_mode='strict_trans_tables';
  • 永久修改
    • 拷贝原配置文件中数据到my.ini文件这种的mysqld中
[mysqld]
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

二、数据存储引擎

1、什么是存储引擎

  • 存储引擎是指:数据库针对不同数据采取的多种储存方式

  • 查看储存引擎: show engines

2、如何切换存储引擎

  • 关键词:engine

​ create table 表名(字段名 类型) engine=指定的存储引擎;

# 1、创建库
create database db1;
# 2、切换至库下
use db1;
# 3、创建表
create table t1(id int, name varchar(12)) engine=innodb

3、需要了解的存储引擎

2、1.InnoDB

  • MySQL5.5之后默认的储存引擎

  • 支持事务、行锁、外键等操作 存取速度没有MyISAM快 但是安全性更高

  • 创建表,在库中生成两个文件

    • 后缀名:.frm >>>:表结构
    • 后缀名:.ibd >>>:表数据,表索引

2、2.MyISAM

特点:

  • MySQL5.5之前默认的储存引擎
  • 存储速度快,但是功能较少,安全性较低
  • 创建的表,会在库中生成三个表文件
    • 后缀名:.frm >>>:表结构
    • 后缀名:.MYD >>>:表数据
    • 后缀名:.MYI >>>:表索引

2、3.Memry

特点:

  • 基于内存储存数据,服务端关闭后数据会消失
  • 仅用于临时表数据的储存
  • 创建的表,会在库中生成一个表文件
    • 后缀名:.frm >>>:表结构

2、4.blackhole

特点:

  • 任何写入的数据都会立即消失
  • 创建的表,会在库中生成一个表文件
    • 后缀名:.frm >>>:表结构

posted @ 2022-11-23 20:17  kangshong  阅读(157)  评论(0编辑  收藏  举报