CentOS6.7 mysql 主从配置

简介:

 

Mysql主服务器:

系统:CentOS 6.7(192.168.171.51)

主机名:balichvm.org

MySQL版本:5.6.26

 

 

Mysql主服务器:

系统:CentOS 6.7(192.168.171.50)

主机名:balichos.org

MySQL版本:5.6.26

 

 

配置主从前的准备:

1)、关闭selinux

vim /etc/sysconfig/selinux

 

#SELINUX=enforcing     #注释掉

#SELINUXTYPE=targeted  #注释掉

SELINUX=disabled  #增加

 

保存配置文件  :wq,然后重启系统,或者临时关闭:setenforce 0

 

2)、配置iptables,开启mysql默认的3306端口

vim /etc/sysconfig/iptables

 

-A INPUT -m state --state NEW -m tcp -p tcp--dport 3306 -j ACCEPT

 

然后重启服务,使之生效。 /etc/init.d/iptables restart

 

 

配置主从步骤:

1)分别把需要同步的数据库导入到主数据库(balichvm.org)和从数据库(balichos.org,因为做主从需要主从数据库的实例相同。这里是mbbalichdb

 

主数据库:

mysql -u root –p           #进入数据库的控制台

CREATE DATABASE mbalichdb;            #创建mbalichdb数据库

use mbalichdb;                 #进入数据库

source /root/mbalich.sql                   #还原数据库(导入备份文件到数据库)

 

 

从数据库:

mysql -u root –p             #进入数据库的控制台

CREATE DATABASE mbalichdb;       #创建mbalichdb数据库

use mbalichdb;         #进入数据库

source /root/mbalich.sql               #还原数据库(导入备份文件到数据库)

2)分别在主数据库和从数据库上修改配置文件

 

主数据库:

vim /usr/local/mysql/my.cnf

 

server_id=1     #需要唯一,要小于从数据库;如果有就不需要添加了

log-bin=mysql-bin                       #开启mysql二进制日志系统

binlog-do-db=mbalichdb                    #需要同步的数据库

binlog-ignore-db=mysql                     #不需要同步的数据库

 

保存配置文件,退出。然后重启mysql服务

/etc/init.d/mysqld restart

 

重新登录到Mysql控制台,为从数据库建立一个主从复制的帐号。

 

grant replication slave on *.* to'repl'@'192.168.171.50' identified by 'replbak.';

 

同时执行如下操作:

mysql> flush tables with read lock;               #锁住表,只可以读

Query OK, 0 rows affected (0.61 sec)

 

mysql> show master status;            #查看当前的状态,前两列需要用到

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB |Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 |      331 | mbalichdb    | mysql           |                   |

+------------------+----------+--------------+------------------+-------------------+

1 row in set (0.06 sec)

 

 

 

从数据库:

vim /usr/local/mysql/my.cnf

 

server-id=2                             #需要唯一,

log-bin=mysql-bin                    #开启mysql二进制日志系统

replicate-do-db=mbalichdb               #需要同步的数据库

replicate-ignore-db=mysql                #不需要同步的数据库

 

 

保存配置文件,退出。然后重启mysql服务

/etc/init.d/mysqld restart

 

 

3)在从服务器上配置主从同步

 

重启mysql服务后,再次进入mysql控制台,执行mysql主从同步。

mysql -u root –p       #进入mysql控制台

 

stop slave;                 #停止主从同步

mysql> change master to

master_host='192.168.171.51',

master_user='repl',

master_password='replbak.',

master_port=3306,

master_log_file='mysql-bin.000001',

master_log_pos=331;

 

 

上面的一条语句是主从同步的。

 

start slave;                #开启主从同步。

 

mysql> show slave status\G;           #查看主从是否同步

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

               Slave_IO_State: Connecting tomaster

                  Master_Host: 192.168.171.51

                  Master_User: repl

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000001

         Read_Master_Log_Pos: 331

               Relay_Log_File:balichOS-relay-bin.000001

                Relay_Log_Pos: 4

       Relay_Master_Log_File: mysql-bin.000001

            Slave_IO_Running: Yes

           Slave_SQL_Running: Yes

              Replicate_Do_DB: mbalichdb

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

              Relay_Log_Space: 120

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

Master_SSL_Verify_Server_Cert: No

                Last_IO_Errno: 1045

                Last_IO_Error: error connectingto master 'repl@192.168.171.51:3306' - retry-time: 60  retries: 2

               Last_SQL_Errno: 0

               Last_SQL_Error:

 Replicate_Ignore_Server_Ids:

            Master_Server_Id: 0

                  Master_UUID:

            Master_Info_File: /data/mysql/master.info

                    SQL_Delay: 0

         SQL_Remaining_Delay: NULL

     Slave_SQL_Running_State: Slave has read all relay log; waiting for theslave I/O thread to update it

          Master_Retry_Count: 86400

                  Master_Bind:

     Last_IO_Error_Timestamp: 151110 04:51:06

    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)

 

 

注意查看:Slave_IO_Running: YesSlave_SQL_Running: Yes

 

两个都是yes

 

 

 

4)测试主从同步

主数据库:

unlock tables;           #表解锁

 

mysql> use mbalichdb ;                      #切换数据库

Database changed

mysql> show tables;                           #查看当前数据库的表

+-----------------------+

| Tables_in_mbalichdb   |

+-----------------------+

| wp_commentmeta        |

| wp_comments           |

| wp_links              |

| wp_options            |

| wp_postmeta           |

| wp_posts              |

| wp_term_relationships |

| wp_term_taxonomy      |

| wp_terms              |

| wp_usermeta           |

| wp_users              |

+-----------------------+

11 rows in set (0.03 sec)

 

mysql>

 

mysql> create table wp_33(id int notnull primary key, name char(20));      #创建一张表。

 

 

从数据库:

mysql -u root –p                #登录到控制台

 

mysql> use mbalichdb;             #进入mbalichdb数据库

 

mysql> show tables;

+-----------------------+

| Tables_in_mbalichdb   |

+-----------------------+

| wp_33                 |

| wp_commentmeta        |

| wp_comments           |

| wp_links              |

| wp_options            |

| wp_postmeta           |

| wp_posts              |

| wp_term_relationships |

| wp_term_taxonomy      |

| wp_terms              |

| wp_usermeta           |

| wp_users              |

+-----------------------+

12 rows in set (0.00 sec)

 

在从数据库上有我们刚刚创建的wp_33表,说明可以同步了。


本文转自 巴利奇 51CTO博客,原文链接:http://blog.51cto.com/balich/1711627


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
1103 87
|
10月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
2519 16
|
10月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
1133 7
|
10月前
|
SQL 监控 关系型数据库
查寻MySQL或SQL Server的连接数,并配置超时时间和最大连接量
以上步骤提供了直观、实用且易于理解且执行的指导方针来监管和优化数据库服务器配置。务必记得,在做任何重要变更前备份相关配置文件,并确保理解每个参数对系统性能可能产生影响后再做出调节。
896 11
|
11月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
799 10
|
存储 Linux Apache
在CentOS上配置SVN至Web目录的自动同步
通过上述配置,每次当SVN仓库中提交新的更改时,`post-commit`钩子将被触发,SVN仓库的内容会自动同步到指定的Web目录,从而实现代码的连续部署。
335 16
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
860 9
|
Linux
Centos6配置阿里云yum源报错
在CentOS 6配置阿里云Yum源时,可能出现EPEL仓库访问报错(404 Not Found)。解决方法:编辑`/etc/yum.repos.d/epel.repo`文件,将`enabled`和`gpgcheck`参数设为0 ``` 此设置可解决仓库无法访问的问题。
2473 29
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
748 11
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
483 5