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 >>>:表结构