mysql 主从部署

主从配置mysql

grant all privileges on *.* to 'root'@'%' identified by 'root';
flush privileges;

》》》》》》主服务器配置 10.10.6.169

grant replication slave on *.* to 'testuser'@'10.10.6.141' identified by '12345678';
flush privileges;

vi /etc/my.cnf
[mysqld]下添加以下参数,若文件中已经存在,则不用添加
server-id=1
log-bin=mysql-bin #启动MySQL二进制日志系统,
binlog-do-db=ourneeddb #需要同步的数据库
binlog-ignore-db=mysql #不同步mysql系统数据库,若还有其它不想同步的,继续添加
重启数据库

mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000008 | 107 | bak | mysql |
+------------------+----------+--------------+------------------+

》》》》》导出数据库
flush tables with read lock; #数据库只读锁定命令,防止导出数据库的时候有数据写入
unlock tables; #解除锁定
导出数据库结构及数据:mysqldump -uroot -p ourneeddb > /home/ourneeddb.sql
导出存储过程及函数 :mysqldump -uroot -p -ntd -R ourneeddb > ourneeddb_func.sql
tips:-ntd导出存储过程、-R导出函数

》》》》》从服务器配置 10.10.6.141

[mysqld]下添加以下参数,若文件中已经存在,则不用添加
server-id=2 #设置从服务器id,必须于主服务器不同
log-bin=mysql-bin #启动MySQ二进制日志系统
replicate-do-db=ourneeddb #需要同步的数据库名
replicate-ignore-db=mysql #不同步mysql系统数据库

[root@localhost~ ]/etc/init.d/mysqld restart #重启服务
use mysql
stop slave;
change master to
master_host='10.10.6.169',
master_user='testuser',
master_password='12345678',
master_log_file='mysql-bin.000008',
master_log_pos=107; #log_file与log_pos是主服务器master状态下的File与Position
start slave;
show slave status\G;

猜你喜欢

转载自www.cnblogs.com/maoxianfei/p/9477850.html