DOS命令创建数据库的中文乱码解决方案

来源:互联网 发布:网速监控软件 编辑:程序博客网 时间:2024/05/23 00:07

今天简单学习了下使用dos命令创建数据库,都是一些基础知识。简单讲讲今天的辛酸史。
使用命令创建了一个很简单学生管理数据库

    mysql> create database data;    mysql> use data;    mysql> create table stu (    ->      id int auto_increment primary key,    ->      name varchar(10) not null,    ->      sex varchar(1) not null,    ->     score decimal(3,1),    ->     `add` varchar(30) default '地址不详'    ->   );

看似多么正常的代码,从语法上根本没有问题的,然而给我报了个错误,

ERROR 1067 (42000): Invalid default value for 'add'

我也是很无奈的,既然这样我寻思偷个懒,就不用add这一行了,直接删除了,当然也成功的创建了表,然而噩耗才刚开始,名字性别总要用汉语吧,我也老实的输入了数据,

insert into stu values(1,'李白','男',66);

结果成了直接不出字,找问题吧就,后来有个兄台说数据库的编译应该是gbk,好吧,我就改成gbk吧,

set character_set_database=gbk;

好了,终于出东西了可惜是?号乱码,这还算好些了,再改吧,,,不多说,直奔主题,database根本不用改!!!

 set character_set_client=gbk; set character_set_connection=gbk;set character_set_results=gbk;

改成这样,或许你不知道如何查看编译属性,简单说下,输入

show variables like  'char_%';

就可以查看,结果也出现了汉字,就是排版有点问题
,把完整的再写一次,希望可以帮助你!

  mysql> create database data;    mysql> use data;    mysql> set character_set_client=gbk;    mysql> set character_set_connection=gbk;    mysql> set character_set_results=gbk;    mysql> create table stu (    ->      id int auto_increment primary key,    ->      name varchar(10) not null,    ->      sex varchar(1) not null,    ->     score decimal(3,1),    ->     `add` varchar(30) default '地址不详'    ->   ); mysql> insert into stu values(1,'李白','男',66,'北京');
阅读全文
0 0
原创粉丝点击