如何设置mysql数据库为utf-8编码

如何设置mysql数据库为utf-8编码,第1张

(1)关闭mysql服务

[plain] view plaincopy

service mysql stop

(2)修改 /etc/mysql/mycnf  (默认的安装路径)

[plain] view plaincopy

vim /etc/mysql/mycnf

打开mycnf后,在文件内的[mysqld]下增加如下两行设置:

[plain] view plaincopy

character_set_server=utf8

init_connect='SET NAMES utf8'

(具体如截图所示):

保存退出。

(3) 重新启动mysql服务

[plain] view plaincopy

service mysql start

至此,完成修改默认编码,登陆mysql后重新使用show variable like '%character%'获得的输出效果如下:

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

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

当时的需求背景是:

部分系统使用的字符集是 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)字段的索引会有问题,因为2554大于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/testdbsql

后导出数据: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/testdatasql

4 修改建表语句

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

5 导入数据

先导入表结构:mysql -u -p testdb < /backup/testdbsql

后导入数据:mysql -u -p testdb < /backup/testdatasql

6 建用户

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

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

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

由于mysql默认的字符集编码为latin ,而我们一般使用的是gbk 或者 gb2312编码

所以不改过来容易造成乱码

我用的是mysql 50 安装程序安装的 ,安装目录在C:\Program Files\MySQL\MySQL Server 50

请到这个目录下面找到 my。ini文件

修改default-character-set=latin1 为 default-character-set=gbk

记住有两个地方啊 都要改

最重要的一点就是修改文件前,先停止mysql服务 ,等修改后再重新启动

使用dos命令 :net stop mysql 来停止服务 net start mysql 来启动

然后在执行你的mysql脚本 ,一切ok! 这里你可以用discuz的sql做为例子运行!

用dbvis 工具连接mysql 数据库 怎么设置编码格式

1去mysql下找到文件myini配置文件用记事本打开,找到 default-character-set=latin1,character-set-server=latin1;将latin1改为utf-8或者gbk,修改完之后保存。

2我的电脑右击 “管理”进入之后选择“服务和应用程序”下的“服务”,找到“mysql”之后右击选择“重新启动”。

在老版本的MySQL 322中,MySQL的单表限大小为4GB,当时的MySQL的存储引擎还是ISAM存储引擎。但是,当出现MyISAM存储引擎之后,也就是从MySQL 323开始,MySQL单表最大限制就已经扩大到了64PB了(官方文档显示)。也就是说,从目前的技术环境来看,MySQL数据库的MyISAM存储 引擎单表大小限制已经不是有MySQL数据库本身来决定,而是由所在主机的OS上面的文件系统来决定了。

而MySQL另外一个最流行的存储引擎之一Innodb存储数据的策略是分为两种的,一种是共享表空间存储方式,还有一种是独享表空间存储方式。

当使用共享表空间存储方式的时候,Innodb的所有数据保存在一个单独的表空间里面,而这个表空间可以由很多个文件组成,一个表可以跨多个文件存在,所 以其大小限制不再是文件大小的限制,而是其自身的限制。从Innodb的官方文档中可以看到,其表空间的最大限制为64TB,也就是说,Innodb的单 表限制基本上也在64TB左右了,当然这个大小是包括这个表的所有索引等其他相关数据。

而当使用独享表空间来存放Innodb的表的时候,每个表的数据以一个单独的文件来存放,这个时候的单表限制,又变成文件系统的大小限制了。

1、首先在linux终端窗口处输入mysql -u root -p 命令,然后输入root帐户密码连接sql数据库。

2、连接上数据库后,执行命令show variables like 'character%';查看数据库的编码格式。

3、然后退出数据库,修改数据库的配置文件mycnf文件,此文件如果通过rpm安装一般在/etc/目录下。

4、修改完成后,保存配置的修改,然后执行命令service mysqld restart。重新启动数据库。

5、然后待数据库重启完成后,重新连接数据库,执行命令show variables like 'character%'; 查看更改后的编码格式,可以看到已经修改为utf8编码。

以上就是关于如何设置mysql数据库为utf-8编码全部的内容,包括:如何设置mysql数据库为utf-8编码、如何mysql 5.7的编码设置成utf8mb4、如何设置Mysql数据库默认的字符集编码为GBK等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9407286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存