博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql搭建主从数据库及测试(ubuntu)
阅读量:7080 次
发布时间:2019-06-28

本文共 3690 字,大约阅读时间需要 12 分钟。

  hot3.png

##优势

  1. 多服务器间数据实时同步
  2. 可实现数据读写分离或负载均衡,主数据库压力较大时将部分查询转至从数据库处理。由此减少数据库压力,增加应对并发能力
  3. 从库除了作为reader外,也可作为灾备适用,增加数据安全性

##准备

  • ubuntu(主:14.04,从:16.04)
  • mysql5.7

安装

安装数据库

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

配置主数据库

  1. 创建用于获取主数据库数据的用户,既从库访问主库时要用到的用户(我创建的是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';
  1. 修改配置文件mysqld.cnf
sudo cd /etc/mysql/mysql.confsudo vi mysqld.cnf

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

server-id=1log-bin=master-binlog-bin-index=master-bin.index
  1. 重启数据库
sudo service mysql restart
  1. 查看状态
mysql> show master status;

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

配置从数据库

  1. 修改配置文件mysqld.cnf
sudo cd /etc/mysql/mysql.confsudo vi mysqld.cnf

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

server-id=2relay-log-index=slave-relay-bin.indexrelay-log=slave-relay-bin
  1. 重启数据库
  2. 连接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;
  1. 查看同步状态
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: 0Master_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:
到这里就算完成了,下面测试

##测试

  1. master中创建一个数据库,查看slave是否同步
  2. master的数据库中建一张表,查看slave是否同步
  3. master中在表中增加数据,查看salve是否同步
  4. master数据增删改操作,查看slave是否同步

. . . . . .

.

.

.

.

.

转载于:https://my.oschina.net/chaon/blog/852680

你可能感兴趣的文章
获取系统特殊文件
查看>>
C语言中的for命令
查看>>
Hash算法
查看>>
urlWithString、fileURLWithPath的区别
查看>>
Elasticsearch
查看>>
【ASM内部原理】_asm_kill_unresponsive_clients & _asm_healthcheck_timeout
查看>>
基于业务单元的开发与部署模式
查看>>
WCF 无法激活服务,因为它不支持 ASP.NET 兼容性
查看>>
爱阅读,经典编程图书分享
查看>>
oracle checkpoint
查看>>
流程图与代码的重构
查看>>
Shell 编程基础(三)
查看>>
phpRedisAdmin安装与配置
查看>>
我的友情链接
查看>>
OpenStack服务组件
查看>>
java中substring的用法
查看>>
Mysql DBA 高级运维学习之路-Mysql常见多实例配置方案及多实例安装
查看>>
800号业务和400号业务
查看>>
dns配置
查看>>
VMware Horizon View 5.x系列之使用Linked Clone配置Automated Pools
查看>>