[问题解决]MySQL版本问题的解决

一、读取中文乱码的问题

明明已经设置了所有编码为utf-8了,可是还是乱码?可能是版本问题!

可以用show variables like 'char%' 来查询。

mysql> show variables like 'char%';

+--------------------------+----------------
| Variable_name            | Value
+--------------------------+----------------
| character_set_client     | gbk
| character_set_connection | gbk
| character_set_database   | latin1
| character_set_filesystem | binary
| character_set_results    | gbk
| character_set_server     | latin1
| character_set_system     | utf8
| character_sets_dir       | C:/Program File
+--------------------------+----------------
8 rows in set (0.00 sec) 

然后再程序中读取的时候中文总是乱码。网上各种方法试用过了。

mysql_init(&m_connMysql);
mysql_set_character_set(&m_connMysql, "gbk");    //gbk  utf8

原因:

 1.server本身设定问题,例如还停留在latin1版本;
 2.table的语系设定问题(包含character与collation);
 3.客户端程式(例如php,java)的连线语系设定问题;

 

二、char与varchar的区别和使用场合

在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定的长度,而varchar属于可变长的字符类型。

myisam 存储引擎 建议使用固定长度,数据列代替可变长度的数据列。
memory存储引擎 目前都使用固定数据行存储,因此无论使用char varchar列都没关系,
innodb 存储引擎 建意使用varchar 类型

三、mysql下如何执行sql脚本

连接mysql:
在命令行下输入 mysql -h localhost -u root -p回车,然后输入密码即可;或直接运行mysql自带的连接工具,然后输入密码即可.

1.编写sql脚本,假设内容如下:

create database testsql;
use testsql;
create table sql (name varchar(20));

 保存脚本文件,假设我把它保存在F盘的data目录下,于是该文件的路径为:F:\data\sql.sql
2.执行sql脚本,可以有2种方法:
 第一种方法:

在命令行下(未连接数据库)输入 mysql -h localhost -u root -p123456 < F:\data\sql.sql (路径不加引号) 回车即可.

 第二种方法:

在命令行下(已连接数据库,此时的提示符为 mysql> ),输入 source F:\data\sql.sql (注意路径不用加引号的) 
或者 \.F:\data\sql.sql (注意路径不用加引号的) 回车即可。

四、MYSQL创建utf-8格式的数据库

GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;  
UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

 

 

转载于:https://my.oschina.net/gain/blog/1591529

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值