前提:数据库版本一致,安装方式一致,导入的数据一致;
主库相关操作:
1.主库中创建同步帐号
CREATE USER 'root'@'%' IDENTIFIED BY 'xxxxxx'; #root用户跳过
2:同步帐号赋予权限
GRANT REPLICATION SLAVE ON *.* TO 'root'@'%' IDENTIFIED BY 'xxxxxx';
3:使用户生效
FLUSH PRIVILEGES;
4,主数据库修改配置文件my.cnf
在[mysqld] 下增加以下属性
log-bin = mysql-bin
server-id = 1
binlog-do-db = db_name
innodb_flush_log_at_trx_commit=1
sync_binlog=1
#binlog-do-db=wordpress 同步的db
#binlog_ignore_db=mysql 忽略的db
5:重启主数据库服务
service mysql restart
6:查看master状态信息
命令:show master status;
看到状态后在主执行SET GLOBAL log_bin_trust_function_creators = 1;(仅在主数据库上执行)
从数据库操作:
1:执行设置从库密码:
SET PASSWORD = PASSWORD('xxxxxx');
FLUSH PRIVILEGES;
2:主数据库修改配置文件my.cnf
在[mysqld] 下增加以下属性
#主库配置开始#
server-id=2
#主库配置结束#
3:配置完毕后重新启动My'SQL服务
service mysql restart
4:从库中执行root账户登陆,执行如下命令,使slave指向master
change master to master_host='10.162.27.97',master_port=3306,master_user='root',master_password='xxxxxx',master_log_file='mysql-bin.000001',master_log_pos=120;
注意:
远程 ip mysql -uroot -p -h IP
master_host=’为主库IP’
master_port=’主库端口’
master_user=’同步帐号’
master_password=’同位帐号密码’
master_log_file=’show master status中的File列取值’
master_log_post=’show master status中的Position列取值’
5:从库中执行检查slave状态
show slave statusG;
start slave;(重启slave命令:stop slave;停止start slave;开启)
如果看到双yes就证明同步状态ok