2022-10-23 记:
阿里云新用户优惠活动购买的3年ECS服务器即将到期,新发现华为有新用户活动,118购买一个月送一年,果断入手。记录一下迁移过程~

0.前提

配置:2vCPUs | 4GiB
操作系统:CentOS 7.9 64bit
带宽:1 Mbit/s

1.yum源切换

  • 1.华为云服务器安装后,centos源默认已切换为:repo.huaweicloud.com
  • 2.添加EPEL:华为云服务器安装后默认已内置
  • 3.清除原有yum缓存 yum clean all
  • 4.刷新缓存yum makecache

2.中文显示(非必需)

#检查当前环境(如果已经是zh_CN.UTF-8则无需处理了)
localectl status
#安装中文字体
yum groupinstall "fonts" -y
#列出所有可用的公共语言环境的名称
locale -a |grep "zh_CN"
#设置locale,配置文件在 /etc/locale.conf(也可以直接修改配置文件)
localectl set-locale LANG=zh_CN.UTF-8
# 如果以上不生效
echo 'export LC_ALL="zh_CN.UTF-8"' >> /etc/profile
source /etc/profile
echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
source /etc/locale.conf
#需要重启
reboot
#
localectl status
#如果还是无法显示中文,则可能是缺少中文字体
yum -y install fontconfig
fc-list :lang=zh

3.启动方式

# 查看默认启动方式是否是图形化界面
systemctl get-default

# 华为镜像默认即为:命令行模式
# systemctl set-default multi-user.target

4.开启SSH

默认已开启,端口为:22,需要修改下

## 1、查看ssh服务是否启动
systemctl status sshd.service
## 2、修改配置
vi /etc/ssh/sshd_config
## 3、修改完配置后需要重新启动
systemctl restart sshd.service
## 4、设置开机启动
systemctl enable sshd.service
## 使用云服务器提供的安全组,无需配置防火墙(默认安全组只放行了端口22,也需要同步修改)

5.迁移系统配置

  • 系统配置
  • 环境变量
  • Nginx

    已按 conf.d 目录拆分成小的配置,更便捷。

  • crontab
  • JDK

6.迁移数据库

6.1 mysql

  • 1、安装MySQL 8.0
    参考:CentOS 7 安装 MySQL 8.0及常见问题
  • 2、/etc/my.cnf
  • 3、halo库
  • 4、触发器
  • 5、备份
  • 6、配置忽略大小写

    尽量在安装的时候,启动前就配置好(需要手动init,不能直接启动服务),中途修改会无法启动(注意备份数据)。

    [mysqld]
    lower_case_table_names=1
    

    注意:官网上明确指出mysql8.x只有在初始化时才能设置忽略大小写。地址:
    https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lower_case_table_names。
    如果已经安装好,需要卸载掉重新安装,修改完my.cnf,先重新初始化,再启动,注意备份数据。。
    初始化命令:
    mysqld --user=mysql --lower_case_table_names=1 --initialize-insecure --datadir=/var/lib/mysql

7.迁移博客

  • .halo
  • halo.service --> /etc/systemd/system/halo.service
  • 主题
  • 文件备份等

8.迁移其他程序

8.1 jenkins

安装配置参考:CentOS 安装 Jenkins 及 国内下载加速
使用备份 ThinBackup 恢复时尽量保持版本一致,如果恢复后看不到job,
可尝试修改:/var/lib/jenkins/users/users.xml 中带数字的名字部分,如果还不行,可尝试恢复整个 /var/lib/jenkins/ 目录。

8.2 Nginx

Nginx 顺道直接拆分为 conf.d 目录下单个配置文件,更直观,修改也更方便。

8.3 其他

  • backup2oss
  • frp

    配置成服务化
    vi /etc/systemd/system/frps.service

    [Unit]
    Description = frp server
    After = network.target syslog.target
    Wants = network.target
    
    [Service]
    Type = simple
    ExecStart = /opt/frp/frps -c /opt/frp/frps.ini
    
    [Install]
    WantedBy = multi-user.target
    

    systemctl daemon-reload
    systemctl enable frps

  • certbot

    yum install certbot -y

  • certbot-alidns
  • certbot-alydns
  • Python、Python3
  • node

    yum install nodejs -y
    yum install npm -y

  • backup
  • bin
  • /etc/bashrc
    ## java
    export JAVA_HOME=/opt/java/jdk-17
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    export PATH=/opt/java/apache-maven-3.8.6/bin:$PATH
    
    ## aliyun
    export CERTBOT_ALI_KEY=
    export CERTBOT_ALI_SECRET=
    
    ## qiniu
    export QINIU_ACCESS_KEY=""
    export QINIU_SECRET_KEY=""
    
  • sherlock
  • docker
  • maven、gradle

    curl -s “https://get.sdkman.io” | bash
    source “$HOME/.sdkman/bin/sdkman-init.sh”
    sdk version
    sdk list gradle
    sdk install gradle 5.6.4

  • Go

    yum install -y golang

  • halo-es 搜索 数据库地址变更

Q.E.D.


Think Big, Act Small