mysql主从同步

1.关闭系统以免在复制过程中数据发生变化

2.dump主数据库(dump的时候数据库必须启动)

mysqldump -uroot -ppassword sow > d:sow.sql

3.从数据库导入数据(向从数据库导入数据)

mysql -uroot -ppassword --max_allowed_packet=128M --default-character-set=utf8

hrms< d:sow.sql

4.在主数据库上为从服务器建立一个用户:(进去数据库执行mysql -uroot -)

grant all privileges on *.* to root@'192.168.1.37' identified by 'password';

5.编辑主数据库的配置文件:my.ini(编辑配置文件的时候需要关闭数据库服务)

server-id=1
log-bin=mysql-bin

binlog-do-db=sow
6.
重启主数据库服务

mysql -u root

mysql -uroot -ppassword

7.在主服务器上查询当前二进制文件的文件名及偏移位置:

show master status;

File Position Binlog_Do_DB Binlog_Ignore_DB

mysql-bin.000001 98 sow

这里的fileposition的值在下面的配置中需要用到.


8.编辑从数据库的配置文件:my.ini

server-id=2
log-bin=mysql-bin
replicate-do-db=sow

9.重启从数据库服务

mysqladmin -uroot -ppassword shutdown;

cd mysqld.exe

10.配置主从(下面三步都在从数据库中操作)

mysql>change master to
-> master_host='192.168.1.34',
-> master_user='root',
-> master_password='password'
-> master_log_file='mysql-bin.000001',(
这里的值是第7步中查询到的值)
-> master_log_pos=98;(
这里的值是第7步中查询到的值)

11.启动从服务器上的复制线程:

start slave;

12.验证主从设置是否已经成功:

show slave statusG

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

如果这两个选项不全是Yes,说明前面某个步骤配置错了。




@@echo off
/* 备份DB的路径 */
set backdir="d:ackupDB"
if exist %backdir% (del d:ackupDB*.sql /f /s ) else ( md %backdir% )

set path_bin_mysql="E:FINSYSTEMprogramsmysqlin"

echo %path_bin_mysql%
/* 服务器IP地址 */
set database_address=192.168.1.34
/* 数据库名称 */
set database_mysql=sow
/* 用户名 */
set user_mysql=root
/* 密码 */
set password_mysql=password
/* 文件的存放路径及名称 */
set file_path=%backdir%\%date:~0,10%.sql

%path_bin_mysql%mysqldump -h%database_address% -u%user_mysql% -p%password_mysql% %database_mysql% > %file_path%

echo end backup



原文地址:https://www.cnblogs.com/yunyunde/p/8405058.html