【预习】数据库迁移与建立NFS服务

本文详细介绍了LNMP(Linux+Nginx+MySQL+PHP)架构的数据库迁移流程,包括数据备份、迁移、恢复及网站配置更新,以及如何通过NFS(Network File System)实现web服务器与NFS服务器间的数据存储与同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LNMP

是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。

LNMP部署流程

来自oldboy59期班长-柴辉洋

一、数据库迁移流程:

第一个历程:将数据进行备份(web)
1.打包 + 定时任务 +rsync

2.备份:

备份全部表:
mysqldump -uroot -p -A >/root/all.sql
备份wordpress表:
mysqldump -uwordpress -p123456 -A >/root/wordpress.sql

3.备份并压缩

mysqldump -uroot -p -A|gzip >/root/all-gzip.sql.gz

4.将备份的数据库恢复:

 mysql -uroot -p </root/all.sql

第二个历程:将数据进行迁移(web)
scp -rp /tmp/bak.sql 172.16.1.51:/root/

第三个历程:将数据进行恢复(db01)

 安装 yum install -y mariadb-server mariadb
 重启 systemctl start mariadb.service 
 自启 systemctl enable mariadb.service 
 
 将数据恢复 mysql -uroot </root/all.sql

第四个历程: 对数据进行检查(mysql)

 查看数据库信息 show databases;
 查看用户信息 select user,host from mysql.user;

第五个历程:关闭web服务器上本地数据库服务,连接新的数据库服务(web)

systemctl stop mariadb.service
systemctl disable mariadb.service

第六个历程:重新连接数据库 == 重新配置网站链接数据库的代码信息

wordpress: 
find . -type f -name '*.php'|xargs grep -i "123456"
vim /usr/share/nginx/html/blog/wp-config.php
/** MySQL hostname */
define( 'DB_HOST', '172.16.1.51' );

wecenter:
find . -type f -name '*.php'|xargs grep -i "123456"
 ./system/config/database.php
 'host' => '172.16.1.51',

第七个历程:配置数据库用户授权信息

grant all on wecenter.* to 'wecenter'@'172.16.1.%' identified by '123456';
grant all on wordpress.* to 'wordpress'@'172.16.1.%' identified by '123456'; 

二、将网站web服务器与NFS服务器建立联系

wordpress存储用户上传数据信息位置:wp-content/uploads

wecenter存储用户上传数据信息位置:uploads/article/

第一个历程:部署搭建NFS服务器(nfs01)

	[root@nfs01 ~]# rpm -qa nfs-utils
	[root@nfs01 ~]# mkdir -p /data/{blog,zh}
	[root@nfs01 ~]# chown nfsnobody.nfsnobody /data/*
	[root@nfs01 ~]# ll /data/
	total 0
	drwxr-xr-x 2 nfsnobody nfsnobody  6 Jun  9 13:31 blog
	drwxr-xr-x 2 nfsnobody nfsnobody 19 Jun  9 13:34 zh
	[12:47 root@nfs01 ~]# vim /etc/exports
	#nfs with blog
	/data/blog           172.16.1.0/24(rw,all_squash,sync)

	#nfs with zhihu
	/data/zh           172.16.1.0/24(rw,all_squash,sync)
	[root@nfs01 ~]# systemctl reload nfs
	[root@nfs01 ~]# showmount -e localhost
	Export list for localhost:
	/data/zh   172.16.1.0/24
	/data/blog 172.16.1.0/24

第二个历程:确认web服务器上网站本地存储目录,并进行挂载

	将本地数据进行迁移(blog):
	[root@web01 blog]# pwd
	/usr/share/nginx/html/blog
	[root@web01 blog]# mv wp-content/uploads/* /tmp/blog_tmp/
	[root@web01 blog]# ll wp-content/uploads/
	total 0
	[root@web01 blog]# ll /tmp/blog_tmp/
	total 0
	drwxr-xr-x 3 nginx nginx 16 Jun  6 19:40 2019

将本地数据进行迁移(zh):

	[root@web01 zh]# pwd
	/usr/share/nginx/html/zh
	[root@web01 zh]# mkdir /tmp/zh_tmp
	[root@web01 zh]# mv uploads/article/* /tmp/zh_tmp/
	[root@web01 zh]# ll uploads/article/
	total 0
	[root@web01 zh]# ll /tmp/zh_tmp/
	total 0
	drwxr-xr-x 2 nginx nginx 50 Jun  9 11:54 20190609

第三个历程:

挂载blog:
mount -t nfs 172.16.1.31:/data/blog /usr/share/nginx/html/blog/wp-content/uploads
挂载zh:
mount -t nfs 172.16.1.31:/data/zh /usr/share/nginx/html/zh/uploads/article

第四个历程:将原有备份存储数据迁移还原

[root@web01 blog]# mv /tmp/blog_tmp/* /wp-content/uploads/
[root@web01 zh]#  mv /tmp/zh_tmp/* uploads/article/

常见问题:nfs服务器被挂载上之后,用户无法上传数据

  1. 直接修改nfs服务器配置文件添加参数信息(/etc/exports)
    /data/blog 172.16.1.0/24(rw,sync,all_squash)

  2. 修改nfs服务端存储目录权限(和worker进程用户保持一致)
    chown -R nginx.nginx /data/
    如果造成root用户无法存储数据,修改配置文件:
    /data/blog 172.16.1.0/24(rw,sync,anonuid=worker进程用户uid,anongid=worker进程用户gid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值