查看支持哪些存储引擎
敲一条命令,看这台机器认得哪几种引擎。
重 点只看两列
Support 写 DEFAULT 的是默认引擎,Transactions 写 YES 的支持事务。
分清楚
| 列名 | 看什么 |
|---|---|
| Support | YES/DEFAULT/NO |
| Transactions | 支不支持事务 |
想一想
FEDERATED 那一行 Support 是 NO,说明什么?
敲一条命令,看这台机器认得哪几种引擎。
Support 写 DEFAULT 的是默认引擎,Transactions 写 YES 的支持事务。
| 列名 | 看什么 |
|---|---|
| Support | YES/DEFAULT/NO |
| Transactions | 支不支持事务 |
FEDERATED 那一行 Support 是 NO,说明什么?
确认这台机器现在默认拿哪个引擎建表。
default_storage_engine 就是答案,一般是 InnoDB。
中间两条把默认引擎换成 MyISAM 再查一遍,最后一条改回来。
改了默认引擎,之前建好的表会跟着变吗?
看这台机器认得哪些字符集,重点找 utf8mb4。
Maxlen 写 4 的才存得下表情,utf8 只有 3。
| 两种写法 | 区别 |
|---|---|
| SHOW CHARACTER SET | 短,直接就能看 |
| 查 CHARACTER_SETS | 要先 USE 系统库 |
utf8mb4 一个字最多占四个字节,所以表情也存得下。
同一个字符集下面,挂着好几种校对规则。
gbk 只有两条,utf8mb4 有七十多条,先用 WHERE 缩小范围。
Default 那一列写着 Yes 的,意味着什么?
把服务器、库、连接三处的编码摆在一起看。
客户端和连接是 gbk,服务器是 utf8mb4,中间就得转一道码。
character_set_database 跟着当前选中的库走,没选库就显示服务器的默认值。
三个值互相不一样,MySQL 会怎么处理?
照教材例 4-1 建一个 teaching 库,字符集写清楚。
建完敲 SHOW DATABASES 确认它真的出现在列表里。
第 5 章起的五张表都建在这个库里,名字先对上,省得回头改。
写了 IF NOT EXISTS 就不报错,只给一条警告,原来的库原封不动。
先看它长什么样,改成 gbk,再看一次对比。
差别只有字符集和校对规则两处,别的一个字没动。
有的版本省掉 COLLATE,有的多出 ENCRYPTION,都属于正常。
ALTER 之后,库里已经建好的表会跟着变吗?
删掉 teaching,再确认它是不是真的没了。
删完再敲 SHOW CREATE DATABASE teaching,会看到 Unknown database。
不是把抽屉里的纸抽走,是把整个柜子搬走,纸和柜子一起没。
第 5 章还要用 teaching,删完之后该补做什么?
八道题都做完以后,从头到尾连着敲一遍。
一键跑完会按顺序执行十二条,自己一条条敲收获更大。
这十二条把本章的命令全覆盖了,连着跑通就算这一章的操作过关。
中间少打一个分号,终端会给你什么反应?