mysql编码修改

摘要:
character_set_results数据库给客户端返回时使用的编码格式,如果没有指明,使用服务器默认的编码格式。character_set_server服务器安装时指定的默认编码格式,这个变量建议由系统自己管理,不要人为定义。character_set_system数据库系统使用的编码格式,这个值一直是utf8,不需要设置,它是为存储系统元数据的编码格式。③新增时,修改表字段时,若未明确指定字符集,则采用当前表所采用的字符集。

一、查看character_set 变量

show variables like '%character%';

二、对8个变量解释(mysql5.7,不同版本存在有的变量名没有)

变量名 解释

  • character_set_client 主要用来设置客户端使用的字符集。
  • character_set_connection 主要用来设置连接数据库时的字符集,如果程序中没有指明连接数据库使用的字符集类型则按照这个字符集设置。
  • character_set_database 主要用来设置默认创建数据库的编码格式,如果在创建数据库时没有设置编码格式,就按照这个格式设置。
  • character_set_filesystem 文件系统的编码格式,把操作系统上的文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的。
  • character_set_results 数据库给客户端返回时使用的编码格式,如果没有指明,使用服务器默认的编码格式。
  • character_set_server 服务器安装时指定的默认编码格式,这个变量建议由系统自己管理,不要人为定义。
  • character_set_system 数据库系统使用的编码格式,这个值一直是utf8,不需要设置,它是为存储系统元数据的编码格式。
  • character_sets_dir 这个变量是字符集安装的目录。
    以上这些参数如何起作用:
  1. 库、表、列字符集的由来

①建库时,若未明确指定字符集,则采用character_set_server指定的字符集。
②建表时,若未明确指定字符集,则采用当前库所采用的字符集。
③新增时,修改表字段时,若未明确指定字符集,则采用当前表所采用的字符集。

  1. 更新、查询涉及到得字符集变量

更新流程字符集转换过程:character_set_client-->character_set_connection-->表字符集。
查询流程字符集转换过程:表字符集-->character_set_result

  1. character_set_database
    当前默认数据库的字符集,比如执行use xxx后,当前数据库变为xxx,若xxx的字符集为utf8,那么此变量值就变为utf8(供系统设置,无需人工设置)。

三、更改上述字符集

set character_set_XXX = “utf8”; --xxx:是变量名,选择自己需要修改的补充。

四、注意

如果使用windowns服务中启动,应为指定了默认启动配置,用sql修改可能会失效(可能)
mysql编码修改第1张
推荐修改my.ini(注意要保存成ANSI编码)

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

其它修改参考:

[mysqld] 
character-set-client-handshake = FALSE 
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci 
init_connect='SET NAMES utf8mb4'
sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
default_storage_engine=innodb
innodb_buffer_pool_size=1000M
innodb_log_file_size=50M
innodb_file_format=barracuda
innodb_file_per_table=true
innodb_large_prefix=true
max_allowed_packet=500M
# 设置mysql的安装目录
basedir=D:mysql-5.6.40-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:mysql-5.6.40-winx64data
# 允许最大连接数
max_connections=200
 
[mysql]
default-character-set = utf8mb4
 
[client]
default-character-set = utf8mb4

免责声明:文章转载自《mysql编码修改》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇创建oracle数据库时,出现ORA-00922: 选项缺失或无效创建TIff虚拟打印机下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

本地计算机上的MySQL服务启动后停止。某些服务在未由其他服务或程序使用时将自动

读者请注意一下!!!! 本文为刚自学MySQL时,个人遇到的问题,方法是经过网络查询取得的,想作为自己成长的笔记。刚安装的MySQL数据库,里面基本没有数据的,所以下面有删除的操作,仅仅为了解决自己在安装操作不谨慎带来的麻烦。因具体情况不同,不建议所有人使用。 重新安装MySQL数据库,由于安装的时候马虎,一路next(事实上,某些地方需要严格的配置,我忘...

mysql如何解除死锁状态

第一种: 前提条件:找到执行非常慢的sql; 如何找呢:还原客户遇到的问题场景,从控制台找到所执行的sql,一句句的去执行,直到找到执行非常慢的sql 1.查询是否锁表 show OPEN TABLES where In_use > 0; 2.查询进程(如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程) show proces...

mySql 远程连接(is not allowed to connect to this MySQL server)

如果你想连接你的mysql的时候发生这个错误: ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server 1 首先检查电脑的防火墙是否关闭。 2 通过mysql命令来授权,其他电脑的访问权限。 方法一:授权法(推荐)。例如,你想myuser使用mypasswo...

慢查询日志(mysql)

参考 针对mysql的优化,mysql提供了慢查询日志的支持。mysql的慢查询是mysql提供的一种日志记录,它用来记录mysql中响应时间超过阀值的sql语句,某个sql运行时间如果超过设置的阀值(long_query_time),就会被记录到慢查询日志中。阀值默认值是10s,默认情况下,mysql数据库并不会启动慢查询日志,需要手动来设置这个参数(s...

Flask-SQLAlchemy操作

Flask-SQLAlchemy SQLAlchemy 一. 介绍 SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 pip3 install sqlalchemy 组成部分: Engine,框架...

Mysql:如果数据存在则更新,不存在则插入

mysql语法支持如果数据存在则更新,不存在则插入,首先判断数据存在还是不存在的那个字段要设置成unique索引, 例如表tb_addrbook如下: 索引: 语句1:不存在插入 INSERT INTO tb_addrbook(num,name,mobile) VALUE('1001','小李','13112345678') ON DUPLICATE...