Linux环境下数据库的复制
这里介绍的是两台mysql服务器之间数据目录的复制问题:
A: 192.168.109.180
B: 192.168.109.191
<!--[if !supportLists]-->l <!--[endif]-->假设服务器A上有career数据库,而服务器B尚没有
ssh –l root 192.168.109.180 password:******** 登录A
ssh –l root 192.168.109.191 password:******** 登录B
cd /usr/local/var
scp –r root@192.168.109.180:/usr/local/var/career career
到此career数据库已经复制到服务器B上
cd career
chown mysql .
chgrp mysql .
这样在服务器B上就可以访问career数据库了。
<!--[if !supportLists]-->l <!--[endif]-->假设服务器B上已经建了career数据库,但是里面没有任何表
这样也可以直接复制数据库目录里面得所有表
登录B後,cd /usr/local/var/career
scp root@192.168.109.180:/usr/local/var/career/* .
然后就可以直接访问career中得表了。
<!--[if !supportLists]-->l <!--[endif]-->假设服务器B上已经建了career数据库,但是里面也建了相应得表,但是里面没有任何数据或者里面已经有数据,这时候如果采用scp的复制方式直接覆盖,必须注意一点:
上面两种情况mysql服务器(A)并不需要关闭,而这时候必须在scp之前关闭A和B 的mysql服务器,即
A:(192.168.109.180)
mysqladmin –fefaults-file=/etc/my5.cnf –u root –p shutdown
(现在A上mysql-4和mysql-5在同时运行)
B: (192.168.109.191)
pkill mysql
cd /usr/local/var/career (里面已经有建好的表)
scp root@192.168.109.180:/usr/local/var/career/* .
完成直接覆盖后,重新启动mysql服务器
cd ../../bin
./mysqld_safe –user=mysql &
mysql
use career
select count(*) from position 完成测试,测试成功。