本站首页    管理页面    写新日志    退出


«November 2025»
1
2345678
9101112131415
16171819202122
23242526272829
30


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7652864
建立时间:2006年5月29日




[MySQL]Mysql两台主服务器一台从服务器做同步搭建通过测试!!!!!
软件技术

lhwork 发表于 2006/12/25 18:12:59

操作系统: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或端口(摘自http://mifor.4dian.org中的使用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进行管理 至此多主一从服务器搭建完成


阅读全文(5588) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144794386 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号