您可以用db、table、system检查show create table'table'、show create database'database'、\s的字符集。
如果情况如下,该表使用什么字符集?
如果客户端是utf8mb4,而表是utf8m b4,那么将其用作utf8mb 4是没有问题的。我可以忽略所有其他设置吗?
1.
mysql > show create database db_name;
+-----------+----------------------------------------------------------------------+
| Database | Create Database |
+-----------+----------------------------------------------------------------------+
| db_name | CREATE DATABASE `db_name` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+-----------+----------------------------------------------------------------------+
2.
mysql > show create table tb_name;
CREATE TABLE `tb_name` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`var` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
3.
s
Server characterset: utf8
Db characterset: latin1
Client characterset: utf8mb4
Conn. characterset: utf8mb4
每一列都有自己的字符集和排序规则;表、数据库和服务器字符集只是新创建的列、表和数据库(分别(的默认值。但是show create table
将显示与表默认值不同的任何列的字符集,因此,如果您没有看到任何字符集,则表的字符集就是其列所使用的字符集。