uft8和utf8mb4区别
utf8 别名utf8mb3,每个字符最多使用三个字节,仅包含BMP字符
utf8mb4,每个字符最多使用四个字节,不仅包含BMP字符,还支持补充字符
emoji表情存储支持
mysql5.5.3才开始支持utf8mb4,所以此版本之前均不支持emoji表情存储
mysql设置utf8mb4编码
修改数据库编码
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
修改表编码
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
修改属性编码
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
修改mysql配置文件
linux:my.cnf,windows:my.ini
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'重启mysql
#shell脚本,mysql5.5.7脚本是/etc/init.d/mysql,有没有觉得这就是神奇的bug,特么觉得没有review就上release了:
/etc/init.d/mysqld restart
#service,原理还是调用shell脚本/etc/init.d/mysqld:
service mysqld restart
#systemctl,linux 2.6.39内核以上版本升级的更强大的管理体系,兼容取代service:
systemctl start mysqld.service
#windows,net没有restart骚气的操作,只能乖乖熄火启动,不能漂移怎么能忍受,自行上bat(battle):
net stop mysql
net start mysql
#lnmp便捷骚操作,原理万变不离其宗,依然是优雅的套壳:
lnmp mysql restart修改代码中连接myql的编码方式
以 Yii2 框架数据库配置为例
'db' => [
'class' => 'yii\db\Connection',
'dsn' => env('DB_DSN'),
'username' => env('DB_USERNAME'),
'password' => env('DB_PASSWORD'),
'charset' => 'utf8mb4',//emoji支持编码,同样可以env,举个栗子
'tablePrefix' => env('DB_TABLE_PREFIX'),
'enableSchemaCache' => YII_ENV_PROD,
],
由markdown编辑器 typora 发送
所有评论
加载评论 ...
发表评论