MYSQL 安装 主从复制

来源:互联网 发布:pxcook像素大厨 mac 编辑:程序博客网 时间:2024/06/04 19:51

1.安装

mysql

mysql-server

mysql-client

初次设置密码:

systemctl stop mysql
mysqld_safe –skip-grant & #打入后台

mysql
[mysql]> UPDATE user SET Password=password(‘mima’) WHERE User=’root’;

ps aux | grep mysql
kill -9 …..
systemctl start mysql

mysql -uroot -p新密码
[mysql]>set password=password(‘123456’);

2.同步

  • master:

vim /etc/my.cf

log-bin=mysql-bin   #启动二进制日志系统binlog-do-db=test   #二进制需要同步的数据库名,如果需要同步多个库,例如要再同步 westos                 库,再添加一行“binlog-do-db=westos”,以此类推server-id=1         #必须为 1 到 232–1 之间的一个正整数值binlog-ignore-db=mysql   #禁止同步 mysql 数据库

[mysql] GRANT REPLICATION SLAVE ON . TO redhat@’192.168.0.12’IDENTIFIED BY ‘redhat’;
[mysql] show master status;

  • slave

vim /var/my.cnf

server-id = 2  #集群中唯一的一个

mysql> change master to master_host=’192.168.0.11’, master_user=’redhat’,
master_password=’redhat’, master_log_file=’mysql-bin.000001’, master_log_pos=106;
mysql> start slave;
mysql> show slave status\G;

3.添加一个需要同步的新库

  1. 从服务上,停掉slave数据库。

stop slave;

  1. 主服务器上,导出新数据库。

mysqldump -uroot -p –master-data –single-transaction -R –databases [newdb] > newdb.sql

  1. 修改主服务器my.cnf文件

    主服务器上,修改my.cnf文件,添加新库到binlog-do-db参数,重启mysql。

  2. 查找当前的日志文件以及位置

    • 在导出的newdb.sql里面查找当前的日志文件以及位置(change master to …)
      然后让slave服务器执行到这个位置。

从库:

mysql> star slave until MASTER_LOG_FILE=”mysql-bin.000001”, MASTER_LOG_POS=120;
mysql> stop slave

其中MASTER_LOG_FILE以及MASTER_LOG_POS在导出的数据库newdb.sql顶部位置查找。

此时slave为打开状态,记得将其关闭。

  1. 导入新库到从服务器上。

mysql < newdb.sql

  1. 启动从服务器

start slave

数据库恢复

  • 数据库复制 一个时间段:

mysqlbinlog –start-datetime=’2016-10-18 15:26:33’ mysql-bin.000009 | mysql -uroot -p

报错问题
Slave_SQL_Running: No

1.程序可能在slave上进行了写操作
2.也可能是slave机器重起后,事务回滚造成的.

一般是事务回滚造成的:
* 解决办法一:

mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;


  • 解决办法二、
    首先停掉Slave服务:

mysql> slave stop;
到主服务器上查看主机状态:
记录File和Position对应的值
进入master
mysql> show master status;

然后到slave服务器上执行手动同步:

mysql> change master to
master_host=’master_ip’,
master_user=’redhat’,
master_password=’redhat’,
master_port=3306,
master_log_file=localhost-bin.000094’,
master_log_pos=33622483 ;

原创粉丝点击