一、测试软件:MySQL5绿色版 Window简体中文平台 Eclipse3.4
二、安装以及配置
两种方式:通过注册服务,开机自动运行或使用CMD启动MySQL
1、添加服务(前提条件:已将$MySQL_HOME$/bin添加至环境变量里):
注册服务:mysqld --install mysql5 --defaults-file=C:/MySQL5/my.ini (其中mysql5是服务名,my.ini是配置文件,在绿色版打包文件里有)
启动服务:net start mysql5 (首次需要运行,以后就不用了)
停止服务:net stop mysql5
注销服务:mysqld --remove mysql5
2、通过CMD启动:mysqld --console (CMD窗口不能关闭,否则停止监听端口;并且每次想连MySQL时就得运行这条命令)
正常关闭MySQL:mysqladmin -uroot -pyourpassword shutdown
连接数据库:mysql -uroot -pyourpassword
修改root帐户密码:mysqladmin -uroot -p newpwd (其中如果原本有密码,则加上-p,不然不加-p)
3、常用SQL命令:
1:使用SHOW语句找出在服务器上当前存在什么数据库:
mysql> SHOW DATABASES;
2:创建一个数据库WEBDEMO
mysql> CREATE DATABASE webdemo;
3:选择你所创建的数据库
mysql> USE webdemo; (按回车键出现Database changed 时说明操作成功!)
4:查看现在的数据库中存在什么表
mysql> SHOW TABLES;
5:创建一个数据库表User
mysql> CREATE TABLE User (name VARCHAR(20), sex CHAR(1));
6:显示表的结构:
mysql> DESCRIBE User;
7:往表中加入记录
mysql> insert into User values ("admin","M");
8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE User;
9:导入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:删除表
mysql>drop TABLE User;
11:清空表
mysql>delete from User;
12:更新表中数据
mysql>update User set sex="f" where name='admin';
三、字符集(使用中文常会出现乱码问题的根源)
1、原理说明
Mysql服务器中有六个关键位置使用了字符集的概念:client、connection、database、results、server、system.
a) 其中 client 客户端使用的字符集,相当於网页中的字符集设置如下:
<meta http-equiv=”Content-Type” content=”text/html;charset=utf-8”>
b) 其中connection是连接数据库的字符集设置类型,如果JSP/PHP没有指明连接数据库使用的字符集类型就按照服务器端的字符集设置。
c) 其中 database是数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。
d) Results 数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。
e) server是服务器安装时指定的默认字符集设定。
f) system是数据库系统使用的字符集设定。
而MySQL的默认字符集是latin1这一瑞典文字符集或(也称ISO-8859-1)
Java里支持的字符集如下:
Charset | 描述 |
---|---|
US-ASCII | 7 位 ASCII 字符,也叫作 ISO646-US、Unicode 字符集的基本拉丁块 |
ISO-8859-1 | ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 |
UTF-8 | 8 位 UCS 转换格式 |
UTF-16BE | 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序 |
UTF-16LE | 16 位 UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序 |
UTF-16 | 16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识 |
2、下面说明如何配置字符集(个人推荐使用utf-8):
个人推荐使用utf-8,所以下面以设置成utf-8为例
(1)配置MySQL打包文档里的my***.ini(里面有很多个,适用于不同的场合,文件里面的内容有介绍),
复制一个命名为my.ini 然后在文件内容的末尾添加
(2)然后,进CMD:mysqld --install MySQL5 --defaults-file=[my.ini的文件路径]/my.ini
(3)然后,创建数据库:create database yourDB CHARACTER SET utf8;
这样,就配置完成了,如:
(2)已创建数据库,但字符集不是utf-8(注意:在MySQL里,应该是utf8)
3、通过数据导出与恢复配置字符集,示例:
(1) mysqldump -uroot -pyourpassword --default-character-set=latin1 --set-charset=utf8 --opt yourdbname > newdatabase.sql
(2) 修改newdatabase.sql,在文件开头增加一条sql语句: “SET NAMES utf8;“,保存。
(3) mysql -hlocalhost -uroot yourdbname < newdatabase.sql
4、常用的查看当前字符集状态命令:
status
SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'collation_%';
5、常用的设置字符集的命令:
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;
mysql> SET NAMES 'utf8';
它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
四、Tomcat+Hibernate+Spring+Struts的字符集配置
1、配置MySQL的字符集为utf8 (见前面介绍);
2、所有的JSP页面使用“UTF-8”
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
3、配置连接MySQL的参数:
jdbc:mysql://localhost:3306/yourdbname?useUnicode=true&characterEncoding=utf-8
4、通过Spring技术添加页面过滤器或配置所有页面的request与response
(1) 页面过滤器:
在web.xml添加Filter
然后添加Filter-Mapping:
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这样,就配置完成了页面过滤器。
(2) 手动配置所有的request与response:
<% request.setCharacterEncoding("utf-8"); %>
<% response.setContentType("text/html;charset=utf-8"); %>
至此所有的设置都已完成,可以打开Tomcat测试一下!
P.S.本文是本人总结最近困扰我的一个问题,请各位多多指正!此文大部分内容为网上搜索与总结!
完成时间:2009年6月2日 晚23:11