设为首页 收藏本站
查看: 639|回复: 0

[经验分享] MySQL编码问题集合

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-12-30 09:21:52 | 显示全部楼层 |阅读模式
1.以root用户的身份登录,查看编码设置

mysql> SHOW VARIABLES LIKE 'character%';



+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+



character_set_client为客户端编码方式

character_set_connection为建立的连接使用的编码

character_set_database数据库的编码



character_set_results结果集的编码;

character_set_server数据库服务器的编码;

只要保证以上四个采用的编码方式一样,就不会出现乱码问题



另外,另一个查看数据库编码的命令:

mysql> SHOW VARIABLES LIKE 'collation_%';


+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+





2.以root用户的身份登录,设置编码:

mysql>

  set character_set_client = utf8;
  set character_set_server = utf8;
  set character_set_connection = utf8;
  set character_set_database = utf8;
  set character_set_results = utf8;
  set collation_connection = utf8_general_ci;
  set collation_database = utf8_general_ci;
  set collation_server = utf8_general_ci;
以上命令有部分只对当前登录有效。



3.以root用户的身份登录,新建数据库,导入sql的情况:

  3.1 导入sql脚本文件前,先确保该脚本文件及内容格式为UTF-8编码格式,
  3.2 mysql> use [库名] 进入相应数据库
  3.3 mysql> set names utf8;
  3.4 mysql> source [脚本文件URI];



4.以root用户的身份登录,修改数据库、表、字段的编码:

  mysql> alter database [database name] character set utf8;

  mysql> alter table [table name] character set utf8;

  mysql> alter table [table name] modify [column name, for example: user_name] [type, for example: varchar(50)] CHARACTER SET utf8;



5.写数据库链接程序的时候,为DB_URL添加参数:

  例如JDBC,final String DB_URL = "jdbc:mysql://127.0.1:3306/[database_name]?useUnicode=true&characterEncoding=utf-8";



6.修改MySQL配置文件参数

  在windows7中,my.ini配置文件位于C:\ProgramData\MySQL\MySQL Server 5.6

  在Linux下一般是 /etc/my.cnf

  --在 [mysqld] 标签下加上三行
    default-character-set = utf8
    character_set_server = utf8

    init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)

    lower_case_table_names = 1 //表名不区分大小写(此与编码无关)

  --在 [mysql] 标签下加上一行
    default-character-set = utf8

  --在 [mysql.server]标签下加上一行
    default-character-set = utf8

  --在 [mysqld_safe]标签下加上一行
    default-character-set = utf8

  --在 [client]标签下加上一行
    default-character-set = utf8


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-12710-1-1.html 上篇帖子: Mysql数据库优化 下篇帖子: mysql(或者mariadb)连接工具HeidiSQL
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表