-------------------------------
出自:crazylinux工作室--侯在存
E-mail:houzaicunsky@gmail
时间:2010.10.10转载请保留此信息
--------------------------------
mysql数据库迁移
实现目的:把210的mysql在线转移到217上,从而实现210运行apache+php,217只运行mysql.都是centos5.3.
一.先搭建217的mysql最好和210用同一个版本,这样可以减少问题。[root@localhost htdocs]#cd/home/
[root@localhost home]#tar-zxvf mysql-5.0.-C/usr/local/src/
[root@localhost home]#cd/usr/local/src/mysql-5.0.40
[root@localhost mysql-5.0.40]#useradd-M-s/sbin/nologin mysql
[root@localhost mysql-5.0.40]#yum-y install libtermcap-devel
[root@localhostmysql-5.0.40]#./configure--prefix=/usr/local/mysql
//这里默认就可以最好可以210参数一样,查看编译后的参数:
cat"/usr/local/mysql/bin/mysqlbug"|grep configure
[root@localhost mysql-5.0.40]#make
[root@localhost mysql-5.0.40]#make install
[root@localhost mysql-5.0.40]#cp support-files/my-mediumf/etc/myf
这里最好把210的配置文件拷贝过来最好。
[root@localhost mysql-5.0.40]#/usr/local/mysql/bin/mysql_install_db--user=mysql
加载并且授权
[root@localhost mysql-5.0.40]#chown-R root:mysql/usr/local/mysql/
[root@localhost mysql-5.0.40]#chown-R mysql/usr/local/mysql/var/
[root@localhost mysql-5.0.40]#echo"/usr/local/mysql/lib/mysql">>/etc/f
[root@localhost mysql-5.0.40]#ldconfig
[root@localhost mysql-5.0.40]#/usr/local/mysql/bin/mysqld_safe--user=mysql&
[root@localhost mysql-5.0.40]#ps-e|grep mysql验证是否成功开启mysql
1664pts/200:00:00mysqld_safe
1690pts/200:00:00mysqld
[root@localhost mysql-5.0.40]#netstat-ntulp|grep mysql
tcp000.0.0.0:33060.0.0.0:*LISTEN1690/mysqld
[root@localhost mysql-5.0.40]#cp support-files/mysql.server/etc/init.d/mysqld
[root@localhost mysql-5.0.40]#chmod+x/etc/init.d/mysqld
[root@localhost mysql-5.0.40]#chkconfig--add mysqld
[root@localhost mysql-5.0.40]#chkconfig mysqld on
[root@localhost mysql-5.0.40]#export PATH=$PATH:/usr/local/mysql/bin/
[root@localhost mysql-5.0.40]#echo"PATH=$PATH:/usr/local/mysql/bin/">>/etc/profile [root@localhost mysql-5.0.40]#mysqladmin-u root password123456//修改mysql密码也可以不设置,一会要覆盖数据。
[root@localhost mysql-5.0.40]#mysql-u root-p
Enter password:(输入123456密码)
二.测试mysql成功开始迁移数据库。
1.先检查下210的所以数据库
2.检查用户:
3.开始迁移,把217的mysql服务停了。
4.我们要先把mysql库迁移过去测试下是否成功。
在210数据库:
use mysql;
mysqldump-u root-p mysql>mysql.sql
然后拷贝到217的目录下
php远程连接mysql数据库Mysql>use数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>use mysql;
mysql>source/home/houzc/mysql.sql;
也可以:
mysqldump的用-h oldhost计算机-üoldusername-poldpassword olddbname|MySQL的用-h newhost计算机-ünewusername-pnewpassword newdbname
(在覆盖mysql库的最好时候把217的备份下)
为什么不直接tar包过去然后复制/usr/local/mysql/var/目录下,这样服务启动会失败,因为mysql库里面有innodb表,这种表不支持直接拷贝目录,还可能有其他原因。
Mysql库覆盖完成后我们重启服务器看是否成功。
5.下面接着迁移,因为在线把库的插入权限全部关闭,不关闭会丢失这段时间的数据,要是数据库非常庞大,建议最好关闭插入权限。
在210:
#cd/usr/local/mysql/
#tar-czvf var/
因为我的服务器不能使用root用户scp。
cp /home/houzc
scp-P2000/home/houzc/ houzc@219.232.243.217:/home/houzc/
在217:
cd/home/houzc
tar-zxvf -c/usr/local/mysql/var
把所有的数据覆盖一下,然后启动服务,能起来就成功了。
因为myisam表支持直接拷贝。
6.最后修改连接的php程序使所有的用户连接新的数据,

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。