mysql5.6在线搭建从库_mysql搭建主从数据库及测试(ubuntu)

##优势

多服务器间数据实时同步

可实现数据读写分离或负载均衡,主数据库压力较大时将部分查询转至从数据库处理。由此减少数据库压力,增加应对并发能力

从库除了作为reader外,也可作为灾备适用,增加数据安全性

##准备

ubuntu(主:14.04,从:16.04)

mysql5.7

安装

安装数据库

在两台服务器上都装上mysql,具体可参考另外一篇博文:

配置主数据库

创建用于获取主数据库数据的用户,既从库访问主库时要用到的用户(我创建的是slave,密码123456)

mysql> create user slave; //创建新用户

//repl用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。说明一下192.168.1.%,这个配置是指明repl用户所在服务器,这里%是通配符,表示192.168.1.0-192.168.1.255的Server都可以以repl用户登陆主服务器。当然你也可以指定固定Ip。

mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.%' IDENTIFIED BY '123456';

修改配置文件mysqld.cnf

sudo cd /etc/mysql/mysql.conf

sudo vi mysqld.cnf

将以下几行写入到[mysqld]的下方

server-id=1

log-bin=master-bin

log-bin-index=master-bin.index

重启数据库

sudo service mysql restart

查看状态

mysql> show master status;

这里主要记住File和Position两个值,配置从库时会用到

配置从数据库

修改配置文件mysqld.cnf

sudo cd /etc/mysql/mysql.conf

sudo vi mysqld.cnf

将以下几行写入到[mysqld]的下方

server-id=2

relay-log-index=slave-relay-bin.index

relay-log=slave-relay-bin

重启数据库

连接master

mysql>change master to master_host='192.168.1.105',

master_port=3306,

master_user='slave',

master_password='123456',

master_log_file='master-bin.000003',

master_log_pos=1993;

注释: change master to master_host='master所在服务器的IP', master_port=master所在服务器的端口, master_user='同步用户名', master_password='同步用户密码', //下面连个值是在master中查看状态中查出来的两个值 master_log_file='master-bin.000003', master_log_pos=1993; 4. 开始同步

mysql>start slave;

查看同步状态

mysql>show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.1.105

Master_User: slave

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: master-bin.000003

Read_Master_Log_Pos: 3245

Relay_Log_File: slave-relay-bin.000002

Relay_Log_Pos: 1423

Relay_Master_Log_File: master-bin.000003

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

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: 3245

Relay_Log_Space: 1630

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: 1

Master_UUID: 99c5977c-0228-11e7-935e-080027258c14

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 more updates

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

Replicate_Rewrite_DB:

Channel_Name:

Master_TLS_Version:

到这里就算完成了,下面测试

##测试

master中创建一个数据库,查看slave是否同步

master的数据库中建一张表,查看slave是否同步

master中在表中增加数据,查看salve是否同步

master数据增删改操作,查看slave是否同步

. . . . . .

.

.

.

.

.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值