centos 下配置主从

Mysql主从方案介绍mysql主从方案主要作用:
读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。
发扬不同表引擎的优点。目前Myisam表的查询速度比innodb略快,而写入并发innodb比myIsam要好。那么,我们可以使用innodb作 为master,处理高并发写入,使用master作为slave,接受查询。或在myisam slave中建立全文索引,解决innodb无全文索引的弱点。
热备,slave和master的数据“准实时”同步。
准备工作。先分别安装两台MYSQL
配置MASTER。找到my.cnf文件,修改:

server-id                = 1
log_bin                        = /var/log/mysql/mysql-bin.log
expire_logs_days        = 10
max_binlog_size         = 100M
binlog_do_db                = DB_AdidasFootball
binlog_do_db                = DB_CodeBuilder
binlog_ignore_db        = test

其中,作为主机,server-id必须为1.
binlog_do_db为需要复制的db。 binlog_ignore_db为忽略复制的db。需要增加DB的话,就增加相应的一行。
重启master数据库,运行检查:

mysql> show master status; #检查是否以master形式启动了。
+------------------+----------+----------------------------------+------------------+
| File             | Position | Binlog_Do_DB                     | Binlog_Ignore_DB |
+------------------+----------+----------------------------------+------------------+
| mysql-bin.000002 |     1087 | DB_AdidasFootball,DB_CodeBuilder | test             |
+------------------+----------+----------------------------------+------------------+
1 row in set (0.00 sec)

mysql> show variables like "%log%";
#需要看到这样的一行,说明binlog已经开启了: log_bin | ON

在master上为slave建立用户

mysql> grant replication slave, reload, super on *.* to ‘slave‘@‘10.*‘ identified by ‘123456‘;

注意:10.*这里是ip 即从库的ip 192.168.1.2

这样,主机配置完毕。

配置slave

server-id = 2  #随便什么数字,多台slave注意不能为重复就可以了。
#log_bin = /var/log/mysql/mysql-bin.log #slave的binlog就没有必要再开启了。注释掉。
master-host = 192.168.0.3    #master的IP
master-user = slave        #上面操作中,建立的用户名
master-password = 123456       #上面操作中,建立的密码

重启slave, 检查salve状态

slave:mysql> show slave status;
#很多很多列
slave:mysql>stop slave;   #停掉slave的复制先。
slave:mysql>change master to master_host=‘192.168.1.2‘ , 
master_user=‘slave‘ , master_password=‘123456‘ , 
master_log_file=‘mysql-bin.000014‘ ,  master_log_pos=279;#更新master 
slave:mysql>start slave; #启动slave的复制。
slave:mysql>show slave status; #查看slave状态,包含两个YES则成功了。

接下来,将主机数据 copy 过来这个流程比较复杂:)各个步骤注意所在的机器

slave:mysql> stop slave;   #停掉slave的复制先。

master:mysql> flush tables with read lock; #锁掉master服务器的所有表,禁止写入。

master:mysql> show master status; #还是上面的语句,查看并记录下 File mysql-bin.000002, Position 1087
+------------------+----------+----------------------------------+------------------+
| File             | Position | Binlog_Do_DB                     | Binlog_Ignore_DB |
+------------------+----------+----------------------------------+------------------+
| mysql-bin.000002 |     1087 | DB_AdidasFootball,DB_CodeBuilder | test             |
+------------------+----------+----------------------------------+------------------+
1 row in set (0.00 sec)

[email protected]:~$ mysqldump AdidasFootball > AdidasFootball.sql  #在命令行中导出DB的数据,这里是bash操作:)

master:mysql> unlock tables; #导出完成之后,解锁。 master可以继续跑起来了。

[email protected]:~$ mysql AdidasFootball < AdidasFootball.sql  #在slave的命令行中导入DB的数据,这里又是bash操作:)

slave:mysql> change master to
    -> master_log_file=‘mysql-bin.000002‘,  #将这里修改为刚记录下来的数据
    -> master_log_pos=1087;   #还有这里

slave:mysql> start slave;

完成。
注意事项 从机必须有其需要的数据库,才能够进行同步,否则会忽略。

时间: 2024-10-15 21:58:51

centos 下配置主从的相关文章

centos下MySQL主从同步配置

centos下MySQL主从同步配置一.环境 主机: master操作系统:centos 5.3 IP:192.168.1.222 MySQL版本:5.0.77 从机: slave操作系统:centos 5.3 IP:192.168.1.220 MySQL版本:5.0.77 二.创建数据库 分别登录master机和slave机的mysql:mysql –u root –p 创建数据库:create database repl; 三.master机和slave机的相关配置 1.修改master机器

CentOS下配置iptables防火墙 linux NAT(iptables)配置

CentOS下配置防火墙 配置nat转发服务CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/sysconfig/network   这里可以更改主机名称. NETWORKING=yesNETWORKING_IPV6=noHOSTNAME=BGI-TJ.localdomain GATEWAY=192.168.11.1(超算网关) 2.vim /etc/sysconfig/network-scripts/

CentOS下配置VPN客户端

今天想在centos下创建个vpn连接,可谁知点击打开后无法添加vpn连接...悲剧了... 后来在网上找到如下资料解决了...呵呵... 注意,当安装好如下软件包后,点击添加vpn时,记得网关填写的是vpn的地址... 原因:缺少相关软件包 1. Point-to-Point Tunneling Protocol(PPTP) Client 2. NetworkManager vpn plugin for pptp 解决方法: 1. 有EPEL更新源 (EPEL更新源配置http://blog.

CentOS下配置安装Nagios

CentOS下配置安装Nagios 一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios原名为NetSaint,由Ethan Galstad开发并维护至今.NAGIOS是一个缩写形式: "Nagios Ain't GonnaInsist On Sainthood"

CentOS下配置JDK

下面详细说一下CentOS下配置JDK的过程 首先按照约定俗成的习惯,将jdk放在/usr/local/java下,首先进入/usr/local然后新建一个目录java 然后我们需要下载最新的jdk程序包,可以在本地下载好然后上传到服务器中也可以在服务器中直接下载,如果在本地下载,应该访问Oracle官网下载页面 网址是:http://www.oracle.com/technetwork/java/javase/downloads/index.html 点击Java Platform (JDK)

CentOS下配置phpMyAdmin

本文出自:http://blog.csdn.net/svitter 引文出自:http://hi.baidu.com/owbtkcjhtmaeuyr/item/175d53ff2ad985b231c1991e 解决apache启动错误"httpd:Could not reliably determine..." locate httpd.conf vim httpd.conf 在#ServerName www.example.com:80下添加: ServerName localhos

Centos下配置php环境

Centos下配置php环境 目录[-] 环境: GD2 2 安装PHP 5.2.14(FastCGI模式) 1)编译安装PHP 5.2.14所需的支持库: 2)编译安装MySQL 5.5.3-m3 ①.创建MySQL数据库存放目录 ②.以mysql用户帐号的身份建立数据表: ③.创建my.cnf配置文件: php安装 4)编译安装PHP5扩展模块 1.安装Nginx所需的pcre库: 5)修改php.ini文件 7)创建www用户和组,以及供book.zhiyin.com和www.zhiyin

centos下配置sftp且限制用户访问目录

第一步:创建sftp服务用户组,创建sftp服务根目录 groupadd sftp #此目录及上级目录的所有者(owner)必须为root,权限不高于755,此目录的组最好设定为sftp mkdir /srv/sftp chown -R root:sftp /srv/sftp chmod -R 0755 /srv/sftp 第二步:备份sshd配置文件然后编辑 mv /etc/ssh/sshd_config ~/backup/sshd_config_xxx vim /etc/ssh/sshd_c

CentOS下配置防火墙 配置nat转发服务

CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/sysconfig/network   这里可以更改主机名称. NETWORKING=yesNETWORKING_IPV6=noHOSTNAME=BGI-TJ.localdomain GATEWAY=192.168.11.1(超算网关) 2.vim /etc/sysconfig/network-scripts/ifcfg-eth0  第一块网卡. Bro