上篇我们介绍了binlog(参见mysql的binlog),配置文件用的是linux下的my.cnf,那么在windows下如何打开binlog呢?道理是相同的,配置文件是不一样的。在windows下我们需要配置my.ini,同名但不同后缀名。我们先来看我本地mysql的binlog开关是否打开:
mysql> show variables like '%log_bin%'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin | OFF | | log_bin_basename | | | log_bin_index | | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | sql_log_bin | ON | +---------------------------------+-------+ 6 rows in set, 1 warning (0.00 sec)
很明显并没有打开,那么我们需要先找到my.ini,再进行binlog的开关配置。我本地mysql是从官网上下载的5.7版本压缩包后解压得到的,找了半天并没有找到my.ini。这是因为mysql的5.7版本压缩包里确实没有my.ini这个配置文件。我们只能自己动手来创建一个my.ini,并把binlog的开关配置一并放进去:
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=D:Devmysqlmysql-5.7.26-winx64 # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 打开binlog log_bin=mysql-binlog # Server Id.数据库服务器id,这个id用来在主从服务器中标记唯一mysql服务器 server-id=1
标黄的是我本地mysql安装目录,该my.ini文件也放到这里。最后一项是mysql5.7版本需要加上去的,用于识别该mysql服务器ID,不加启动会报错的。当文件创建后用管理员身份运行Windows命令行,重启mysql:
C:WINDOWSsystem32>net stop mysql MySQL 服务正在停止.. MySQL 服务已成功停止。 C:WINDOWSsystem32>net start mysql MySQL 服务正在启动 . MySQL 服务已经启动成功。
再来看下binlog的开关:
mysql> show variables like '%log_bin%'; +---------------------------------+----------------------------------------------------------+ | Variable_name | Value | +---------------------------------+----------------------------------------------------------+ | log_bin | ON | | log_bin_basename | D:Devmysqlmysql-5.7.26-winx64datamysql-binlog | | log_bin_index | D:Devmysqlmysql-5.7.26-winx64datamysql-binlog.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | sql_log_bin | ON | +---------------------------------+----------------------------------------------------------+ 6 rows in set, 1 warning (0.00 sec)
这次binlog打开了。