Mysql-5.7.19配置(报错1055)以及常见问题(无法输入中文1366)
本文的前提是已经安装好mysql-5.7.19和Navicat for MySQL这两个东东,具体前面怎么安装见这两个网址。
http://www.jb51.net/article/119369.htm
http://www.cnblogs.com/neuedu/p/5876874.html
然后就是正文了。。。
对于1055报错,我去查阅了很多人的解决方案,基本都是出现在5.7这个版本才会出现的问题,可能数据库在某个地方debug了一个漏洞吧。
基本都是改my.ini(Windows系统下)那个文件,但是发现根本没有my.ini那个文件,只有default-my.ini类似这个文件吧,先要把这个文件改名为my.ini。然后改sql_mode这一行,一般是删除这个ONLY_FULL_GROUP_BY这一个东东,改成如下:
[mysqld]
sql_mode=”STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
如果没有,直接加上,但是还是会出现报错1055的问题
首先在Navicat或者直接管理员身份运行cmd,一直cd到bin文件进入数据库后,运行如下命令:
show VARIABLES like ‘sql_mode’;
运行后发现还是配置没有变化,就运行这一句(每次进入数据库都运行):
set global sql_mode=’STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,
NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;
基本以上1055问题就解决了
1366问题是汉语输入问题
首先运行这一句
show VARIABLES like ‘%char%’;
可以看见character_set_database和character_set_server的值,要么是utf8(其实utf8是支持绝大多数中文字体但是极少数中文字体不支持),GBK(支持所有中文字体,所以对于1366很多哥们的解决方法是改my.ini文件,改成如下:
[client]
default-character-set=utf8或者GBK
[mysqld]
character_set_server=utf8或者GBK
,但是还是会有bug),所以自己真正运行的时候要
set default-character-set=utf8;#或者gbk
set character_set_server=utf8;#或者gbk
有时候你遇到的是latin1(latin1不支持欧元符号)就更改成如上,因为latin1是mysql的默认编码,是只支持单字符不支持中文的。还有每次用客户端的时候都要set一下
(字符集会另外单独起一篇文章)
set names ‘utf8’;
这样保险。
然后你会发现这样并没有完,还是有bug
这里你会发现全文的东东都改了,但是表里面的字符集没有改,这里改成utf8就可以了先
SHOW CREATE DATABASE db_name; #查看数据库编码
SHOW CREATE TABLE db_name; #查看数据库编码
SHOW FULL COLUMNS FROM tbl_name; #查看字段编码
如:
ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;
这样就基本解决了,总之我是这样的
进入先做这一步
set global sql_mode=’STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,
NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’;
set names ‘utf8’;
show variables like ‘%char%’;
set character_set_database=utf8;
set character_set_server=utf8;
show variables like ‘%char%’;
做完后就大吉大利啦!期望你遇见这些问题也能棒棒哒解决