转载原文:http://www.tandunzhao.cn/js/149.html
一、首先到官网下载mysql-5.6.15-winx64.zip,然后将mysql解压到任意路径,如:D:\mysql-5.6.15-winx64
二、打开计算机->属性->高级系统设置->环境变量,新建一个环境变量,变量名为:MYSQL_HOME,变量值为你的mysql根目录,如:D:\mysql-5.6.15-winx64;然后在系统变量Path中添加:;%MYSQL_HOME%\bin
三、.在D:\mysql-5.6.15-win64下,复制“my-default.ini”文件,生成“复件 my-default.ini”文件。将“复件 my-default.ini”文件重命名成“my.ini” .修改其中的内容如下:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = D:/mysql-5.6.15-winx64
datadir = D:/mysql-5.6.15-winx64/data
port = 3306
#自定义主机ID识别符,用于主从或多服务器之间识别,为 一个 int 类型
server_id = 1
loose-default-character-set = utf8
character_set_server = utf8
# 最大连接数量
max_connections = 100
#CREATE TABLE 语句的默认表类型,如果不自己指定类型,则使用下行的类型
default-storage-engine = InnoDB
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
#设置客户端字符集
loose-default-character-set = utf8
四、安装mysql为windows服务。
d:\mysql-5.6.16-win64\bin\mysqld.exe -install mysql
如果出现 Service successfully removed 表示安装成功
如果想要卸载服务执行命令:mysqld -remove。
一定要指定全路径,否则,可能找不到文件。
然后启动mysql服务 (net start mysql)
然后在命令提示符下执行: net start mysql就能启动mysql了,停止服务输入命令: net stop mysql。如果想设置mysql是否自动启动,可以在开始菜单->运行中输入 service.msc打开服务管理进行设置。
不过我在安装过程中还是出了点小问题,启动mysql的时候报错:
系统出错。
发生系统错误 1067。
进程意外终止。
打开%MYSQL_HOME%/data目录下的用户名.err文件,mysql的错误日志就记录在这个文件中。在里面发现这样一句话:
110327 0:12:02 [ERROR] MySQL: unknown variable 'default-character-set=utf8'
感觉很奇怪,以前一直都这样安装的。最后在mysql的官网上找到一篇中国DBA的求助信息,原来这是新版本的一个bug,不支持在my.ini中直接设置字符集为utf8。解决办法是:在default-character-set=utf8前面加上loose-即:
- [mysqld]
- #设置字符集为utf8
- loose-default-character-set = utf8
- [client]
- #设置客户端字符集
- loose-default-character-set = utf8
启动果然不再报错了。。。那份求助信息的原文地址:
http://forums.mysql.com/read.php?103,189835,237318
后记:
虽然使用上面的方式加入loose-以后,mysql启动不再报错了。但是在插入数据时依然出现了乱码问题,给我造成了不小的麻烦。
mysql> show variables like '%char%';
通过以上命令查看字符集编码,得到如下结果:
+--------------------------+---------------------------------------+
| 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。
在[mysqld]配置选项下添加character-set-server = utf8,重启服务进入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\ |
+--------------------------+---------------------------------------+
问题完美解决
第一次登录的时候输入:
C:\Users\Administrator>mysql -u root
修改密码:
mysql> update mysql.user set password=PASSWORD('root') where User='root'
mysql> flush privileges
进入数据库
mysql> use mysql
use mysql;
select host,user,password from user;
update user set password = PASSWORD('root') where user = 'root';
最后不要忘记
flush privileges;
更新OK。
exit退出。然后重新登录即可。