免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1773 | 回复: 0
打印 上一主题 下一主题

mysql主从备份 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-11 16:43 |只看该作者 |倒序浏览

                Mysql:Mysql-5.0.41.tar.gz
辅助工具:SSH Secure Shell Client
提示:#代表root用户权限
1>将Mysql-5.0.41.tar.gz通过SSH 工具 上传到Linux系统的home目录下
2>建立MySQL使用者和群组:
#groupadd mysql
#useradd -g mysql mysql
3>解压缩Mysql-5.0.41.tar.gz源码包
#cd /usr/local/sofrware
#tar zxvf Mysql-5.0.41.tar.gz
4>进入源码目录编译安装
#cd /home/Mysql-5.0.41
#./configure --prefix=/usr/local/mysql --with-charset=gbk  |注:配置Mysql安装路径并且
支持中文
#make  |注:编译
#make install  |注:编译安装
5>替换/etc/my.cnf文件,进入源码包,执行命令
#cd /home/Mysql-5.0.41
#cp support-files/my-medium.cnf /etc/my.cnf
6>完成以上操作以后进行初始化数据库,进入已经安装好的mysql目录
#cd /usr/local/mysql
#bin/mysql_install_db --user=mysql  |注:--user=mysql 初始化表并且规定用mysql用户
7>设置给mysql和root用户设定访问权限 我们先进入mysql目录
#cd /usr/local/mysql
#chown -R root /usr/local/mysql        注:设定root能访问/usr/local/mysq
#chown -R mysql /usr/local/mysql/var     注:设定mysql用户能访问/usr/local/mysql/var
#chgrp -R mysql /usr/local/mysql        注:设定mysql组能够访问/usr/local/mysq
8>启动mysql,进入已经安装好的目录
#cd /usr/local/mysql
#bin/mysqld_safe --user=mysql &
9>
修改mysql数据库超级用户root的缺省密码:
/usr/local/mysql/bin/mysqladmin -u root password 'mysql'
关闭mysql服务器
cd /usr/local/mysql/bin
./mysqladmin -u root -p    shutdown  
10>设定开机就启动mysql,进入源码目录下
# cd /home/Mysql-5.0.41
# cp support-files/mysql.server /etc/init.d/mysql
# chmod +x /etc/init.d/mysql
# chkconfig --level 345 mysql on
# service mysql restart
Shutting down MySQL.                                          [  确定  ]
Starting MySQL                                                [  确定  ]
[root@localhost mysql]#
到这里MySQL就装好了。
现在做主从
A为主机,B为备份机, 在虚拟机下做的
A 内网IP : 192.168.10.189
B 内网IP : 192.168.1.5
数据库版本(5.0.41),目录,初始的库,表 两台机器是一样的
需要备份的库    byheart
不需要备份的库  mysql , test
1. 在主机上添加帐号 mysqlrepl 为备份帐号
GRANT REPLICATION SLAVE ON *.* TO 'mysqlrepl'@'192.168.1.188' IDENTIFIED BY '123456';
然后让两台机器的数据库都 shutdown ,
2. 修改 A 机器上的vi /etc/my.cnf
# 日志的名称
log-bin=mysql-bin
# 主服务器ID
server-id=1
# 需要备份的库
binlog-do-db=zctest
# 忽略的数据库
binlog-ignore-db=mysql
binlog-ignore-db=test
3. 修改 B 机器上的 /etc/my.cnf
# 日志的名称
log-bin=mysql-bin
# 从服务器ID
server-id=2
# 主服务器的IP地址或者域名
master-host=192.168.1.134
# 主数据库的端口号
master-port=3306
# 同步数据库的用户
master-user=mysqlrepl
# 同步数据库的密码
master-password=000000
# 如果从服务器发现主服务器断掉,重新连接的时间差
master-connect-retry=60
# 需要备份的库
replicate-do-db=byheart
# 忽略的数据库
replicate-ignore-db=mysql
replicate-ignore-db=test
4. 启动主 服务器      启动 从服务器
从B机器登上数据库
mysql> show slave status\G;
其中两行显示
              Slave_IO_Running: Yes
              Slave_SQL_Running: Yes
(show slave status\G 在a机上用这个命令没有反映,结果如下
mysql> show slave status\G
Empty set (0.00 sec)
mysql> )
5.测试
在a机上对 zctest库做添加删除等操作,看看b库的变化
注:在安装完成后回头如下错误
Last_Errno: 1146
                 Last_Error: Error 'Table 'mysql.tmp_db' doesn't exist' on query. Default database: 'mysql'. Query: 'INSERT INTO db SELECT * FROM tmp_db WHERE @had_db_table=0'
解决办法:
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n
跳过主服务器中的接下来的 n 个事件。此命令对于由语句引起的复制终止有效。
此语句仅在从服务器线程没运行的时候有效。否则,它将产生一个错误。
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/80794/showart_1993245.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP