如何更改MySQL数据库的编码为utf8mb4
utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。
采用utf8mb4编码的好处是:存储与获取数据的时候,不用再考虑表情字符的编码与解码问题。
更改数据库的编码为utf8mb4:
1. MySQL的版本
utf8mb4的最低mysql版本支持版本为5.5.3+,若不是,请升级到较新版本。
2. MySQL驱动
5.1.34可用,最低不能低于5.1.13
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
3.修改MySQL配置文件
修改mysql配置文件my.cnf
my.cnf一般在etc/mysql/my.cnf位置。找到后请在以下三部分里添加如下内容:
[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'
4. 重启数据库,检查变量
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
collation_connection 、collation_database 、collation_server是什么没关系。
但必须保证
系统变量 描述
character_set_client (客户端来源数据使用的字符集)
character_set_connection (连接层字符集)
character_set_database (当前选中数据库的默认字符集)
character_set_results (查询结果字符集)
character_set_server (默认的内部操作字符集)
这几个变量必须是utf8mb4。
5. 数据库连接的配置
数据库连接参数中:
characterEncoding=utf8会被自动识别为utf8mb4,也可以不加这个参数,会自动检测。
而autoReconnect=true是必须加上的。
6. 将数据库和已经建好的表也转换成utf8mb4
更改数据库编码:ALTER DATABASE caitu99 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
更改表编码:ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATEutf8mb4_general_ci;
如有必要,还可以更改列的编码
总结
以上所述是小编给大家介绍的如何更改MySQL数据库的编码为utf8mb4,希望对大家有所帮助!
相关推荐
-
Mysql数据库编码问题 (修改数据库,表,字段编码为utf8)
因为utf8字符集是目前最适合于实现多种不同字符集之间的转换的字符集,尽管你在命令行工具上可能无法正确查看数据库中的内容,我依然强烈建议使用utf8作为默认字符集接下来是完整的一个例子: 1.创建数据库表 mysql>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci; #注意后面这句话 "COLLATE utf8_general_ci",大致意思是在排序时根据utf8校
-
mysql存储emoji表情报错的处理方法【更改编码为utf8mb4】
本文实例分析了mysql存储emoji表情报错的处理方法.分享给大家供大家参考,具体如下: utf-8编码可能2个字节.3个字节.4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符.如果直接往采用utf-8编码的数据库中插入表情数据,Java程序中将报SQL异常: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1
-
MySql修改数据库编码为UTF8避免造成乱码问题
mysql 创建数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防.制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题. 网页数据一般采用UTF8编码,而数据库默认为latin .我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题. 我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来 我们可以通过命令查看数据库当前编码: mysql> SHOW VARIABLES LIKE 'character%'
-
mysql中数据库与数据表编码格式的查看、创建及修改
一.查看数据库编码格式 mysql> show variables like 'character_set_database'; 二.查看数据表的编码格式 mysql> show create table <表名>; 三.创建数据库时指定数据库的字符集 mysql>create database <数据库名> character set utf8; 四.创建数据表时指定数据表的编码格式 create table tb_books ( name varchar(45
-
MYSQL数据库使用UTF-8中文编码乱码的解决办法
1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将"整理"设置为:"utf8_general_ci" 或执行语句: 复制代码 代码如下: CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创建数据表的时候:如果是该字段是存放中文的话,则需要将"整理"设置为:"utf8_general_ci", 如果该字段是
-
mysql修改数据库编码(数据库字符集)和表的字符编码的方法
mysql将表的字符编码转换成utf-8 复制代码 代码如下: alter table tb_anniversary convert to character set utf8; 修改数据库mysql字符编码为UTF8 步骤1:查看当前的字符编码方法 复制代码 代码如下: mysql> show variables like'character%'; +--------------------------+----------------------------+ |Variable_name
-
全面了解mysql中utf8和utf8mb4的区别
一.简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换.当然,为了节省空间,一般情况下使用utf8也就够了. 二.内容描述 那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来mysql支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了.三个字节的 UT
-
MySQL查看与修改当前数据库编码的方法
MySQL中,数据库的编码是一个相当重要的问题,有时候我们需要查看一下当前数据库的编码,甚至需要修改一下数据库编码. 查看当前数据库编码的SQL语句为: mysql> use xxx Database changed mysql> show variables like 'character_set_database'; +------------------------+--------+ | Variable_name | Value | +--------------
-
如何更改MySQL数据库的编码为utf8mb4
utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符. 采用utf8mb4编码的好处是:存储与获取数据的时候,不用再考虑表情字符的编码与解码问题. 更改数据库的编码为utf8mb4: 1. MySQL的版本 utf8mb4的最低mysql版本支持版本为5.5.3+,若不是,请升级到较新版本. 2. MySQL驱动 5.1.34可用,最低不能低于5.1.13 SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%
-
更改MySQL数据库的编码为utf8mb4问题
目录 1. MySQL的版本 2. MySQL驱动 3. 修改MySQL配置文件 4. 重启数据库,检查变量 5. 数据库连接的配置 6. 将数据库和已经建好的表也转换成utf8mb4 utf-8编码可能1个字节.2个字节.3个字节.4个字节的字符,但是MySQL的utf8编码只支持最多3字节的数据,也就是说mysql最开始的时候,对utf-8的支持是不完整的.而emoji表情字符是4个字节的字符. 如果直接往采用utf-8编码的数据库中插入表情数据 java程序中将报SQL异常: java.s
-
更改Mysql数据库存储位置的具体步骤
一.首先把mysql的服务先停掉. 二.更改MySQL配置文件My.ini中的数据库存储主路径 打开MySQL默认的安装文件夹C:\Program Files\MySQL\MySQL Server 5.1中的my.ini文件,点击记事本顶部的"编辑","查找",在查找内容中输入datadir后并点击"查找下一个"转到"Path to the database root数据库存储主路径"参数设置,找到datadir="
-
Ubuntu中更改MySQL数据库文件目录的方法
前言 公司的Ubuntu服务器对于各个系统的目录是放在不同的逻辑分区上的,比如存放mysql数据库文件的默认目录/var/lib/mysql所在的系统目录/var/单独在一个分区上,但是这个分区的大小是固定的,不足以存放整个数据库文件.但是另一个系统目录/data大小却达到T级,大大满足了需求,因此有了更改数据库文件目录的需求. 以下是我参考网络上一些文章进行尝试的过程: 1.停止数据库服务: 使用/etc/init.d/mysql stop 或者 stop mysql 2. 在目标位置(/da
-
CentOS Linux更改MySQL数据库目录位置具体操作
引言: 由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录. 下面我整理一下把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql目录的具体操作: 1.首先我们需要关闭MySQL,命令如下: service mysqld stop 2.然后是转移数据,为了安全期间,我们采用复制命令cp,先找到mysql的原目录 cd /var/lib ls 运行这个命令之后就会看到mysql的目录了,然后
-
让Java后台MySQL数据库能够支持emoji表情的方法
前言 公司最近在开发中遇到一个问题,在弄帖子的发布与回复问题,然后再iOS端和Android端添加表情的时候都会出错 Caused by: java.sql.SQLException: Incorrect string value: '\xF6\x9D\x98\x84' for column 'comment' at row 1 提示表情有问题,然后赶紧查资料. 首先数据库编码为UTF-8,字段content设置为text(CHARSET=utf8 COLLATE=utf8_unicode_ci
-
关于MySQL实现指定编码遇到的坑
写在前面 环境:MySQL5.7+,MySQL数据库字符编码实现为utf8,表也为utf8 场景:微信授权获取用户信息(包括昵称)并保存到数据库,有的用户成功了,少数用户却失败了 那么为什么会失败呢? 贴上报错日志 Incorrect string value: '\xF0\x9F\x98\x98\xF0\x9F...' for column 'nickname' at row 1 是因为失败的用户微信昵称中带有emoji符号导致的 剖析: MySQL支持多种字符编码集,如UTF-8.GB231
-
mysql数据库远程访问设置方法
1.改表法. 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' where
-
MySQL数据库远程访问权限如何打开(两种方法)
下载GPL版本安装 MySQL Community Edition(GPL) Community (GPL) Downloads » 在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库.缺省状态下,mysql的用户没有远程访问的权限. 下面介绍两种方法,解决这一问题. 1.改表法 可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "
随机推荐
- Android应用开发SharedPreferences存储数据的使用方法
- ASP漏洞全接触-高级篇
- java WebSocket的实现以及Spring WebSocket示例代码
- javascript拖拽上传类库DropzoneJS使用方法
- Python判断字符串与大小写转换
- ASP codepage 页面编码使用说明
- 基于JavaScript实现右键菜单和拖拽功能
- Android微信支付获取二次签名Sign的方法
- 移动端翻页插件dropload.js(支持Zepto和jQuery)
- oracle中exp,imp的使用详解
- javascript中创建对象的三种常用方法
- vs 不显示行号的操作方法
- CentOS 6.5上编译安装Apache服务器的方法(最小化安装)
- Android使用GridView实现日历的方法
- Python 装饰器使用详解
- Python如何实现转换URL详解
- 详解Vue-cli中的静态资源管理(src/assets和static/的区别)
- 微信小程序生成二维码的示例代码
- .net WINFORM的GDI双缓冲的实现方法
- c#禁止通过拖动,双击标题栏改变窗体大小的方法