0
点赞
收藏
分享

微信扫一扫

如何将旧系统环境上运行的mysql迁移到新系统新环境中运行?

code_balance 2022-07-27 阅读 90

前言

很多时候一些远古业务程序一直需要在旧的系统环境上运行(unbuntu12,centOS5),生产环境都是较新的系统版本,这个情况我们有两个选择:1. 使用虚拟机安装旧的系统环境。2.打包整旧系统环境,以docker容器方式在新的系统环境上运行。现在介绍一下第2种方法的操作过程。


前提环境

centOS5.8推荐 安装mysql是5.0.95版,我们尝试在centOS7运行centOS5.8容器,并且在该容器部署mysql 5.0.95。

如何将旧系统环境上运行的mysql迁移到新系统新环境中运行?_mysql

旧系统环境:

LSB Version::core-4.0-amd64:core-4.0-ia32:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-ia32:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS release 5.8 (Final)
Release: 5.8
Codename: Final


docker 版本:

Docker version 1.13.1, build 7d71120/1.13.1


打包centOS5.8

第一步需要更新centos5.8的源,因为centos 5.8已经是一个很古老的版本,原来的源已经失效。不更新的话执行yum install会提示M2Crypto.SSL.SSLError: unknown protocol的错误。

如何将旧系统环境上运行的mysql迁移到新系统新环境中运行?_docker_02

rm -rf /etc/yum.repos.d/* #清理旧的源
touch /etc/yum.repos.d/Bento-Vault.repo #创建新的源文件


执行
vim/etc/yum.repos.d/Bento-Vault.repo修改内容

#BENTO-BEGIN
[C5.8-base]
name=CentOS-5.8 - Base
#baseurl=http://vault.centos.org/5.8/os/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.8/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
[C5.8-updates]
name=CentOS-5.8 - Updates
#baseurl=http://vault.centos.org/5.8/updates/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.8/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
[C5.8-extras]
name=CentOS-5.8 - Extras
#baseurl=http://vault.centos.org/5.8/extras/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.8/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
[C5.8-centosplus]
name=CentOS-5.8 - Plus
#baseurl=http://vault.centos.org/5.8/centosplus/$basearch/
baseurl=http://archive.kernel.org/centos-vault/5.8/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
enabled=1
#BENTO-END

这个时候就可以使用tar命令打包整个系统, 当中—numeric-owner是代表执行所属,—exclude:排除那些文件或者目录, -zcvf:打包压缩p保持文件的绝对路径。

tar --numeric-owner --exclude=/proc --exclude=/sys -zcvpf centos-58.tar

生成centos-58.tar之后上传到centOS7服务器上。


导入至docker

确保centos7上已经安装好docker,然后简单操作一下导入即可。

docker import centos-58.tar centos5:v1


进入容器并安装mysql

进入容器

docker run -it centos5:v1 /bin/bash

这个时候查看一下系统信息,系统信息显示是centos5

如何将旧系统环境上运行的mysql迁移到新系统新环境中运行?_centos_03

在容器内部安装mysql并启动

yum install -y mysql-server mysql
service mysqld start

如何将旧系统环境上运行的mysql迁移到新系统新环境中运行?_centos_04

成功运行


结语

对比起使用虚拟机,docker迁移旧运行环境十分方便。但是因为容器是共用宿主机的内核,所以涉及一些与内核版本相关的接口未必能正常使用,建议投入到生产环境前需要进行完善的测试。

举报

相关推荐

0 条评论