LAMP-mysql迁移

来源:互联网 发布:淘宝网石头鱼大码女装 编辑:程序博客网 时间:2024/06/07 06:28
LAMP-mysql迁移
知识点
思路
1、环境准备
2、目标端安装mysql(与源端高度一致)
3、关闭源端的应用和mysql
4、同步两个mysql的数据目录,初始化
5、拷贝并修改php.ini配置文件
6、后续问题
管理工具
论坛
授权给测试端
7、测试
LAMP原环境:
server:172.16.13.245 apache+mysql+php
LAMP之mysql迁移后:
source:172.16.13.245 apache+php
target:172.16.13.249 mysql
思路
1、在target端安装相同版本的mysql数据库(系统版本和数据库版本要高度一致)
2、停止web应用,再停止mysql
先停止web应用,等待一段时间,所有连接都断开,再断掉mysql
如果直接停掉mysql,不停止web应用,正在访问的人就会遇到一系列问题,例如无法访问
3、将源端的数据库迁移到目标端
4、不要着急起来web服务,先启动目标端的mysql数据库
5、启动web应用
6、测试验证
一、环境准备(目标端)
1、系统版本和数据库版本高度一致
2、静态IP地址3、关闭防火墙和selinux
两个主机IP要ping通
二、目标端安装mysql数据库
1、创建相应的数据目录(跟源服务端保持一致)
mkdir /mysql25/data -p
mkdir /mysql25/etc
数据目录
配置目录
/mysql25
安装目录
mkdir /mysql/mysql-5.6.25
给目标端安装好mysql25
方法一:在源服务端
rsync -av /mysql/mysql-5.6.25 172.16.13.249:/mysql/mysql-5.6.25
在目标端
useradd -r mysql
yum -y install cmake
yum -y install MySQL-client

在目标端安装mysql数据库并做相应的后续配置
make[2]: *** No rule to make target `/usr/lib64/libcurses.so', needed by `client/mysql'.
Stop.
make[1]: *** [client/CMakeFiles/mysql.dir/all] Error 2
make: *** [all] Error 2
解决依赖关系
方法二:使用rpm包安装
rpm -e MySQL-libs
rpm -ivh MySQL-server
client 25版本
service mysql start;
mysqladmin -u root password '123';
mysql -p123方法三:源码包全新安装
本人采取方式
三、关闭掉源端的web和mysql
在目标端/mysql25/data/mysql 数据目录下全部删除
在源端
service apache stop
service mysql stop
四、同步两个mysql的数据目录,初始化
rsync -av /mysql25/data/* 172.16.13.249:/var/lib/mysql (mysql25的安装路
径,rpm的话在/var/lib下)
把源端数据目录下所有内容同步到目标端的数据目录
目标端
进入mysql show databases; 查看是否成功同步
五、拷贝并修改php.ini配置文件
回到源端:
cp /usr/src/php-5.6.11/php.ini-producton /usr/local/lib/php.ini
(这是默认路径,我是解压后当前路径/mysql)
#vim /usr/local/lib/php.ini
mysql.default_host = 172.16.13.249
mysql.default_port = 330*
mysqli.default_host = 172.16.13.249
mysqli.default_port = 330*
六、 后续问题
配置好php.ini文件后依然连接不上mysql数据库;why?
a、论坛或者管理工具phpMyadmin有自己的php配置文件,并且定义了连接mysql的主机及用
户名
b、web和php都程序在10.1.1.1服务器上,php程序连接10.1.1.2上的mysql数据库,是否被
允许呢?
解决:1、管理工具:
/webroot/admin
mv config.sample.inc.php
config.inc.php
vim config.inc.php
/* Server parameters */
$cfg['Servers'][$i]['host'] = '172.16.13.249';
修改为目标端IP
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
2、论坛
修改如下文件将localhost改为目标端IP
源端的/webroot/discuz/config
#vim config_global.php
#vim config_ucenter.php

3、在目标端上给root@172.16.13.245授权(测试端)
grant all on *.* to root@172.16.13.245 identified by '123';
这里要注意
直接把源端的data数据目录内容同步到目标端的话
(上图是成功后)
在目标端,会看到
root 172.16.13.245
root desktop10homework.example.com
172.16.13.245的主机名就是desktop10homework.example.com,冲突了,如果一个有密码
一个没有密码,会默认使用空密码,所以只能要一个或者两个都设置相同密码(这种情况是
通过源端同步给目标端才会出现的问题)
七、测试源端mysql关闭,apache启动
目标端mysql启动
源端通过mysql 登录 目标端的数据库是否成功
# mysql -u root -P3308 -h 172.16.13.249 -p123
原创粉丝点击