码迷,mamicode.com
首页 > 数据库 > 详细

ubuntu 14 mysql 主从数据库热备实验

时间:2015-08-21 17:37:02      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

0安装数据库

sudo apt-get install mysql -server

设置root密码

1登入mysql数据库 创建用户


etc/init.d/mysql start

 mysql -uroot -p密码;

insert into mysql.user(Host,User,Password) values("%","dba",password("123456"));

grant all privileges on *.* to ‘dba‘@‘%‘ identified by ‘123456‘;

SELECT DISTINCT CONCAT(‘User: ‘‘‘,user,‘‘‘@‘‘‘,host,‘‘‘;‘) AS query FROM mysql.user;

flush privileges;


配置主服务器my.conf文件

找到[mysqld]设置

server-id        = 1 id设置不能相同。
log_bin            = /var/log/mysql/mysql-bin.log
expire_logs_days    = 10
max_binlog_size         = 100M
#binlog_do_db        = include_database_name
binlog_do_db            =hnswls 需要同步的数据库名称

log-slave-updates ‘‘这个参数一定要加上,否则不会给更新的记录添加到到二进制文件里

slave-skip-errors                  ‘’跳过错误,继续执行复制操作

#binlog_ignore_db    = include_database_name不需要同步的数据库名称

修改从服务器my.conf文件

server-id  =2

log_bin=/var/log/mysql/mysql-bin.log

replicate-do-db=hnswls

log-slave-updates

master-host=192.168.101.171 指定主服务器的ip

master-user=dba 主服务器已授权用户

master-password=123456密码

master-port=3306端口

master-connect-retry=30如果从服务器发现主服务器断掉,重新连接的时间差(秒)

replicate-ignore-db=不需要同步的数据库名称

从服务器指定新的位置重新同步

有的时候主从同步有问题了以后,需要从log位置的下一个位置进行同步,相当于跳过那个错误,这时候也可以使用CHANGE MASTER命令来处理,只要找到对应的LOG位置就可以,比如:

CHANGE MASTER TO MASTER_HOST=‘ip地址‘,MASTER_USER=‘用户名‘,MASTER_PASSWORD=‘123456‘,MASTER_LOG_FILE=‘mysql-bin.000006‘, MASTER_LOG_POS=106;

重启从服务器数据库

启动slave_IO_Running Slave_SQL_Running 进程

这里介绍一些管理MYSQL主从同步的命令:

1.  停止MYSQL同步

STOP SLAVE IO_THREAD;    #停止IO进程

STOP SLAVE SQL_THREAD;    #停止SQL进程

STOP SLAVE;                               #停止IO和SQL进程

2.  启动MYSQL同步

START SLAVE IO_THREAD;    #启动IO进程

START SLAVE SQL_THREAD;  #启动SQL进程

START SLAVE;                             #启动IO和SQL进程

3.   重置MYSQL同步

RESET SLAVE;


查看MYSQL同步状态 SHOW SLAVE STATUS;

看到

   Slave_IO_Running: Yes

          Slave_SQL_Running: Yes

则配置成功


测试主从服务器是否能同步

在主服务器上面新建一个表,必须在hnswls数据下

mysql> use repl

Database changed

mysql> create table test(id int,name char(10));

Query OK, 0 rows affected (0.00 sec)

 

mysql> insert into test values(1,‘zaq‘);

Query OK, 1 row affected (0.00 sec)

 

mysql> insert into test values(1,‘xsw‘);

Query OK, 1 row affected (0.00 sec)

 

mysql> select * from test;

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

| id    | name |

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

|    1    | zaq   |

|    1    | xsw |

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

2 rows in set (0.00 sec)

 

 

 

在从服务器查看是否同步过来

mysql> use hnswls;

Database changed

mysql> select * from test;

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

| id    | name |

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

|     1 | zaq   |

|     1 | xsw |

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

2 rows in set (0.00 sec)

ubuntu 14 mysql 主从数据库热备实验

标签:

原文地址:http://my.oschina.net/duguaoxue/blog/495545

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!