### MySQL 5 绿色版(BAT版本)

By BeanSoft(beansoft@126.com) 2007-02-04

以前提供下载的那个 MySQL 5 绿色版是来自于 Web 开发工具箱之 Apache PHP MySQL 绿色套装版, 原作者是为了方便自己开发所做的一套整合了 Apache, PHP, MySQL 的小工具箱, 但是没有源码. 类似的工具还有 XAMPP - Apache, mySQL, PHP, phpMyAdmin and more in an integrated package, 是做PHP开发的全套绿色工具. 为了做一套开源的 MySQL 5 绿色版, 完全控制启动停止, 我把 Mysql 绿色版用BAT文件重新包装了一遍.
使用: 下载后解压缩到磁盘上的任意目录, 可以看到多出了一个 mysql5green 的目录. 打开这个目录, 有以下的几个文件:

文件 | 说明
[bin] | MySQL 的二进制文件
[data] | MySQL 数据库文件
[share] | MySQL 英文资源文件
erase_log.bat | 清空日志
mysql_start.bat | 启动 MySQL, 双击后如果没有错误的话可以在系统进程中看到 mysqld-nt.exe, 并且可以通过 mysql 管理工具连接上, 端口 3306, 用户名 root, 密码为空
mysql_stop.bat | 停止 MySQL
mysql绿色版.htm | 介绍文件
tail.exe | Windows 版的tail
tail.zip | tail 的源码
view_log.bat | 跟踪查看 MySQL 的工作日志, 包括所有查询的 SQL 语句

原理: 首先只保留了 MySQL 的最少运行文件来减少所占用的空间. 当然如果你愿意的话留下所有的 Mysql 5 文件也没有问题. 然后根据 mysqladmin.exe 和 mysqld-nt.exe 的命令行参数进行工作. mysqld-nt.exe --verbose --help 可以看到所有能够使用的参数.

mysql_start.bat

@echo off @echo Mysql startup ... start bin\mysqld-nt.exe --no-defaults --skip-bdb --skip-innodb --log=log.txt exit

以不需要配置文件, 不支持bdb, innodb, 输出 SQL 查询日志文件到 data\log.txt 的方式来启动 Mysql.

mysql_stop.bat

@echo off REM Mysql shutdown ... bin\mysqladmin --user=root --password= shutdown

以 root 用户连接到 MySQL 执行 shutdown 命令.

view_log.bat

@ECHO off cls color 0A @ECHO Opening Log file: data\log.txt tail -100f data\log.txt

清屏, 设置绿色, 然后显示最新的100行数据并跟踪日志文件的内容. 这个窗口可以随时关闭, 不影响 MySQL 的执行.

一份 log 文件的示例输出:

Opening Log file: data\log.txt bin\mysqld-nt.exe, Version: 5.0.24a-community-nt-log. started with: TCP Port: 0, Named Pipe: (null) Time Id Command Argument 70205 10:31:19 1 Connect root@localhost on 1 Statistics 1 Query SELECT VERSION() 1 Query SHOW VARIABLES 1 Query SHOW STATUS 1 Query show databases 1 Init DB information_schema 1 Query show tables 1 Init DB mysql 1 Query show tables 1 Init DB test 1 Query show tables 070205 10:31:20 1 Init DB test 1 Query show tables

最后关于压缩, 发现压缩率 7Z > RAR > ZIP. 只有 7Z 能把这么多文件压缩到2MB以内, 其余两个都不行.