MySQL 5.6 的MASTER – SLAVE 主从实例配置及切换 (一)
来源:互联网 发布:软件流程图模板 编辑:程序博客网 时间:2024/05/20 00:51
MySQL 5.6 的MASTER– SLAVE主从实例配置及切换 (一)
1. 任务目标
近期在研究openstack中的trove,涉及到mysql 的 主从热备的部署和切换,
由于流程复杂,为了更好的理解,直接在Linux上部署,测试一下。
2. 参考
a)MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解2016/5/6
http://m.blog.csdn.net/article/details?id=51331244
b)Windows下搭建MySQLMaster Slave 2013-08-09
http://www.cnblogs.com/gaizai/p/3248207.html
c)SHOWSLAVE STATUS 详解2012-02-16
http://blog.csdn.net/shiqidide/article/details/7263652
3.测试环境
机器1: 10.0.0.213
机器2:10.0.0.195
需要注意是防火墙
使用的linux变种是AmazonLinux AMI
安装mysql:
yuminstall -y mysql56-server mysql
关闭防火墙:
serviceiptables stop
这个变种版本没有配置Selinux
检测两台机器间能否ping通。
4.配置MYSQL
在Linux环境下MySQL的配置文件的位置是在/etc/my.cnf
创建数据库
createdatabase userdb;
4.I配置MASTER
MYSQL的root用户的密码初始为空,需要更改为123456,命令参考如下
[root@ip-10-0-0-213etc]# mysqladmin -u root -p password 123456
Enterpassword:
Warning:Using a password on the command line interface can be insecure.
[root@ip-10-0-0-213etc]#
配置文件内容如下
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-linksis recommended to prevent assorted security risks
symbolic-links=0
# Settings user and groupare ignored when systemd is used.
# If you need to run mysqldunder a different user or group,
# customize your systemdunit file for mysqld according to the
# instructions inhttp://fedoraproject.org/wiki/Systemd
log-bin=mysql-bin
server-id=213
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
# 指定需要同步的数据库
binlog-do-db=userdb
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
重启服务servicemysqld restart
赋予从库权限帐号
mysql-u root -p123456
mysql>
mysql>GRANT FILE ON *.* TO 'root'@'10.0.0.195' IDENTIFIED BY 'mysqlpassword';
QueryOK, 0 rows affected (0.00 sec)
mysql>GRANT REPLICATION SLAVE ON *.* TO 'root'@'10.0.0.195' IDENTIFIED BY'mysql password';
QueryOK, 0 rows affected (0.00 sec)
mysql>FLUSH PRIVILEGES;
QueryOK, 0 rows affected (0.00 sec)
mysql>
重启服务,查看主库信息,参考如下:
mysql>show master status;
+------------------+----------+--------------+----------------------------------+-------------------+
|File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+----------------------------------+-------------------+
|mysql-bin.000002 | 120 | userdb |information_schema,cluster,mysql | |
+------------------+----------+--------------+----------------------------------+-------------------+
1row in set (0.00 sec)
mysql>
4.II配置SLAVER
配置文件内容
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
#Disabling symbolic-links is recommended to prevent assortedsecurity risks
symbolic-links=0
#Settings user and group are ignored when systemd is used.
# Ifyou need to run mysqld under a different user or group,
#customize your systemd unit file for mysqld according to the
#instructions in http://fedoraproject.org/wiki/Systemd
log-bin=mysql-bin
server-id=195
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
#指定需要同步的数据库
replicate-do-db=userdb
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
重启服务servicemysqld restart
修改对应的MASTER信息
mysql>show slave status;
Emptyset (0.00 sec)
mysql>
mysql>stop slave;##关闭Slave
QueryOK, 0 rows affected, 1 warning (0.00 sec)
mysql>change master tomaster_host='10.0.0.213',master_user='root',master_password='mysqlpassword',master_log_file='mysql-bin.000004',master_log_pos=120;##粗体蓝色部分,对应Master输出信息
QueryOK, 0 rows affected, 2 warnings (0.04 sec)
mysql>start slave;##开启Slave
QueryOK, 0 rows affected (0.01 sec)
查看从库信息,输出参考如下
mysql> show slave status\G;
***************************1. row ***************************
Slave_IO_State:Waiting for master to send event
Master_Host:10.0.0.213
Master_User:root
Master_Port:3306
Connect_Retry:60
Master_Log_File:mysql-bin.000004
Read_Master_Log_Pos:120
Relay_Log_File:mysqld-relay-bin.000002
Relay_Log_Pos:283
Relay_Master_Log_File:mysql-bin.000004
Slave_IO_Running:Yes
Slave_SQL_Running:Yes
Replicate_Do_DB:userdb
Replicate_Ignore_DB:mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:0
Last_Error:
Skip_Counter:0
Exec_Master_Log_Pos:120
Relay_Log_Space:457
Until_Condition:None
Until_Log_File:
Until_Log_Pos:0
Master_SSL_Allowed:No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:0
Master_SSL_Verify_Server_Cert:No
Last_IO_Errno:0
Last_IO_Error:
Last_SQL_Errno:0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id:213
Master_UUID:767e164f-0932-11e7-942a-0e8f186b32da
Master_Info_File:/var/lib/mysql/master.info
SQL_Delay:0
SQL_Remaining_Delay:NULL
Slave_SQL_Running_State:Slave has read all relay log; waiting for the slave I/O thread toupdate it
Master_Retry_Count:86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position:0
1 row in set (0.00 sec)
ERROR:
No query specified
mysql>
5. 测试
5.I 写MASTER
mysql> use userdb;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql> create tabletest1( id int, name char(20) );
Query OK, 0 rows affected(0.27 sec)
mysql> insert into test1( id, name ) values ( 1, 'unknown');
Query OK, 1 row affected(0.02 sec)
mysql>
5.II 读SLAVE
mysql> use userdb;
Reading table informationfor completion of table and column names
You can turn off thisfeature to get a quicker startup with -A
Database changed
mysql> show tables;
+------------------+
| Tables_in_userdb |
+------------------+
| test1 |
+------------------+
1 row in set (0.00 sec)
mysql>
mysql> show columns from test1;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null |Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | char(20) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)
mysql> select * fromtest1;
Empty set (0.00 sec)
mysql> select * fromtest1;
+------+---------+
| id | name |
+------+---------+
| 1 | unknown |
+------+---------+
1 row in set (0.00 sec)
mysql>
进一步
a) 没有测试,如果SLAVE中没有创建对应的数据库userdb的情况下,能够自动创建?
- MySQL 5.6 的MASTER – SLAVE 主从实例配置及切换 (一)
- MySQL 5.6 的MASTER – SLAVE 主从实例配置及切换 (二)
- mysql 主从配置(master/slave)
- 主从 mysql (master slave) 复制原理及配置
- mysql的master和slave主从服务器的配置
- 主从配置master宕机slave库切换为master配置
- MySQL数据库主从(Master/Slave)同步安装与配置
- MySql 5.7 主从库配置方案(Master/Slave)
- linux配置mysql主从--master and slave
- MySQL的主从使用 Master/Slave
- MySQL主从(Master-Slave)复制
- mysql主从复制(master/slave)
- MySQL主从复制(Master-Slave)
- mysql主从复制(master-slave)实录
- Mysql Master/Slave的配置
- redis 配置主从(master-slave)服务器
- MySQL-(Master-Slave)配置
- Mysql的Master与Slave基本原理及配置
- android程序中调用shell命令
- Java设计模式-单例模式
- opencv python 图像二值化
- HDU 1536 S-Nim (SG函数)
- mysql 安装 和解决navicat 10061 1045错误
- MySQL 5.6 的MASTER – SLAVE 主从实例配置及切换 (一)
- JavaScript事件
- android:layout_alignleft layout_toleftof 使用,详解RelativeLayout布局属性 ,搜索xm布局
- MFC在状态栏中使用进度条控件
- C++map实现
- Jar包进程Kill前处理完未完成的业务代码
- L2-013. 红色警报
- 蓝桥——未名湖边的烦恼(DP)
- Linux入门