MySQL:cmd创建表报错,在工具里面敲正常

MySQL版本5.5
工具:cmd ; SQLyog

现象

刚开始复习mysql,练习创建表,结果在cmd里面敲了几遍都报错,如图:

一开始我以为是因为中文的原因,一个中文占2个字节嘛;但是一想这是char字符,而且mysql一个字符就是一个汉字;应该不是这个原因。

换成sqlyog,还是一样的代码。结果创建成功:

原因

经过大佬提示,可能是编码原因。我一想SQLyog刚开始安装的时候,确定选择的编码是utf8,所以这个没毛病。
然后再去看cmd;

好家伙,果然是编码方式的问题。cmd是gbk编码。

解决

把cmd改成utf8即可。

临时性修改编码

使用 chcp 命令,例如 chcp 65001 ,这回将当前代码页变为 utf-8编码,不过这种方式在关闭 cmd 之后会自动失效。

常用的编码及对应的码值(10进制):

十进制码值 对应编码名称
950 繁体中文
65001 UTF-8代码页
936 简体中文默认的GBK
437 MS-DOS 美国英语

补充:utf8一个汉字占3个字节;gbk是2个字节

  1. ASCII字符集 :基本的ASCII字符集,使用7位(bits)表示一个字符,共128字符。ASCII的扩展字符集使用8位(bits)表示一个字符,共256字符,方便支持欧洲常用字符。
  2. ISO-8859-1字符集:拉丁码表,别名Latin-1,SO-8859-1使用单字节编码,兼容ASCII编码。
  3. UTF-8编码:1. 128个US-ASCII字符,只需一个字节编码。
    2. 拉丁文等字符,需要二个字节编码。
    3. 大部分常用字(含中文),使用三个字节编码。
    4. 其他极少使用的Unicode辅助字符,使用四字节编码。
  4. gbk:常用的中文码表。

永久性修改参考

posted @ 2022-03-07 11:21  CodeWater  阅读(86)  评论(0编辑  收藏  举报