关闭

mysql主从备份

551人阅读 评论(0) 收藏 举报
分类:

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 个事件。此命令对于由语句引起的复制终止有效。

此语句仅在从服务器线程没运行的时候有效。否则,它将产生一个错误。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:59169次
    • 积分:771
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:80篇
    • 译文:0篇
    • 评论:0条
    文章分类