博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql搭建多主多从
阅读量:7113 次
发布时间:2019-06-28

本文共 3886 字,大约阅读时间需要 12 分钟。

原创作品,允许转载,转载时请务必以超链接形式标明文章   、作者信息和本声明。否则将追究法律责任。

操作系统:Linux 2.6.13 (Slackware),其它版的Linux应该也差不多.

数据库:Mysql 4.1.8 源程序安装
假设服务器名:test-db1 (IP为192.168.0.1),主
假设服务器名:test-db2 (IP为192.168.0.2),主
假设服务器名:test-db3 (IP为192.168.0.3),从
二,test-db1主服务器mysql安装准备
用mysql源程序安装,假设在安装时用的configura选择项下如,解压后:
./configure
make
make imstall
chown mysql.mysql /usr/local/mysql/var
cp ../support-files/ my-medium.cnf /etc/my.cnf
cp ../support-files/mysql.server /etc/rc.d/rc.mysqld
直接启动mysql进程/etc/rc.d/rc.mysqld start
这样默认安装好之后数据库生成的目录为/usr/local/mysql/var
三,test-db2主服务器mysql安装准备
./configure
make
make imstall
chown mysql.mysql /usr/local/mysql/var
cp ../support-files/ my-medium.cnf /etc/my.cnf
cp ../support-files/mysql.server /etc/rc.d/rc.mysqld
启动mysql进程/etc/rc.d/rc.mysqld start
这样默认安装好之后数据库生成的目录为/usr/local/mysql/var
修改/etc/my.cnf文档
将port=3306改为port=3307
启动mysql进程/etc/rc.d/rc.mysqld start
至些两台主mysql服务器已经搭建好。
接下来在两台主服务器上设置replicate账号,此账号作为从服务器同步用
mysql 

 -umysql –p进入mysql
grant all on *.* to replicate@’%’ idenfied by ‘1234567890’;
四.test-db3从服务器mysql安装准备
./configure --prefix=/usr/local/mysql   --datadir=/usr/local/mysql/data1 --sysconfdir=/etc       make    make instll
备注:--prefix将MYSQL安装到/usr/local/mysql,
--datadir将数据库生成/usr/local/mysql/data1
sysconfdir是指定mysql使用到的my.cnf配置文件的搜索路径为/etc
其他mysql安装过程略.
根据Mysql管理手册中提到:每个Mysql的服务都可为独立的,所以它都调用一个my.cnf中各自不同的启动选项--就是下文中将提到的GNR值,使用不同的端口,生成各自的套接文件,服务的数据库都是独立的(更多可查阅mysql官方网站的英文管理手册).
mysqld_multi是管理多个mysqld的服务进程,这些服务进程程序不同的unix socket或是监听于不同的端口。他可以启动、停止和监控当前的服务状态。
---- 程序在my.cnf(或是在--config- file自定义的配置文件)中搜索[mysqld#]段,"#"可以是任意的正整数。这个正整数就是在下面提及的段序列,即GNR。段的序号做为 mysqld_multi的参数,来区别不同的段,这样你就可以控制特定mysqld进程的启动、停止或得到他的报告信息。这些组里的参数就像启动一个 mysqld所需要的组的参数一样。但是,如果使用多服务,必须为每个服务指定一个unix socket或端口(摘自

中的使用mysqld_multi程序管理多个MySQL 服务 )。

从上述文字可看到多Mysql服务中最重要的就是my.cnf配置文件了.
现我贴出我从服务器的my.cnf文件.-----------------------
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = mysql
password = mysql
[mysqld1]
port     = 3306
socket   = /tmp/mysql.sock1
skip-locking
pid-file=/usr/local/mysql/data1/test-db1a.pid
datadir = /usr/local/mysql/data1
log=/usr/local/mysql/data1/test-db1.log
user = mysql
log-slow-queries=/usr/local/mysql/data/slowquery.log
long_query_time = 2
key_buffer = 256M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
myisam_sort_buffer_size = 64M
thread_cache = 32
query_cache_size = 32M
thread_concurrency = 2
max_connections=500
server-id     = 2
master-host   =   192.168.0.1
master-user   =   'replcate'
master-password =   '1234567890'
master-port   = 3306
report-host = test-db3
master-connect-retry = 30
log-bin
log-slave-updates
[mysqld2]
port = 3307
socket = /tmp/mysql.sock2
pid-file = /usr/local/mysql/data2/test-db2b.pid
datadir = /usr/local/mysql/data2
log=/usr/local/mysql/data2/test-db2.log
user = mysql
log-slow-queries=/usr/local/mysql/data2/slowquery.log
long_query_time = 10
key_buffer = 128M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 1M
read_buffer_size = 1M
myisam_sort_buffer_size = 32M
thread_cache = 32
query_cache_size = 16M
thread_concurrency = 2
max_connections=300
server-id     = 2
master-host   =   192.168.0.2
master-user   =   'repl'
master-password =   '1234567890'
master-port   = 3307
report-host = test-db3
master-connect-retry = 30
log-bin
log-slave-updates
之后通过tar命令将主服务器上test-db1的数据库放于从服务器/usr/local/mysql/data1下
再通过tar命令将主服务器上test-db2的数据库放于从服务器/usr/local/mysql/data2下
通过以下命令启动从服务器的mysql进程
/usr/local/mysq/bin/mysqld_multi --config-file=/etc/my.cnf start 1-2                        
查看启动:
test-db3:/ # ps aux
root   10467 0.0 0.2   2712 1300 pts/0   S   18:59   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --port=3306 --socket=/tmp/mysql.sock1
root   10475 0.0 0.2   2712 1300 pts/0   S   18:59   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --port=3307 --socket=/tmp/mysql.sock2
然后在两台从服务器分另建立数据库以及表做测试,会看到在从服务器中分别会有相应的数据库以及表产生。大家可以通过phpMyadmin以及EMS Mysql Manager对mysql进行管理

本文出自 “” 博客,请务必保留此出处

你可能感兴趣的文章
华为拓扑---***的配置
查看>>
网站中增加微信公众账号链接的方法
查看>>
Java之品优购课程讲义_day19(3)
查看>>
finecms V5 会员头像任意文件上传漏洞 附修复代码
查看>>
购买SSL证书必须考虑的五大因素
查看>>
OpenStack简单测试性能监控数据记录
查看>>
扒一扒最近爆火的SDT-LUCK CLUB究竟是什么鬼?
查看>>
UniDAC使用教程(九):提高性能
查看>>
按照拓扑图使不同VLAN的7台PC互通
查看>>
多区域ospf在帧中继环境下实现互通-配置命令(请各位多指教)
查看>>
二次战CPP链表
查看>>
选择手持终端的标准有哪些
查看>>
常见的销售方式有哪些
查看>>
Linux中find常见用法示例
查看>>
Oracle 【直接加载】全方位解析与性能优化
查看>>
C#综合揭秘——细说事务(上)
查看>>
ping: unknown host和活跃连接路径:/org/freedesktop/NetworkManager/ActiveConnection
查看>>
我的友情链接
查看>>
Linux 5.4 源码安装---http2.4.4安装
查看>>
使用数据泵导入并重命名表名
查看>>