成都创新互联网站制作重庆分公司

怎么设置mysql的解码 Mysql怎么设置中文

如何mysql 5.7的编码设置成utf8mb4

整理 MySQL 8.0 文档时发现一个变更:

创新互联公司是专业的青云谱网站建设公司,青云谱接单;提供成都网站制作、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行青云谱网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

默认字符集由 latin1 变为 utf8mb4。想起以前整理过字符集转换文档,升级到 MySQL 8.0 后大概率会有字符集转换的需求,在此正好分享一下。

当时的需求背景是:

部分系统使用的字符集是 utf8,但 utf8 最多只能存 3 字节长度的字符,不能存放 4 字节的生僻字或者表情符号,因此打算迁移到 utf8mb4。

迁移方案一1. 准备新的数据库实例,修改以下参数:[mysqld]## Character Settingsinit_connect='SET NAMES utf8mb4'#连接建立时执行设置的语句,对super权限用户无效character-set-server = utf8mb4collation-server = utf8mb4_general_ci#设置服务端校验规则,如果字符串需要区分大小写,设置为utf8mb4_binskip-character-set-client-handshake#忽略应用连接自己设置的字符编码,保持与全局设置一致## Innodb Settingsinnodb_file_format = Barracudainnodb_file_format_max = Barracudainnodb_file_per_table = 1innodb_large_prefix = ON#允许索引的最大字节数为3072(不开启则最大为767字节,对于类似varchar(255)字段的索引会有问题,因为255*4大于767)

2. 停止应用,观察,确认不再有数据写入

可通过 show master status 观察 GTID 或者 binlog position,没有变化则没有写入。

3. 导出数据

先导出表结构:mysqldump -u -p --no-data --default-character-set=utf8mb4 --single-transaction --set-gtid-purged=OFF --databases testdb /backup/testdb.sql

后导出数据:mysqldump -u -p --no-create-info --master-data=2 --flush-logs --routines --events --triggers --default-character-set=utf8mb4 --single-transaction --set-gtid-purged=OFF --database testdb /backup/testdata.sql

4. 修改建表语句

修改导出的表结构文件,将表、列定义中的 utf8 改为 utf8mb4

5. 导入数据

先导入表结构:mysql -u -p testdb /backup/testdb.sql

后导入数据:mysql -u -p testdb /backup/testdata.sql

6. 建用户

查出旧环境的数据库用户,在新数据库中创建

7. 修改新数据库端口,启动应用进行测试

关闭旧数据库,修改新数据库端口重启,启动应用

安装mysql 怎样设置编码方式

检查当前数据库编码。使用语句:

show variables like ‘%character%’;

show variables like’%collation%’;

如果不是以上情况,需要将mysql编码设置为utf-8。具体步骤如下:

如果安装mysql时安装了“MySql Sever Instance Configuration Wizard”,则只需要启动该程序进行相应设置即可。如下面截图中所描述,需要将默认编码设置为utf8

如果没有该程序,需要手动修改mysql编码。

1、 编辑MySql的配置文件

MySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini,可以搜索,Linux下一般是 /etc/my.cnf

--在 [mysqld] 标签下加上以下内容:

default-character-set = utf8

character_set_server = utf8

注意:如果此标签下已经存在“default-character-set=GBK”类似的内容,只需修改即可。

--在 [mysql] 标签下加上一行

default-character-set = utf8

--在 [mysql.server]标签下加上一行

default-character-set = utf8

--在 [mysqld_safe]标签下加上一行

default-character-set = utf8

--在 [client]标签下加上一行

default-character-set = utf8

2、 重新启动MySql服务

Windows可在服务管理器中操作,也可使用命令行:

net stop mysql 回车

net start mysql 回车

服务名可能不一定为mysql,请按自己的设置

Linux下面可是用 service mysql restart

如果出现启动失败,请检查配置文件有没有设置错误

3、 查看设置结果

登录MySql命令行客户端:打开命令行

mysql –uroot –p 回车

输入密码

进入mysql后 执行 :show variables like "% character %";

另外:

建立数据库时可以使用以下命令:

create database app_relation character set utf8;

use app_relation;

source app_relation.sql;

修改数据库编码的命令为:

alter database app_relation character set utf8;

如何设置Mysql数据库默认的字符集编码为GBK

1、更改服务器的编码方式,在终端输入以下命令:

mysqld

--character-set-server=gbk

--collation-server=gbk_chinese_ci;

2、更改某个数据库的编码方式

mysql

-u

root

-p

alter

database

character

set

gbk

collate

gbk_chinese_ci;

3、在创建数据库时指定编码:

mysql

-u

root

-p

create

database

db_name

character

set

gbk

collate

gbk_chinese_ci;

4、更改某个表的编码方式

mysql

-u

root

-p

db_name

alter

table

table_name

convert

to

charachter

set

gbk

collate

gbk_chinese_ci;

5、在创建表时指定编码方式

mysql

-u

root

-p

db_name

create

table

table_name

(....)

character

set

gbk

collate

gbk_chinese_ci;

6、更改某行的编码方式

mysql

-u

root

-p

db_name

alter

table

table_name

modify

column_name

varchar(20)

character

set

gbk

collate

gbk_chinese_ci;

7、在创建列时指定编码方式:

/prepre

name="code"

class="sql"mysql

-u

root

-p

db_name

create

table

table_name

(...,

col1

varchar(20)

character

set

gbk

collate

gbk_chinese_ci,

...)

character

set

utf8

collate

utf8_general_ci;

linux怎么设置mysql 的编码格式

安装完的MySQL的默认字符集为

latin1

,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件;由于linux下MySQL的默认安装目录分布在不同的文件下;不像windows一样放在同一目录下,只需修改其中的my.ini文件,重起后就生效了;所以先来看看linux下MySQL的数据库文件、配置文件和命令文件分别在不同的目录

1、数据库目录,其所创建的数据库文件都在该目录下

/var/lib/mysql/

2、配置文件

(mysql.server命令及配置文件所在地)

/usr/share/mysql

3、相关命令(如mysql

mysqladmin等)

/usr/bin

4、启动脚本(如mysql启动命令)

/etc/rc.d/init.d/

查看默认字符集

#mysql

-u

root

-

p

#(输入密码)


标题名称:怎么设置mysql的解码 Mysql怎么设置中文
本文路径:http://cxhlcq.com/article/hisedp.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部