MySQL数据库在WIN系统CMD下的编码问题

MySQL数据库在WIN系统CMD下的编码问题

1. 查看MySQL数据库编码
  * SHOW VARIABLES LIKE ‘char%‘;

2. 编码解释
  * character_set_client:MySQL使用该编码来解读客户端发送过来的数据,例如该编码为UTF8,那么如果客户端发送过来的数据不是UTF8,那么就会出现乱码
  * character_set_results:MySQL会把数据转换成该编码后,再发送给客户端,例如该编码为UTF8,那么如果客户端不使用UTF8来解读,那么就会出现乱码
  其它编码只要支持中文即可,也就是说不能使用latin1

3. 控制台乱码问题
  * 插入或修改时出现乱码:
    > 这时因为cmd下默认使用GBK,而character_set_client不是GBK的原因。我们只需让这两个编码相同即可。
    > 因为修改cmd的编码不方便,所以我们去设置character_set_client为GBK即可。
  * 查询出的数据为乱码:
    > 这是因为character_set_results不是GBK,而cmd默认使用GBK的原因。我们只需让这两个编码相同即可。
    > 因为修改cmd的编码不方便,所以我们去设置character_set_results为GBK即可。
  * 设置变量的语句:
    > set character_set_client=gbk;
    > set character_set_results=gbk;
  注意:设置变量只对当前连接有效,当退出窗口后,再次登录mysql,还需要再次设置变量。

4. 指定默认编码(一劳永逸解决办法)
  在my.ini(MySQL安装目录里)中设置character-set-server=utf8即可,它可以修改三个变量:client、results、connection。
注:

  当我们用可视化工具操作数据库时(比如SQLyog),工具会自动帮我们解决编码问题,不用我们关注,即数据库的编码问题只在WINDOWS的CMD控制台中才存在!

    

 

 

时间: 2024-10-20 08:42:48

MySQL数据库在WIN系统CMD下的编码问题的相关文章

mysql数据库在Linux和windows下免安装实现以及框架开发碰到的问题

2017年7月23号下午5:20分,上周我根据自己的实际情况,总结了mysql数据库在windows系统下和linux系统下免安装版本的实现,以及在项目开发中遇到的数据库报错,今天整理出来,以供日后学习之用,同时,我给自己制定了一个计划,每周日会将自己本周碰到的一些问题记录下来,在周日整理出来发布在博客上面,2017年7月23号是我的第一周,我要坚持10年,卢小朋说到做到,加油! 一.linux安装说明 说明 mysql-5.7.14-linux.zip部署包支持在CentOS 6.x/7.x

pydev-python 链接mysql数据库(mac系统)

1.首先实现命令行下可运行mysql 这一部分网上有一位大神说的已经很清楚了,直接引用过来,多谢哈.引用:http://www.lihui.info/mac-pydev-mysqldb/ 在mac os上安装MySQLdb,遇到了很多问题,总结一下: 首先,如果用sudo easy_install mysql-python命令安装,基本上不会成功的,原因有两个:一是找不到mysql_config位置,二是现在基本上安装的是64位的系统和64位的python,和默认的32位安装包冲突. 所以只能自

Oracle、Db2、SqlServer、MySQL 数据库插入当前系统时间

做易买网项目,由于对数据库插入系统时间不了解,常常遇到的问题: 1.java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配.原因:由于获取系统时间类型不对,应为systdate 下面介绍Oracle.Db2.SqlServer.MySQL 数据库插入当前系统时间 例如有表table,table 中有两个字段:name .makedate1.oracle:插入系统时间应为sysdate:insert into table (name,makedate) valu

第十三章.MySQL数据库与JDBC编程(下)

JDBC的典型用法: JDBC4.2常用接口和类简介: DriverManager:用于管理JDBC驱动的服务类,程序中使用该类的主要功能是获取Connection对象,该类包含如下方法: public static synchronized Connection getConnection(String url, String user, String  pass) throws SQLException:该方法获得url对应数据库的连接 Connection:代表数据库连接对象,每个Conn

修改MySQL数据库中表和表中字段的编码方式的方法

今天向MySQL数据库中的一张表添加含有中文的数据,可是老是出异常,检查程序并没有发现错误,无奈呀,后来重新检查这张表发现表的编码方式为latin1并且原想可以插入中文的字段的编码方式也是latin1,然后再次仔细观察控制台输出的异常,进一步确定是表和表中字段编码不当造成的,那就修改表和其中对应的字段呗,网上找了一会儿,你别说还真有,执行完sql脚本后果然可以存入中文了,尽管如此还是认为有必要总结一下,古人云:好记性不如烂笔头嘛,呵呵呵. 修改表的编码方式:ALTER TABLE `test`

MySQL数据库操作语句(cmd环境运行)

一.开启MySQL服务器 1,  通过windows提供的服务管理器来完成 windows键+R 输入: services.msc 2.在本地服务中打开其服务 3.在DOC命令行下 1 net stop mysql 2 net start mysql 4.利用bin目录的mysqld来开启 1 mysqld --defaults-file="G:/amp/mysql/my.ini" 二.客户端连接服务器 1 mysql -uroot -p 登录数据库之后 1 # 告诉MySQL服务器,

nginx mysql数据库5.7 系统重启报错

前言 生活生活奈若何??? 直接上干货!报错如图所示: InnoDB: To fix the problem and start mysqld: InnoDB: 1) If there is a permission problem in the file and mysqld cannot InnoDB: open the file, you should modify the permissions. InnoDB: 2) If the table is not needed, or you

利用win系统程序进行base64编码(内网渗透必备哟)

certutil 对demo.7z进行base64编码 将编码的程序还原

window下用主机名登录MySQL数据库出现报错解决方案

分享一个工作中的小案例:windows主机上用SQLyog使用主机名登录MySQL数据库(Linux系统上搭建),结果报错,因为经常在windows上使用主机名互相访问资源.远程登录等.以为Linux上应该也可以,所以就开始研究.通过查找资料及多方帮助终于解决并搞清楚原因.希望大家不要重蹈覆辙. 故障:在windows服务器上使用主机名登录MySQL出现以下报错,主机名"test-aa-shop1" ping不通,但是对应的IP可以ping通. 故障分析:windows之间可以用主机名