mysql主从配置具体流程(一)

主要介绍两个场景:

  1. 生产环境已经有正在运行的数据库。
  2. 生产环境已经有正常运行的主从数据库,想再添加一台从数据库。

本文说一下第一种情况。
假设正在运行的数据库的ip为192.168.1.2,而想要添加为从数据库的ip为192.168.1.3。

  1. 登录主数据库服务器,修改数据库配置,设置一个server-id,并开启bin-log,然后重启数据库,同时再创建一个专门用于复制数据的用户
$ ssh [email protected]
$ vim /etc/mysql/mysql.conf.d/mysql.cnf
 #添加 server-id=1
 #添加 log_bin = /var/log/mysql/mysql-bin.log
$ service mysql restart
$ mysql -u root -p
mysql> grant replication slave on *.* to 'repl_user'@'192.168.1.3' identified by 'repl_pass';
mysql> flush privileges;
  1. 连接到数据库,并将数据库设置为只读,然后查看当前执行到的bin-log文件以及文件的坐标,然后备份数据后,再把锁释放掉。
$ mysql -u root -p
mysql> flush tables with read lock;
mysql> show master status;
mysql> exit;
$ mysqldump
  1. 登录到从数据库服务器,修改数据库配置重启后导入上一步备份的数据,然后将主数据库服务器设置成192.168.1.2,最后开启复制。
$ ssh [email protected]
$ vim /etc/mysql/mysql.conf.d/mysqld.cnf
#添加 server-id=2 ,server-id不能和主数据库的相同
#添加 skip-slave-start,意思是启动数据库的时候默认不开启复制
$ service mysql restart
#导入数据
$ mysql -u root -p<备份文件
$ mysql -u root -p
mysql> change master to 
->          MASTER_HOST='192.168.1.2',
->          MASTER_USER='repl_user',
->          MASTER_PASSWORD='repl_pass',
->          MASTER_LOG_FILE='recorded_log_file_name',
->          MASTER_LOG_POS=recorded_log_position;
mysql> start slave;
  1. 最后可以检查从数据库的状态
mysql> show slave status;

你可能感兴趣的:(mysql主从配置具体流程(一))