环境 :
个人 pc windows7 一台 ;
使用 :
官方下载: mysql-noinstall-5.5.11-win32.zip
1. 解压 成2个 (文件夹)
mysql_master (主)
mysql_slave (从)
2. 配置文件修改
主服务器配置修改
mysql_master/my-huge.ini 修改名称为 my.ini
修改刚才 my.ini 文件的
[client]
port = 3306
[mysqld]
server-id = 1
port = 3306
binlog-do-db =test #同步test,此处关闭的话,就是除不允许的,其它的库均同步。
binlog-ignore-db=backup 不同步backup库,以下同上
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
log-bin=mysql-bin
启动 mysql-5.1.36-win32_1/bin/mysqld.exe
现在备份Master上的数据;
mysql>FLUSH TABLES WITH READ LOCK;
使用 主 mysql -u root 创建同步角色
mysql>GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backupuser@'127.0.0.1' IDENTIFIED BY '123456';;
mysql>show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 106 | test | backup |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
这里的file,position会在从库里用到。
从服务器配置:
mysql-5.1.36-win32_2/my-huge.ini 修改名称为 my.ini
修改刚才 my.ini 文件的
[client]
#password = your_password
port = 3307
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
server-id = 2
master-host = 127.0.0.1
master-user = backup
master-password = 123456
master-port = 3306
port = 3307
启动 mysql-5.1.36-win32_2/bin/mysqld.exe
我当时遇到的情况是没有成功启动,查看error日志
发现 [ERROR] d:/mysql_slave/bin/mysqld: unknown variable 'master-host=127.0.0.1'
然后把 下面四行注释掉
master-host = 127.0.0.1
master-user = backup
master-password = 1234
master-port = 3307
再执行下面的命令。
slave stop;
change master to master_host='127.0.0.1', master_user='backup', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=106;
slave start;
可以通过 show slave status;来看看从库的情况。不过信息太多。为了方便查看可以用下面这个命令
show slave status G;
查看上面的Slave_IO_Running: Yes 和Slave_SQL_Running: Yes 2个都为yes则证明主从同步正常,如果有任一个显示NO,则证明同步有问题。可以查看数据库日志文件,里面基本上会显示出错误之处,根据错误一步一步排查,基本上都可以解决的。
解锁主库表;
UNLOCK TABLES;
测试
在主mysql服务器
use test
create table tt (ii int);
然后在从mysql服务器
use test
show tables;
mysql> show tables ;
+----------------+
| Tables_in_test |
+----------------+
| tt |
+----------------+
1 row in set (0.00 sec)
个人 pc windows7 一台 ;
使用 :
官方下载: mysql-noinstall-5.5.11-win32.zip
1. 解压 成2个 (文件夹)
mysql_master (主)
mysql_slave (从)
2. 配置文件修改
主服务器配置修改
mysql_master/my-huge.ini 修改名称为 my.ini
修改刚才 my.ini 文件的
[client]
port = 3306
[mysqld]
server-id = 1
port = 3306
binlog-do-db =test #同步test,此处关闭的话,就是除不允许的,其它的库均同步。
binlog-ignore-db=backup 不同步backup库,以下同上
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
log-bin=mysql-bin
启动 mysql-5.1.36-win32_1/bin/mysqld.exe
现在备份Master上的数据;
mysql>FLUSH TABLES WITH READ LOCK;
使用 主 mysql -u root 创建同步角色
mysql>GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backupuser@'127.0.0.1' IDENTIFIED BY '123456';;
mysql>show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 106 | test | backup |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
这里的file,position会在从库里用到。
从服务器配置:
mysql-5.1.36-win32_2/my-huge.ini 修改名称为 my.ini
修改刚才 my.ini 文件的
[client]
#password = your_password
port = 3307
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
server-id = 2
master-host = 127.0.0.1
master-user = backup
master-password = 123456
master-port = 3306
port = 3307
启动 mysql-5.1.36-win32_2/bin/mysqld.exe
我当时遇到的情况是没有成功启动,查看error日志
发现 [ERROR] d:/mysql_slave/bin/mysqld: unknown variable 'master-host=127.0.0.1'
然后把 下面四行注释掉
master-host = 127.0.0.1
master-user = backup
master-password = 1234
master-port = 3307
再执行下面的命令。
slave stop;
change master to master_host='127.0.0.1', master_user='backup', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=106;
slave start;
可以通过 show slave status;来看看从库的情况。不过信息太多。为了方便查看可以用下面这个命令
show slave status G;
查看上面的Slave_IO_Running: Yes 和Slave_SQL_Running: Yes 2个都为yes则证明主从同步正常,如果有任一个显示NO,则证明同步有问题。可以查看数据库日志文件,里面基本上会显示出错误之处,根据错误一步一步排查,基本上都可以解决的。
解锁主库表;
UNLOCK TABLES;
测试
在主mysql服务器
use test
create table tt (ii int);
然后在从mysql服务器
use test
show tables;
mysql> show tables ;
+----------------+
| Tables_in_test |
+----------------+
| tt |
+----------------+
1 row in set (0.00 sec)