到官网下载mysql-5.5.10-win32.zip,然后将mysql解压到任意路径,如:C:\mysql-5.5.10-win32

打开计算机->属性->高级系统设置->环境变量,新建一个环境变量,变量名为:[b]MYSQL_HOME[/b],变量值为你的mysql根目录,如:C:\mysql-5.5.10-win32
然后在系统变量[b]Path[/b]中添加:;[b]%MYSQL_HOME%\bin[/b]

在根目录下面有几个已经写好的"my-"开头的ini文件,选一个适合你的,如:my-small.ini。复制一份,将文件名修改为my.ini,添加以下内容:

[mysqld]
#设置字符集为utf8
default-character-set = utf8
basedir = C:/mysql-5.5.10-win32
datadir = C:/mysql-5.5.10-win32/data

[client]
#设置客户端字符集
default-character-set = utf8

[WinMySQLadmin]
Server = C:/mysql-5.5.10-win32/bin/mysqld.exe




打开命令提示符,进入[b]%MYSQL_HOME%/bin[/b]目录,执行命令:[b]mysqld -install[/b]将mysql安装到windows的服务。执行成功后会提示:[b]C:\mysql-5.5.10-win32\bin>Service successfully installed.[/b]


如果想要卸载服务执行命令:[b]mysqld -remove[/b]。



然后在命令提示符下执行:[b]net start mysql[/b]就能启动mysql了,停止服务输入命令:[b]net stop mysql[/b]。如果想设置mysql是否自动启动,可以在开始菜单->运行中输入[b]service.msc[/b]打开服务管理进行设置。



第一次登录的时候输入:



[b]C:\Users\Administrator>mysql -u root[/b]



修改密码:



[b]mysql> update mysql.user set password=PASSWORD('root') where User='root'


mysql> flush privileges[/b]



不过我在安装过程中还是出了点小问题,启动mysql的时候报错:


[b]


系统出错。



发生系统错误 1067。



进程意外终止。[/b]



打开[b]%MYSQL_HOME%/data[/b]目录下的[b]用户名.err[/b]文件,mysql的错误日志就记录在这个文件中。在里面发现这样一句话:



[b]110327 0:12:02 [ERROR] MySQL: unknown variable 'default-character-set=utf8'[/b]



感觉很奇怪,以前一直都这样安装的。最后在mysql的官网上找到一篇中国DBA的求助信息,原来这是新版本的一个bug,不支持在my.ini中直接设置字符集为utf8。解决办法是:在default-character-set=utf8前面加上[b]loose-[/b]即:


[mysqld]
#设置字符集为utf8
loose-default-character-set = utf8

[client]
#设置客户端字符集
loose-default-character-set = utf8




启动果然不再报错了。。。那份求助信息的原文地址:


[url]http://forums.mysql.com/read.php?103,189835,237318[/url]



[b]后记:[/b]



虽然使用上面的方式加入loose-以后,mysql启动不再报错了。但是在插入数据时依然出现了乱码问题,给我造成了不小的麻烦。


[b]mysql> show variables like '%char%';[/b]


通过以上命令查看字符集编码,得到如下结果:


+--------------------------+---------------------------------------+


| Variable_name | Value |


+--------------------------+---------------------------------------+


| character_set_client | utf8 |


| character_set_connection | utf8 |


| character_set_database | latin1 |


| character_set_filesystem | binary |


| character_set_results | utf8 |


| character_set_server | latin1 |


| character_set_system | utf8 |


| character_sets_dir | C:\mysql-5.5.10-win32\share\charsets\ |


+--------------------------+---------------------------------------+


可以看出character_set_database ,character_set_server 的编码还是默认的latin1。



[color=red]在[mysqld]配置选项下添加character-set-server = utf8[/color],重启服务进入mysql再次查看:


+--------------------------+---------------------------------------+


| Variable_name | Value |


+--------------------------+---------------------------------------+


| character_set_client | utf8 |


| character_set_connection | utf8 |


| character_set_database | utf8 |


| character_set_filesystem | binary |


| character_set_results | utf8 |


| character_set_server | utf8 |


| character_set_system | utf8 |


| character_sets_dir | C:\mysql-5.5.10-win32\share\charsets\ |


+--------------------------+---------------------------------------+



问题完美解决