数据库迁移操作

准备环境

web01:

安装lnmp+博客

db01:

安装mysql服务

nfs01:

安装nfs服务


cd /home/oldboy/tools/

scp -rp mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz 172.16.1.51:/home/oldboy/tools/

第一个里程碑-部署mysql服务(db01)

01.下载解压软件程序

# 解压mysql二进制包软件程序

cd /home/oldboy/tools

tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz

# 移动解压目录到系统程序保存目录中

mkdir -p /application/

mv /home/oldboy/tools/mysql-5.6.34-*-x86_64 /application/mysql-5.6.34

02.添加数据管理用户

# 确认数据管理用户是否存在

id mysql

# 进行程序运行用户添加

useradd mysql -s /sbin/nologin -M

03.创建MySQL程序目录的软链接

ln -s /application/mysql-5.6.34/ /application/mysql

04.对数据库中数据目录授权

chown -R mysql.mysql /application/mysql/data/

05.对数据库进行初始化操作

cd /application/mysql

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql

06.编写修改启动脚本

# 复制启动脚本并授权

cp /application/mysql/support-files/mysql.server  /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld 

# 修改启动脚本文件内容(调整程序安装目录信息)

sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld

07.设置服务配置文件

# 利用mysql程序默认配置文件替换系统中数据库配置文件

cp /application/mysql/support-files/my-default.cnf /etc/my.cnf 

08.启动mysql数据库程序服务

/etc/init.d/mysqld start

09.登录进入数据库中

# 设置数据库登录初始密码信息

/application/mysql/bin/mysqladmin -u root password 'oldboy123'

# 将数据库命令加入环境变量中

echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile

source /etc/profile

which mysql

# mysql -uroot -poldboy123


10.加入开机自启动

chkconfig --add mysqld 

chkconfig mysqld on

11.查看服务是否开启

netstat -lntup|grep mysql


第二个里程碑-备份数据(web01)

01.备份数据

/etc/init.d/mysqld start

mysqldump -uroot -poldboy123 --all-databases >/tmp/mysqlbak.sql


02.将备份数据推送到db01上

scp -rp /tmp/mysqlbak.sql 172.16.1.51:/tmp


03.将mysql的主机地址localhost修改为ip形式

vim /application/nginx/html/blog/wp-config.php 

/** MySQL数据库用户名 */

define('DB_USER', 'wordpress');

/** MySQL数据库密码 */

define('DB_PASSWORD', 'oldboy123');

/** MySQL主机 */

define('DB_HOST', '172.16.1.51');




第三个里程碑-数据还原(db01)

01.还原数据库

mysql -uroot -poldboy123 </tmp/mysqlbak.sql

02.授权刷新(root权限登录)

mysql -uroot -poldboy123

grant all on wordpress.* to 'wordpress'@'172.16.1.0/255.255.255.0' identified by 'oldboy123';

flush privileges;

select user,host from mysql.user;


03.使用wordpress用户登录

mysql -uwordpress -poldboy123 -h 172.16.1.51


第四个里程碑-网站上的数据挂着到nfs服务器上

服务端的操作(nfs)------------------------------------

01.检查软件是否存在:

rpm -qa nfs-utils rpcbind

02.进行软件安装

yum install nfs-utils rpcbind -y

03.对安装的两个软件进行启动(先启动rpcbind,再启动nfs)

/etc/init.d/rpcbind start

/etc/init.d/nfs start

04.查看服务是否开启

ss -lntup|egrep "rpcbind|nfs"

05.加入开机自启动及查看

chkconfig rpcbind on

chkconfig nfs on

chkconfig --list|awk '$1~/nfs$|rpcbind/'

06.修改配置文件

vim /etc/exports 

/data 172.16.1.0/24(rw,sync,all_squash)

07.创建共享目录

mkdir -p /data 

ll -d /data/

08.修改共享目录的属主属组的权限

chown -R nfsnobody.nfsnobody /data/

09.重启nfs服务并查看是否支持挂载

/etc/init.d/nfs reload

showmount -e 172.16.1.31

注意:修改完配置文件一定要平滑重启哦


web01服务的操作--------------------------------------

01.创建一个备份用户数据的目录

mkdir -p /tmp/nfsbak

02.先将用户的数据移动到tmp目录下

cd /application/nginx/html/blog/wp-content/uploads

mv 2017/ /tmp/nfsbak/

03.进行软件安装

yum install nfs-utils -y

04.检查是否支持挂载

showmount -e 172.16.1.31

05.挂载上传目录到nfs上及查看是否挂载成功

cd /application/nginx/html/blog/wp-content

mount -t nfs 172.16.1.31:/data ./uploads

df -h

06.进行测试

a.web01端

  [root@web01 uploads]# touch a.txt

  [root@web01 uploads]# ll

  total 0

  -rw-r--r-- 1 nfsnobody nfsnobody 0 Sep 13 15:40 a.txt

b.nfs01端

  [root@nfs01 data]# ll

  total 0

  -rw-r--r-- 1 nfsnobody nfsnobody 0 Sep 13 15:40 a.txt

07.最后,将用户的数据移动到upload目录下

mv /tmp/nfsbak/2017/ /application/nginx/html/blog/wp-content/uploads/



最终:

web数据库停掉,开启db01数据库