Chinaunix首页 | 论坛 | 博客
  • 博客访问: 267665
  • 博文数量: 88
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 840
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-20 21:13
文章分类

全部博文(88)

文章存档

2022年(1)

2017年(1)

2016年(2)

2015年(1)

2014年(83)

分类: Mysql/postgreSQL

2014-04-20 21:38:34


MySql是一个轻量级的数据库,它体积小,功能却一点都不少。相比于Oracle,MySql非常适合用来学习数据库。但是MySql的安装和使用中有一些比较常见的问题,其中一个就是中文乱码问题。本文采用utf-8作为默认编码字符集,主要是因为网页的默认编码一般就是utf-8,这也是个通用的标准。在这里,我给出详细的解决方案。


注意:mysql要严格区分32位和64位版

下面进入正题:

==============================================================================================

1.安装和配置MySql ()

shiMySQL5.0安装图解

打开下载的mysql安装文件mysql-5.0.27,双击解压缩,运行“setup.exe”,出现如下界面:




按“Next”继续

选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程



在“Developer Components(开发者部分)”上左键单击,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。在上面的“MySQL Server(mysql服务器)”、“Client Programs(mysql客户端程序)”、“Documentation(文档)”也如此操作,以保证安装所有文件。点选“Change...”,手动指定安装目录。


我是用的是默认目录。按“OK”继续。


返回刚才的界面,按“Next”继续。


确认一下先前的设置,如果有误,按“Back”返回重做。按“Install”开始安装。
正在安装中,请稍候,直到出现下面的界面


这里是询问你是否要注册一个mysql.com的账号,或是使用已有的账号登陆mysql.com,一般不需要了,点选“Skip Sign-Up”,按“Next”略过此步骤。
现在软件安装完成了,出现上面的界面,这里有一个很好的功能,mysql配置向导,不用向以前一样,自己手动乱七八糟的配置my.ini了,将 “Configure the Mysql Server now”前面的勾打上,点“Finish”结束软件的安装并启动mysql配置向导。

mysql配置向导启动界面,按“Next”继续。


选择配置方式,“Detailed Configuration(手动精确配置)”、“Standard Configuration(标准配置)”,我们选择“Detailed Configuration”,方便熟悉配置过程。


选择服务器类型,“Developer Machine(开发测试类,mysql占用很少资源)”、“Server Machine(服务器类型,mysql占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)”,大家根据自己的类型选择了,一般选“Server Machine”,不会太少,也不会占满。


选择mysql数据库的大致用途,“Multifunctional Database(通用多功能型,好)”、“Transactional Database Only(服务器类型,专注于事务处理,一般)”、“Non-Transactional Database Only(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional),随自己的用途而选择了,我这里选择“Multifunctional Database”, 按“Next”继续。


对InnoDB Tablespace进行配置,就是为InnoDB 数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏,当然,对数据库做个备份就没问题了,这里不详述。我这里没有修改,使用用默认位置,直接按“Next”继续。
选择您的网站的一般mysql访问量,同时连接的数目,“Decision Support(DSS)/OLAP(20个左右)”、“Online Transaction Processing(OLTP)(500个左右)”、“Manual Setting(手动设置,自己输一个数)”,我这里选“Decision Support(DSS)/OLAP)”,按“Next”继续


是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql数据库了,我这里启用,把前面的勾打上,Port Number:3306,在这个页面上,您还可以选择“启用标准模式”(Enable Strict Mode),这样MySQL就不会允许细小的语法错误。如果您还是个新手,我建议您取消标准模式以减少麻烦。但熟悉MySQL以后,尽量使用标准模式,因为它可以降低有害数据进入数据库的可能性。按“Next”继续。


这个比较重要,就是对mysql默认数据库语言编码进行设置。在Character Set项选择“utf8”,然后点按 “Next”继续。


选择是否将mysql安装为windows服务,还可以指定Service Name(服务标识名称),是否将mysql的bin目录加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,“mysql.exe -uusername -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便),我这里全部打上了勾,Service Name不变。按“Next”继续。


这一步询问是否要修改默认root用户(超级管理)的密码(默认为空),“New root password”如果要修改,就在此填入新密码(如果是重装,并且之前已经设置了密码,在这里更改密码可能会出错,请留空,并将“Modify Security Settings”前面的勾去掉,安装配置完成后另行修改密码),“Confirm(再输一遍)”内再填一次,防止输错。“Enable root access from remote machines(是否允许root用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后“Create An Anonymous Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用勾了,设置完毕,按“Next”继续。


确认设置无误,如果有误,按“Back”返回检查。按“Execute”使设置生效。
设置完毕,按“Finish”结束mysql的安装与配置——这里有一个比较常见的错误,就是不能“Start service”,一般出现在以前有安装mysql的服务器上。

解决的办法:

1.这里你可以反复点击“重试”,可以启动服务。我当时就是这样的。

2.若实在无法启动,则按下面方法操作:先保证以前安装的mysql服务器彻底卸载掉了;不行的话,检查是否按上面一步所说,之前的密码是否有修改,照上面的操作;如果依然不行,将mysql安装目录下的data文件夹备份,然后删除,在安装完成后,将安装生成的 data文件夹删除,备份的data文件夹移回来,再重启mysql服务就可以了,这种情况下,可能需要将数据库检查一下,然后修复一次,防止数据出错。

========================================================================================

至此,MySql的安装就完成了。

然后,我们要检查几个参数,看安装是否正常。

1.在cmd中启动MySql。

打开命令提示符cmd,输入"mysql -uusername -ppassword",回车,就可以连接到数据库。

如输入"mysql -uscott -ptiger"然后回车


出现如图所示字样,表明数据库连接正常。否则,在环境变量里,把安装目录下的bin目录路径加入到PATH下,应该就可以解决了。

2.查看字符集

输入"show variables like 'character_set_%';",回车

可以看到如下字样:


则表明,字符集全部设置为utf8了,正常。(注意,mysql中"utf-8"一律写作"utf8",其他的软件和数据库不遵此例)
如果不是这样,首先我要说,你前面的步骤肯定没按我说的做。不过可以这样改:

打开mysql安装根目录,找到my.ini文件,打开。

在[mysql]和[mysqld]下面紧挨着的地方,分别加入这样一句话:"default-character-set=utf8"。在"我的电脑"->"管理"->"服务",找到mysql服务,重新启动。然后再验证,就可以搞定了。

3.DBMS

mysql是不自带DBMS的(5.6中集成了MySql WorkBench,不过那不支持中文,而且界面很复杂,不推荐)。当然有很多DBMS for mysql可以选。我这里用的是Navicat for MySQL,原因就是它有中文版的,操作也很简单方便。推荐大家使用。这个就自己去下一个破解版的。

=============================================================================================

下面来详细说一下,JAVA EE中使用JDBC连接MySql,出现中文乱码的问题。

首先,我说的是MySql中文乱码的问题,不是Tomcat的。如果你做查询后,结果全是????。。看后面的。如果是完全查不到数据,则很有可能Tomcat的字符集配置错误。

----------------------------------------------------------------------------------------

(Tomcat的问题你可以这样解决:

1.在Tomcat安装目录下的conf目录中找到server.xml文件,打开,在其中找到这一段


               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />

红色部分是你要添加的部分。

2.在servlet的doPost方法的最开始加上两句

request.setCharacterEncoding("UTF-8");
  response.setContentType("text/html;charset=UTF-8");

 

这样子Tomcat的中文乱码的问题就可以解决了。

----------------------------------------------------------------------------------------

1.先说最核心的四个问题:

    一是:连接URL格式出现了问题(Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/databasename","username","password")
    二是:驱动字符串出错(com.mysql.jdbc.Driver)
    三是:Classpath中没有加入合适的mysql_jdbc驱动

    四是:要将mysql-connector-java-3.1.14-bin.jarjar包加入C:\Program Files\Java\jre1.6.0_02\lib\ext文件夹下

首先检查这四者有没有问题,如果没有再往下看

2.

JSP页面顶部设置编码格式

<%@page contentType="text/html;charset=UTF-8"%>

head之间加入meta设置

<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>

另外,建议表单提交采用post方式。

连接数据库的地址中我们也应该加入字符设置,请看下面蓝色的字符。

jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8

3.myeclipse的默认编码设置,全部设置为utf-8

具体的,参考这篇文章,很详细:

==============================================================================================

按照如上方法,操作后,应该不会再出现乱码的问题了。这里还有一点我要补充一下。

JDBC连接MySql有两种方式:一种是通过数据源,一种是通过一个jar包去连接。

1.数据源方式先要在Windows的数据源管理工具里配置好数据源,具体的还要下载安装一个数据源的驱动包。(5.1后的MySql ODBC Driver可以设置字符集,把“datail”按钮打开就可以看到),然后使用

try{
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
   conn = DriverManager.getConnection("jdbc:odbc:School","scott","tiger");
  }catch(Exception ex){ex.printStackTrace();}

示例代码如上。

但是我要说的是使用这种方法,是会出现乱码的,不推荐大家使用。至于为什么,本人暂时也没搞清楚。路过的大神可以留言指教。

2.使用一个jar包去加载驱动连接MySql,这种方法不会出现乱码。推荐使用。

这个jar包大家可以自己下载,后面的下载链接里面有。使用时,要把这个包拷贝到指定目录下。否则会提示找不到驱动。(另外,在JAVA EE的web项目下,则是将它拷贝到"工程根目录\WebRoot\WEB-INF\lib"下,刷新即可在Myeclipse里看到新添加进来的包)

示例代码如下:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

public class connMySql{
 public static void main(String[] args) throws Exception{
  Class.forName("com.mysql.jdbc.Driver");
  try{
   Connection conn=DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/school?useUnicode=true&characterEncoding=utf8","root","tiger");
   String sql="SELECT 学号,姓名,性别,出生年月,家庭住址 FROM t1 WHERE 姓名 LIKE '%曾%'";
    ResultSet rs = conn.createStatement().executeQuery(sql);
    while(rs.next()){
     System.out.println(rs.getString("学号"));
     System.out.println(rs.getString("姓名"));
     System.out.println(rs.getString("性别"));
     System.out.println(rs.getString("出生年月"));
     System.out.println(rs.getString("家庭住址"));
    }
   }catch(Exception ex){ex.printStackTrace();}
 }

}

================================================================================================

至于,MySql的一些操作方法,大家自己去网上找资料学习。这里就不赘言了。

本文所有资料下载链接:



阅读(4174) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~