您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

进击的MysqlSlave环境搭建及配置

2024/3/22 19:19:48发布19次查看
一)环境拓扑今天讨论的是mysql集群这一块,资源如下所示:二)mysql安装配置这里不一一赘述,可以选择源代码编译安装,也可以参考我之前的一篇博文“懒人“速成
一)环境拓扑
二)mysql安装配置
   这里不一一赘述,可以选择源代码编译安装,也可以参考我之前的一篇博文“懒人“速成——linux lamp环境。
三)节点配置
主节点:
   1.首先在数据库中建立2个数据库和表:
#service mysqld start#mysqlmysql>create database www;mysql>use www;mysql>create table www(id int);mysql>insert into www values(1);mysql> select * from www;    查看数据: ;
同理创建blog数据库和表:
mysql>create database blog;mysql>use blog;mysql>create table blog(id int);mysql>insert into blog values(1);mysql> select * from blog;
2.修改my.cnf配置文件
vi etc/my.cnf[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0log-bin=mysql-bin//日志为2进制,不需要更改server-id =1//为1就是master,不需要更改binlog-do-db=blog//需要同步的库binlog-do-db=www//需要同步的库binlog-ignore-db=mysql,test,information_schema //不需要记录日志的数据库名,多个数据库中间用逗号(,)隔开innodb_data_home_dir = /usr/local/mysql/data///innodb的表空间位置innodb_data_file_path = ibdata1:50m:autoextend//表空间的名字,开始50minnodb_log_group_home_dir = /usr/local/mysql/data/innodb_buffer_pool_size = 256m//为系统内存的50-80%innodb_additional_mem_pool_size = 20minnodb_log_file_size = 64minnodb_log_buffer_size = 8minnodb_flush_log_at_trx_commit = 1innodb_lock_wait_timeout = 50[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid    3.重启数据库
[root@test01 /]# service mysqld restart
stopping mysqld: [ ok ]starting mysqld: [ ok ]4.创建有权限的账号,让slave数据库访问主数据库
[root@test01 /]# mysql -u root -penter password:welcome to the mysql monitor. commands end with ; or \g.your mysql connection id is 3server version: 5.1.69-log source distributioncopyright (c) 2000, 2013, oracle and/or its affiliates. all rights reserved.oracle is a registered trademark of oracle corporation and/or itsaffiliates. other names may be trademarks of their respectiveowners.type 'help;' or '\h' for help. type '\c' to clear the current input statement.mysql>
mysql> grant replication slave on *.* to repl@192.168.1.26 identified by '123456';query ok, 0 rows affected (0.00 sec)
mysql>flush privileges;;  5.备份master数据库
mysql> flush tables with read lock; //不要退出这个终端,否则这个锁就不生效了。同时取得快照,并记录日志和偏移量:mysql> show master status;+------------------+----------+--------------+-------------------------------+| file| position | binlog_do_db | binlog_ignore_db|+------------------+----------+--------------+-------------------------------+| mysql-bin.000001 |196 | blog,www| mysql,test,information_schema |+------------------+----------+--------------+-------------------------------+1 row in set (0.00 sec) 6.开启另一个终端,对主数据库做快照
[root@test01 mysql]#cd /var/lib/mysql/[root@test01 mysql]#tar -zcvf backup.tar.gz www blog  7.库解锁
mysql> unlock tables;从节点:
1.安装mysql,方法同上,不在赘述。
2.修改my.cnf配置文件
[root@test02 mysql]# vi /etc/my.cnf[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0log-bin=mysql-binserver-id = 2#master-host= 192.168.1.10#master-user= root#master-password = 584911644#master-port= 3306#master-log-pos = 196#master-log-file = mysql-bin.000001#master-connect-retry=60replicate-do-db=www//告诉slave只做www数据库的更新replicate-do-db=blog//告诉slave只做blog数据库的更新log-slave-updates[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid/etc/my.cnf 23l, 551c3.把之前主数据库压缩的数据拷贝到对应位置
我这里用的是securefx,当然,方法很多,免备案空间,也不细说了,可谓是条条大路通罗马。
4.启动数据库
[root@test02 mysql]# service mysqld start
starting mysqld: [ ok ]5.配置,启动slave
mysql> slave stop;query ok, 0 rows affected (0.00 sec)mysql> change master to master_host='192.168.1.10',master_user='repl',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=196;query ok, 0 rows affected (0.04 sec)mysql> slave start;query ok, 0 rows affected (0.00 sec)mysql> show slave status\g;*************************** 1. row ***************************slave_io_state: waiting for master to send eventmaster_host: 192.168.1.10master_user: replmaster_port: 3306connect_retry: 60master_log_file: mysql-bin.000001read_master_log_pos: 339relay_log_file: mysqld-relay-bin.000002relay_log_pos: 394relay_master_log_file: mysql-bin.000001slave_io_running: yesslave_sql_running: yesreplicate_do_db: www,blogreplicate_ignore_db:replicate_do_table:replicate_ignore_table:replicate_wild_do_table: replicate_wild_ignore_table:last_errno: 0last_error:skip_counter: 0exec_master_log_pos: 339relay_log_space: 550until_condition: noneuntil_log_file:until_log_pos: 0master_ssl_allowed: nomaster_ssl_ca_file:master_ssl_ca_path:master_ssl_cert:master_ssl_cipher:master_ssl_key:seconds_behind_master: 0master_ssl_verify_server_cert: nolast_io_errno: 0last_io_error:last_sql_errno: 0last_sql_error:1 row in set (0.00 sec)四)后期测试
主节点-数据增加:
mysql> insert into www values(2);query ok, 1 row affected (0.00 sec)mysql> select * from www;+------+| id |+------+| 1 || 2 |+------+2 rows in set (0.00 sec)从节点数据同步验证:
mysql> select * from www;+------+| id |+------+| 1 || 2 |+------+2 rows in set (0.00 sec)主节点-数据删除:
mysql> delete from www where id ='2';query ok, 1 row affected (0.04 sec)mysql> select * from www;+------+| id |+------+| 1 |+------+1 row in set (0.00 sec)从节点数据同步验证:
mysql> select * from www;+------+| id |+------+| 1 |+------+1 row in set (0.00 sec)
综述:
test02,从数据库上能做到同步数据库的更新操作,香港虚拟主机,目前是www和blog两张表。当然,这里只是抛砖引玉的作用,大家可以举一反三,根据自己实际需求,做出最好的环境搭建和配置。
最近在弄rhcs和keepalived,闲来有空就记录几笔数据库slave配置,方便大家学习和自己的积累。
本文出自 “aaron” 博客,虚拟主机,请务必保留此出处
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product