主从库配置过程记录备忘

背景介绍:某系统的数据库服务在 193.167.18.114上,计划将数据库服务(mysql)进行迁移,并做主从库配置。
新的数据库服务如下:
193.167.18.116 配置为mysql主服务器
193.167.18.118 配置为mysql从服务器

如下为迁移步骤【以 dict 数据库 为例】
一、【暂停 某系统服务】
二、【从 18.114 复制数据到 18.116】
(1)在18.116创建数据库 dict
(2)ssh连接到18.114,然后执行如下命令
mysqldump dict -uroot -p123456 --opt | mysql -h 193.167.18.116 -uroot -p123456 dict
三、【从 18.114 复制数据到 18.118】
(1)在18.118创建数据库 dict
(2)ssh连接到18.114,然后执行如下命令
mysqldump dict -uroot -p123456 --opt | mysql -h 193.167.18.118 -uroot -p123456 dict

四、【修改master服务器配置 (116)】
vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin #必选项,启用二进制日志,值为日志文件名前缀,该日志文件存储位置为mysql数据库目录
server-id=116 #必选项,服务器唯一ID,默认是1,一般取IP最后一段
binlog-do-db=dict #可选项,需要同步的数据库,如果没有本行,即表示同步所有的数据库
保存文件

五、【在主服务器 18.116上创建复制账户】
在ssh 18.116连接窗口输入如下命令
mysql -uroot -p
123456
进入mysql命令行
mysql>CREATE USER ‘recover’@’%’ IDENTIFIED BY ‘123456’;
GRANT REPLICATION SLAVE ON . TO ‘recover’@’%’
flush privileges;
六、【重启18.116 mysql服务】
service mysql restart

七、【登录master服务器(116)的mysql,查看master状态】
mysql>show master status;
±-----------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±-----------------±---------±-------------±-----------------+
| mysql-bin.000001 | 120 | | |
±-----------------±---------±-------------±-----------------+
八、【配置从机 118】
mysql>change master to master_host=‘193.167.18.116’,master_user=‘recover’,master_password=‘123456’,master_log_file=‘mysql-bin.000001’,master_log_pos=120;#连接master
mysql>start slave; #启动slave的复制功能

九、【登录slave(118)的mysql,查看从库状态】
mysql>show slave status\G; #以下是部分结果
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event#从库状态,已连上主库
Master_Host: 193.168.18.116#master地址
Master_User: mymaster#master用户
Master_Port: 3306#master端口
Connect_Retry: 60#重试时间,默认是60秒
Master_Log_File: mysql-bin.000001#master的binlog文件名
Read_Master_Log_Pos: 1556#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos
Slave_IO_Running: Yes#必须为Yes,此线程把master段的日志写到本地
Slave_SQL_Running: Yes#必须为Yes,此线程把写到本地的日志应用于数据库
Replicate_Do_DB:#同步数据库名(如果有)
Replicate_Ignore_DB: #忽略数据库名(如果有)
Exec_Master_Log_Pos: 1556#执行同步命令的位置
Last_IO_Errno: 0#最近IO出错位置
Last_IO_Error: #最近IO出错信息
Last_SQL_Errno: 0#最近SQL出错位置
Last_SQL_Error: #最近SQL出错信息
Master_Server_Id: 112#master服务器ID
Master_Info_File: /data/mysqldb/master.info#master.info文件位置,位于该slave中
1 row in set (0.00 sec)
如果Slave_IO_Running和Slave_SQL_Running均为Yes,则slave配置完成
以上仅为配置过程,关于主从库配置的总结及深入学习心得,待续。

猜你喜欢

转载自blog.csdn.net/qq_16813509/article/details/87805317