http://michael-wong.iteye.com/blog/976381(转)
----------------------------------------
如果是MySQL 5.7
1)初始化数据库
以管理员自身份打开CMD执行以下命令(注意必须以管理员身份打开,否则报错)
mysqld --initialize --user=mysql --console
在控制台消息尾部会出现随机生成的初始密码,记下来
2)进入mysql
输入命令set password for root@localhost = password(‘123‘); (注意分号)
(新版的mysql数据库下的user表中已经没有Password字段了而是将加密后的用户密码存储于authentication_string字段)
--------------------------------
到官网下载mysql-5.5.10-win32.zip,然后将mysql解压到任意路径,如:C:\mysql-5.5.10-win32
打开计算机->属性->高级系统设置->环境变量,新建一个环境变量,变量名为:MYSQL_HOME,变量值为你的mysql根目录,如:C:\mysql-5.5.10-win32
然后在系统变量Path中添加:;%MYSQL_HOME%\bin
在根目录下面有几个已经写好的"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
打开命令提示符,进入%MYSQL_HOME%/bin目录,执行命令:mysqld -install将mysql安装到windows的服务。执行成功后会提示:C:\mysql-5.5.10-win32\bin>Service successfully installed.
注意:(发生系统错误 2。
系统找不到指定的文件。
必须在bin下安装服务
)
如果想要卸载服务执行命令: mysqld -remove 。然后在命令提示符下执行: net start mysql 就能启动mysql了,停止服务输入命令: net stop mysql 。如果想设置mysql是否自动启动,可以在开始菜单->运行中输入 service.msc 打开服务管理进行设置。
第一次登录的时候输入:
C:\Users\Administrator>mysql -u root
修改密码:
mysql> update mysql.user set password=PASSWORD('root') where User='root'
mysql> flush privileges
不过我在安装过程中还是出了点小问题,启动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\ |
+--------------------------+---------------------------------------+
问题完美解决
二、mysql binlog使用
1、binlog日志打开方法
mysql> show variables like 'log_%';
编辑D:\mysql-5.6.19-winx64\my.ini
[mysqld]
log-bin=/var/lib/mysql/mysql-bin-log
2、查看自己的binlog的名称是什么
mysql> show binary logs;
3.查看二进制日志里的操作记录
mysql> show binlog events;
4、用mysqlbinlog 工具来显示记录的二进制结果,然后导入到文本文件
mysqlbinlog --no-defaults d:\\mysql_log_bin.000001 > c:\\test1.txt