您的位置:首页 > 数据库 > MySQL

mysql主从同步配置

2015-11-01 13:17 686 查看
1.主从两台服务器先安装好mysql,访问服务器与主从三个服务器之间网络互相可以访问。

访问服务器:192.168.142.1

mysql主:    192.168.142.143

mysql从:    192.168.142.144

查看mysql配置文件位置: mysql --help | grep 'Default options' -A 1,mysql会依序的去这些位置找my.cnf文件的,没有就下一个。

2.修改主数据库的配置文件

[mysqld]

server-id=1

log-bin=mysqlmaster-bin.log

sync_binlog=1

#注意:下面这个参数需要修改为服务器内存的70%左右

innodb_buffer_pool_size = 512M

innodb_flush_log_at_trx_commit=1

sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO

lower_case_table_names=1

log_bin_trust_function_creators=1

默认情况下Mysql只允许本地登录,所以需要修改配置文件将地址绑定给注释掉

#bind-address           = 127.0.0.1  <---注释掉这一行

修改后重启mysql

3.修改从数据库的配置文件(server-id配置为大于1的数字即可)

[mysqld]

server-id=2

log-bin=mysqlslave-bin.log

sync_binlog=1

#注意:下面这个参数需要修改为服务器内存的70%左右

innodb_buffer_pool_size = 512M

innodb_flush_log_at_trx_commit=1

sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO

lower_case_table_names=1

log_bin_trust_function_creators=1

默认情况下Mysql只允许本地登录,所以需要修改配置文件将地址绑定给注释掉

#bind-address           = 127.0.0.1  <---注释掉这一行

修改后重启mysql

4.SSH登录到主数据库,在主数据库上创建用于主从复制的账户

GRANT REPLICATION SLAVE ON *.* TO 'rep'@'192.168.142.144' IDENTIFIED BY 'rep';

5.主数据库锁表

FLUSH TABLES WITH READ LOCK;

6.然后克隆一个SSH会话窗口,在这个窗口打开MySQL命令行

SHOW MASTER STATUS;

记录查询结果,例如为如下结果

+------------------------+----------+--------------+------------------+

| File                   | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------------+----------+--------------+------------------+

| mysqlmaster-bin.000001 |      261 |              |                  |

+------------------------+----------+--------------+------------------+

7.在主数据库上创建一个数据快照

mysqldump -uroot -p -h127.0.0.1 -P3306 --all-databases --triggers --routines --events >all.sql

8.解锁第5步的锁表操作

UNLOCK TABLES;

9.ssh登录到从数据库,通过FTP、SFTP或其他方式,将上一步备份的主数据库快照all.sql上传到从从数据库服务器某个路径,从导入主的快照

mysql -uroot -p -h127.0.0.1 -P3306 < all.sql

10.给从数据库设置复制的主数据库信息(注意修改MASTER_LOG_FILE和MASTER_LOG_POS的值, MASTER_LOG_FILE更改为第5步FIle字段的值,MASTER_LOG_PATH该为第6步中的Position字段的值)

登录到mysql

mysql> CHANGE MASTER TO MASTER_HOST='192.168.142.143',MASTER_USER='repl',MASTER_PASSWORD='repl',MASTER_LOG_FILE='mysqlmaster-bin.000001',MASTER_LOG_POS=261;

11.启动从数据库的复制线程

mysql> START slave;

12.查询从数据库的状态

mysql> SHOW slave STATUS \G;

如果下面两个参数都是Yes,则说明主从配置成功!

Slave_IO_Running:  Yes

Slave_SQL_Running: Yes

接下来你可以在主数据库上创建数据库、表、插入数据,然后看从数据库是否同步了这些操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: