mysql搭建主从的目的_MySQL主从搭建及详细

工作需要搭建MySQL主从服务器,以达到数据库备份及应急目的....

声明:自己接触Linux方面搭建服务器方面知识比较少,在linux上操作过仅仅是搭建过PHP环境LAMP(编译安装),基本都是靠万能的搜索引擎协助完成,下面是自己搭建过程的记录:

Q:MySQL主从是什么意思?作用是?原理是?如何实现?【就像是大门保安都会问一句富有哲理的问题:你从哪里来? 要到哪里去?】

A:MySQL主从:两台主机master和slave,实现同步备份数据库,读写分离等等.....(详细请戳 http://my.oschina.net/cimu/blog/165019)【先利用搜索引擎把概念和原理搞清楚,让自己有个大概的认识,然后再去动手实践】

环境准备(Linux都是CentOS release 6.4 Final):

①、mysql-5.5.33.tar.gz(http://mysql.llarian.net/Downloads/MySQL-5.5/mysql-5.5.33.tar.gz)提示:安装ncurses-devel包

②、cmake (mysql5.5以上版本都需要cmake来配置)提示安装gcc-c++包

配置MySQL出现错误:

mysql启动失败 The server quit without updating PID file

******一度重装cmake和mysql达N次(想重装系统的心都有了),网上搜索答案许久,一堆解决方法如下:********

① 1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限

解决方法 :给予权限,执行 chown -R mysql:mysql /var/data chmod -R 755 /usr/local/mysql/data然后重新启动mysqld!

② 可能进程里已经存在mysql进程

解决方法:用命令ps -ef|grep mysqld查看是否有mysqld进程,如果有使用kill -9 进程号杀死,然后重新启动mysqld!

③ 可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。

解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !

④ mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。

解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

⑤ skip-federated字段问题

解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧

⑥ 错误日志目录不存在

解决方法:使用chown chmod命令赋予mysql所有者及权限

⑦ selinux惹的祸,如果是centos系统,默认会开启selinux

解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。但是没有解决,最后直接给/usr/local/mysql/data 目录 chmod 777 -R /usr/local/myql/data 问题解决应该是权限问题,不能生成localhost.localdomain.pid 文件

配置单向主从服务器:

① 设置配置文件vi /etc/my.cnf

server-id=1 #【必须】服务器ID,一般取IP地址末段(默认开启为1)

log-bin=mysql-bin #【必须】启动二进制文件,主服必须开启(默认开启)

binlog_format=mixed #复制类型

主服务器还要添加以下参数:

-------------------------------------------------------------------------

binlog-do-db=bss_box #需要复制的数据库【按需要填写】

binlog-ignore-db=XXX #需要忽略的复制数据库【选填】

-------------------------------------------------------------------------

从服务器选填参数:

-------------------------------------------------------------------------

replicate-do-db=bss_box #需要同步主服的数据库【选填】

replicate-ignore-db=XXX #需要忽略同步主的数据库【选填】

-------------------------------------------------------------------------

② 授权从服务器(mysql -uroot -p 在主服上执行)

grant replication slave on *.* to 'backup'@'192.168.5.167' identified by 'backup';

show master status; #记录master的File和Position

③ 设置从服务器(mysql -uroot -p 在从服务执行)

change master to master_host='192.168.5.19',master_user='backup',master_password='backup',master_log_file='mysql

bin.000001',master_log_pos=107;

start slave; #开启slave

show slave status\G; #查看salve状态【Slave_IO_Running: Yes】【Slave_SQL_Running: Yes】都为Yes表示已经成功

配置双向主从服务器:

①. 主服务器上配置/etc/my.cnf

server-id=19     //ip的最后一段

binlog_formate=mixed     //复制的类型

binlog-do-db=bss_box     //需要复制数据库【不填的话,更新其他数据库数据会影响file和position】

binlog-ignore-db= XXXX     //忽略复制数据库,选填项

replicate-do-db=bss_box     //slave同步的数据库【指定同步主数据库数据】

replicate-ignore-db=XXXXX     //slave忽略数据库,选填项

②. 从服务器上配置/etc/my.cnf(同上)

保证主从需要复制同步的数据库数据一致

③. 主从数据库:mysql -uroot -p

各自授权同步账号和设置同步主服务器参数

grant replication slave on *.* to 'backup'@'192.168.5.xx' identified by 'backup';

show master status;     //记录file和position

change master to master_host='192.168.5.xx',master_user='backup',master_password='backup',master_log_file='mysql-bin.000001',master_log_pos=107;

start slave;

show slave status\G;

测试...

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值