环 境 mysql-5.0.22 解压版。(copy 成两份 ,master,slave) windowsxp 一、master的设置 1、配制my.ini [client] port = 3308 [mysqld] port =3308 server-id = 1 binlog-do-db=test1 ##要同步的数据库名为test1 log-bin =mysql-bin 然后在console 执行: gr
环 境
mysql-5.0.22 解压版。(copy 成两份 ,master,slave)
windowsxp
一、master的设置
1、配制my.ini
[client]
port = 3308
[mysqld]
port =3308
server-id = 1
binlog-do-db=test1 ##要同步的数据库名为test1
log-bin =mysql-bin
然后在console 执行: grant file,select,replication slave on *.* to 'slaver1'@'127.0.0.1' identified by 'slaver1pwd';
开一个新账号(用户名:slaver1 密码:slaver1pwd)并赋于权限
运行mysqld.exe,并创建新数据库test1,可在console下输入:show master status\g查看状态!
*************************** 1. row*****************
file: mysql-bin.000305
position: 98
binlog_do_db: test1
binlog_ignore_db:
二、slaver 的设置
1、配制my.ini
[client]
port = 3309
[mysqld]
port = 3309
server-id = 2
master-host = 127.0.0.1
master-user = slaver1
master-password = slaver1pwd
master-port = 3308
replicate-do-db=test1 ##要同步的数据库
运行slaver 的mysqld.exe,在console窗口执行 show slave status\g 查看状态,如下:
*************************** 1. row ***************************
slave_io_state: waiting for master to send event
master_host: 127.0.0.1
master_user: slaver1
master_port: 3308
connect_retry: 60
master_log_file: mysql-bin.000305
read_master_log_pos: 98
relay_log_file: ccf-3acf6017ef4-relay-bin.000005
relay_log_pos: 235
relay_master_log_file: mysql-bin.000305
slave_io_running: yes
slave_sql_running: yes
replicate_do_db: test1
replicate_ignore_db:
replicate_do_table:
replicate_ignore_table:
replicate_wild_do_table:
replicate_wild_ignore_table:
last_errno: 0
last_error:
skip_counter: 0
exec_master_log_pos: 98
relay_log_space: 235
until_condition: none
until_log_file:
until_log_pos: 0
master_ssl_allowed: no
master_ssl_ca_file:
master_ssl_ca_path:
master_ssl_cert:
master_ssl_cipher:
master_ssl_key:
seconds_behind_master: 0
常见问题
1、sql i/o running: no
原因:用户名或密码不正确、slaver1的权限不够!
如果正确的执行:grant file,select,replication slave on *.* to 'slaver1'@'127.0.0.1' identified by 'slaver1pwd'; 仍然显示sql i/o running:no,可能是master的用户管理中slaver用户未选中replication client (用navicat-manager user ->slaver1 的右边可选列表 )
2、slave_sql_running: no
原因:
a.程序可能在slave上进行了写操作
b.slave机器重起后,事务回滚.
解决方法:
在slaver的console:
2.1.停掉slave服务
mysql>slave stop
2.2、查看master的状态:(在master上执行)
show master status\g
2.3、手工同步
mysql> change master to
> master_host='127.0.0.1',
> master_user='slaver1',
> master_password='slaver1pwd',
> master_port=3308,
> master_log_file='mysql-bin.000020',
> master_log_pos=98;
2.4、重启slave
mysql> slave start;
附录
1、查看异常信息文件:一般在data(数据库存文件的存放位置)的文件夹中,后缀名为.err的文件
2、show processlist\g 可以协助查看用户信息