Win7 32位MySQL5.6免安装配置编码为utf8——解决Java插入MySQL乱码问题
2016-01-18 00:09
926 查看
交代背景:
刚开始使用mysql时,使用的免安装版,虽然需要配置,但相对来说要简单的很多。参考资料为:MySQL 5.6 for Windows 解压缩版配置安装。
后来在用Java往MySQL中插入含有中文的字符时,用Navicat for MySQL来查看,中文总是乱码为??。多方面查找博客和资料,才发现之前的安装其实是有缺陷的,没有配置编码方式,如下图所示,就是参考资料1中的配置文件my.ini。
注:该篇博客中,使用了管理员身份去install mysql,但后期使用mysql service时比较麻烦,而且默认的字符编码是latin1,没法借用ini配置文件实现编码utf8,故不采用本篇博文。
这一次的安装和配置参考资料:mysql 5.6.14 win7 32位免安装版配置
1、移除mysql服务
如果你之前安装过mysql,就需要把之前的mysql服务移除。在dos窗口下的mysql下使用如下命令(1)和(2)都可以:
(1)mysqld-ne --remove 不过我使用该命令无效
(2)mysqld -remove (管理员)
2、下载mysql5.6,截止到2016-1-17,已经发布到5.7.10,下载地址http://dev.mysql.com/downloads/mysql/,如果想获得之前的各种版本http://downloads.mysql.com/archives/community/
3、解压到自定义目录,我的解压目录是F:\MySQL Server\mysql-5.6.16-win32
4、将该路径下的my-default.ini,改名为my.ini,
在[mysqld]部分添加basedir和数据路径datadir,以及字符集charater-set-server=utf8;如果mysql版本小于5.1则需用“default-character-set = utf8 ”
[client]部分添加上default-character-set = utf8
5、配置mysql的环境变量
配置环境变量的好处就是在打开dos窗口后可以直接输入相关命令,不用再cd到安装目录\bin下。
(1)计算机——右击,属性——高级系统设置——环境变量;
(2)在系统变量中,新建,变量名——mysql_home
变量值——F:\MySQL Server\mysql-5.6.16-win32
变量值为mysql解压目录
(3)找到path,在最前面输入%mysql_home%\bin; 一定加上分号
6、以管理员身份启动cmd.exe,(方法:在开始,运行栏,输入cmd,在上面出现cmd.exe,右击以管理员身份运行),(很重要,否则有权限问题,会报错:Install/Remove
of the Service Denied!)。
(1) 安装mysql service
进入mysql解压目录bin子目录下(在system32后直接输入),输入mysqld install MySQL --defaults-file="你的解压根目录\my.ini",
(一开始无MySQL服务,控制面板——管理工具——服务)
(2)启动mysql service
我在启动mysql service时出现了错误,命令为net start mysql
根据博客http://blog.csdn.net/fzhmoive/article/details/20042437中的提议,删除data目录下的ib_logfile0和ib_logfile1文件。结果再尝试未解决,通过查询mysql
1067发现是自己的ini配置文件有错误,文件夹写错了,修改后正常启动service。
(1)删除data目录下的ib_logfile0和ib_logfile1文件
(2)检查my.ini中的basedir和datadir的路径是否正确
(启动后有服务)
7、查看mysql的默认编码
在mysql下输入show variables like 'char%';
至此,数据库的默认编码就是utf8了,后面我自己将探索,利用java插入到mysql的中文字符是否会是乱码。
后记:
服务器的MySQL版本是5.0.X,而我的笔记本上的MySQL版本是5.6.16。将在我的电脑上运行无误的程序(***.jar)安装到服务器上,没有jdk版本问题,运行后在Navicat for MySQL上总是显示在14544行,而jar程序一直在运行且无误,剩余的都没有;当我升级MySQL版本为5.6.16后,奇迹发生了,那个数据库文件(程序运行停止了,不再插入数据),竟然显示完全,为60000+行。
唉,这么个小问题害我又是改代码,又是加入可视化异常显示,又是重新设计数据表,浪费了近两天时间,没想到升级MySQL版本后一下就解决了。
刚开始使用mysql时,使用的免安装版,虽然需要配置,但相对来说要简单的很多。参考资料为:MySQL 5.6 for Windows 解压缩版配置安装。
后来在用Java往MySQL中插入含有中文的字符时,用Navicat for MySQL来查看,中文总是乱码为??。多方面查找博客和资料,才发现之前的安装其实是有缺陷的,没有配置编码方式,如下图所示,就是参考资料1中的配置文件my.ini。
注:该篇博客中,使用了管理员身份去install mysql,但后期使用mysql service时比较麻烦,而且默认的字符编码是latin1,没法借用ini配置文件实现编码utf8,故不采用本篇博文。
这一次的安装和配置参考资料:mysql 5.6.14 win7 32位免安装版配置
1、移除mysql服务
如果你之前安装过mysql,就需要把之前的mysql服务移除。在dos窗口下的mysql下使用如下命令(1)和(2)都可以:
(1)mysqld-ne --remove 不过我使用该命令无效
(2)mysqld -remove (管理员)
2、下载mysql5.6,截止到2016-1-17,已经发布到5.7.10,下载地址http://dev.mysql.com/downloads/mysql/,如果想获得之前的各种版本http://downloads.mysql.com/archives/community/
3、解压到自定义目录,我的解压目录是F:\MySQL Server\mysql-5.6.16-win32
4、将该路径下的my-default.ini,改名为my.ini,
<span style="font-size:18px;">[mysqld] #绑定IPv4和3306端口 bind-address=0.0.0.0 port=3306 #设置mysql的安装目录,即解压路径 basedir=F:/MySQL Server/mysql-5.6.16-win32 #设置mysql数据库的数据存放目录 datadir=F:/MySQL Server/mysql-5.6.16-win32/data # 允许最大连接数 max_connections=200</span><span style="font-size: 14.44444465637207px;"> </span><span style="font-size:18px;">#设置字符集为utf8 character-set-server=utf8 [client] #设置客户端字符集 port=3306 default-character-set = utf8 </span>
在[mysqld]部分添加basedir和数据路径datadir,以及字符集charater-set-server=utf8;如果mysql版本小于5.1则需用“default-character-set = utf8 ”
[client]部分添加上default-character-set = utf8
5、配置mysql的环境变量
配置环境变量的好处就是在打开dos窗口后可以直接输入相关命令,不用再cd到安装目录\bin下。
(1)计算机——右击,属性——高级系统设置——环境变量;
(2)在系统变量中,新建,变量名——mysql_home
变量值——F:\MySQL Server\mysql-5.6.16-win32
变量值为mysql解压目录
(3)找到path,在最前面输入%mysql_home%\bin; 一定加上分号
%mysql_home%\bin;
6、以管理员身份启动cmd.exe,(方法:在开始,运行栏,输入cmd,在上面出现cmd.exe,右击以管理员身份运行),(很重要,否则有权限问题,会报错:Install/Remove
of the Service Denied!)。
(1) 安装mysql service
进入mysql解压目录bin子目录下(在system32后直接输入),输入mysqld install MySQL --defaults-file="你的解压根目录\my.ini",
mysqld install MySQL --defaults-file="F:\MySQL Server\mysql-5.6.16-win32\my.ini"会出现service successfully installed.
(一开始无MySQL服务,控制面板——管理工具——服务)
(2)启动mysql service
我在启动mysql service时出现了错误,命令为net start mysql
根据博客http://blog.csdn.net/fzhmoive/article/details/20042437中的提议,删除data目录下的ib_logfile0和ib_logfile1文件。结果再尝试未解决,通过查询mysql
1067发现是自己的ini配置文件有错误,文件夹写错了,修改后正常启动service。
(1)删除data目录下的ib_logfile0和ib_logfile1文件
(2)检查my.ini中的basedir和datadir的路径是否正确
(启动后有服务)
7、查看mysql的默认编码
在mysql下输入show variables like 'char%';
<span style="font-size:18px;">show variables like 'char%';</span>
至此,数据库的默认编码就是utf8了,后面我自己将探索,利用java插入到mysql的中文字符是否会是乱码。
后记:
服务器的MySQL版本是5.0.X,而我的笔记本上的MySQL版本是5.6.16。将在我的电脑上运行无误的程序(***.jar)安装到服务器上,没有jdk版本问题,运行后在Navicat for MySQL上总是显示在14544行,而jar程序一直在运行且无误,剩余的都没有;当我升级MySQL版本为5.6.16后,奇迹发生了,那个数据库文件(程序运行停止了,不再插入数据),竟然显示完全,为60000+行。
唉,这么个小问题害我又是改代码,又是加入可视化异常显示,又是重新设计数据表,浪费了近两天时间,没想到升级MySQL版本后一下就解决了。
相关文章推荐
- Java实现按汉语拼音的排序的有用代码片段分享
- java两个对象属性合并问题
- myeclipse如何修改Web项目名称
- Thinking in Java
- Java中的多线程
- JAVA调用聚合天气api接口示例
- java射自己,反射,中出,参数check
- SpringMVC使用Interceptor拦截器
- SAE部署Spring项目遇到的坑
- 1.Java 基础复习
- How to configure hot deploy in Eclipse
- Java常用的转义字符积累
- java学习书籍
- Java生成图片验证码
- springMVC和ZXing搭配生成二维码
- ajax传递json格式,spring MVC用对象接受
- java 注解
- C:\eclipseC:\eclipse
- Lucene学习总结之一:全文检索的基本原理
- lucene服务器solr