助力产业智慧升级,云服务器首年88元起,更有千元代金券礼包免费领!

搜搜吧

查看: 154|回复: 0

[综合] 【网络安全+运维】MySQL迁移升级解决方案

[复制链接]
  • TA的每日心情
    奋斗
    2019-8-15 17:06
  • 签到天数: 77 天

    [LV.6]常住居民II

    超级VIP贵宾会员

    2022

    主题

    2102

    帖子

    6987

    积分

    Rank: 1

    UID
    21335
    威望
    -102
    贡献
    2397
    在线时间
    58 小时
    注册时间
    2018-12-6
    发表于 2019-7-18 22:45:01 | 显示全部楼层 |阅读模式
    推广者专属福利,新客户无门槛领取总价值高达2775元代金券,每种代金券限量500张,先到先得。
    任务背景

    由于现有业务架构已不能满足当前业务需求,在保证数据完整的前提下,现需要将原有数据库迁移到另外一台单独的服务器上,在保证原有服务正常的情况下,将原有LAMP环境中mysql数据库版本5.6.31升级为5.6.35.

    任务要求

    在业务维护时间(02:00-4:00)段对数据库进行全量备份

    将MySQL数据库从原有服务器迁移到新服务器上并且升级版本为5.6.35

    任务拆解

    新服务器安装Centos7.5,并且安装MySQL-5.6.35版本数据库

    停止监控、停止前端应用、停止MySQL数据库

    备份数据库(省略)

    迁移数据库——>同步数据库文件到新的环境中(rsync/scp)

    测试验证

    任务解决方案环境说明

    操作系统版本

    数据库版本

    应用说明

    IP地址

    主机名

    老环境

    Centos-6.9

    MySQL-5.6.31

    LAMP环境

    10.1.1.19

    lamp.itcast.cn

    新环境

    Centos-7.5

    MySQL-5.6.35

    MySQL数据库

    10.1.1.37

    db01.itcast.cn


    具体步骤
    1. 老环境停止相应服务

    1) 停止监控

    2) 停止应用服务apache和数据库
    [root@lamp ~]# service httpd stop
    [root@lamp ~]# service mysql stop
    Shutting down MySQL.. SUCCESS!

    2. 新环境部署安装MySQL① 官网下载mysql软件

    # du -sh mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
    301M mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

    ② 安装需求

    安装目录(basedir):/usr/local/mysql
    数据库目录(datadir):/usr/local/mysql/data
    端口:3306
    socket文件:/tmp/mysql.sock
    错误日志文件:/usr/local/mysql/data/mysql.err

    ③ glibc方式安装步骤1) 解压软件包

    # tar -xf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
    # cd /usr/local/
    # ln -s /soft/installer/mysql-5.6.35-linux-glibc2.5-x86_64  mysql
    注意:进入到/usr/local目录里软连接

    2) 创建用户并修改目录权限

    1. 查看用户是否存在
    [root@db01 mysql]# id mysql
    id: mysql: no such user
    [root@db01 mysql]# useradd -r -s /sbin/nologin mysql
    [root@db01 mysql]# id mysql
    uid=997(mysql) gid=995(mysql) 组=995(mysql)

    2. 更改mysql的安装目录的权限
    [root@db01 mysql]# chown -R mysql.mysql /usr/local/mysql/
    [root@db01 mysql]# ll -d /usr/local/mysql/
    drwxr-xr-x 13 mysql mysql 191 10月  9 10:26 /usr/local/mysql/

    3) 修改配置文件

    修改/etc/my.cnf文件
    [root@db01 mysql]# vim /etc/my.cnf
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    port=3307
    socket=/usr/local/mysql/mysql.sock
    log-error=/usr/local/mysql/data/mysql3307.err

    4) 拷贝启动脚本

    [root@db01 mysql]# pwd
    /usr/local/mysql
    [root@db01 mysql]# cp support-files/mysql.server /etc/init.d/mysql

    5) 初始化说明

    正常安装新数据库直接使用,是需要初始化数据库然后再启动使用

    当前需求是将原来MySQL数据库文件迁移到新的数据库的数据目录里,故不需要初始化

    3. 迁移数据库到新环境

    说明:新数据库服务器上操作

    ① 同步老库数据文件到新库数据目录里

    [root@db01 mysql]# rsync -av 10.1.1.1:/usr/local/mysql/data/ /usr/local/mysql/data

    ② 启动新数据库

    直接启动新的数据库,并且检查日志文件(查看是否有选项不兼容)
    [root@db01 mysql]# service mysql start

    ③ 升级数据库(重点,升级数据库文件)

    使用mysql_upgrade命令检查数据文件的兼容性
    [root@db01 ~]# /usr/local/mysql/bin/mysql_upgrade -S /tmp/mysql.sock -p123
    注意:
    1. 在实际的环境中,建议使用-s参数,不检查业务表,只检查系统文件
    2. 升级是需要连接数据库的,-p密码 -S指定socket文件
    [root@db01 mysql]# /usr/local/mysql/bin/mysql_upgrade -p
    Enter password:
    Looking for 'mysql' as: /usr/local/mysql/bin/mysql
    Looking for 'mysqlcheck' as: /usr/local/mysql/bin/mysqlcheck
    Error: Failed while fetching Server version! Could be due to unauthorized access.
    FATAL ERROR: Upgrade failed
    原因:连接数据库失败

    4. 原web服务连接新数据库(LAMP=>LNMP)① 修改php连接mysql的配置文件(如果有)

    [root@lamp ~]# find / -name php.ini
    /usr/local/lib/php.ini
    [root@lamp ~]# vim /usr/local/lib/php.ini
    [MySQL]
    mysql.default_port = 3306
    mysql.default_host = 10.1.1.37

    [MySQLi]
    mysql.default_port = 3306
    mysql.default_host = 10.1.1.37

    ② 修改网站配置文件连接数据库

    修改www.myblog.net网站所在数据库目录的配置文件

    [root@lamp www]# pwd
    /var/html/www
    [root@lamp www]# vim wp-config.php
    ...
    // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
    /** WordPress数据库的名称 */
    define('DB_NAME', 'myblog');

    /** MySQL数据库用户名 */
    define('DB_USER', 'root');

    /** MySQL数据库密码 */
    define('DB_PASSWORD', '123');

    /** MySQL主机 */
    define('DB_HOST', '10.1.1.37');

    /** 创建数据表时默认的文字编码 */
    define('DB_CHARSET', 'utf8');

    ③ 新数据库授权为web服务

    新的mysql数据库需要给root@10.1.1.19用户授权
    mysql> grant all on *.* to 'root'@'10.1.1.19' identified by '123';
    Query OK, 0 rows affected (0.00 sec)

    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    注意:把防火墙firewalld和selinux全部关闭掉,不然打死都连接不上!

    ④ 启动web服务

    [root@lamp ~]# service apache start
    [root@lamp ~]# netstat -nltp|grep httpd
    tcp        0      0 :::80                       :::*                        LISTEN      1376/httpd

    ⑤ 测试验证

    1.浏览器访问
    2. web服务器上使用mysql工具远程访问
    [root@lamp ~]# mysql -uroot -h10.1.1.37 -uroot -p123


    楼主热帖排行榜
    搜搜吧社区温馨提示:
    搜搜吧(www.sosoba.org)十分重视网络版权及其他知识产权的保护,针对网络侵权采取如下版权政策:
    1、本站有理由相信网友侵犯任何人的版权或作品,(图文,文字,下载,视频,非法传播),本站有权不事先通知即删除涉嫌侵权的作品和内容
    2、本站将采取必要的网络技术手段,确认为侵权作品或内容的用户有权进行警告、屏蔽、删除的行为,尽可能的防止侵权行为的发生
    3、搜搜吧影视资源均收集自互联网,没有提供影片资源存储,也未参与录制上传,若本站收录的资源涉及您的版权或知识产权或其他利益,我们会立即删除
    4、搜搜吧,删帖,投诉,举报,侵权,若本站侵犯您的权益,附上身份及权利证明,请直接发送邮件到 kefu-sosoba@qq.com 我们将在一个工作日内删除
    soso搜搜吧社区是聚合百度搜索,搜狗搜索,360搜索,新闻,教育,站长,广告,娱乐,影视,微信,网盘,营销,手机,汽车,游戏,论坛综合为一体的大型门户社区www.sosoba.org
    关闭

    搜搜吧社区公告上一条 /1 下一条

    Powered by www.sosoba.org X3.4© 2013-2019 搜搜吧社区 小黑屋|手机版|Archiver|地图|关于我们|腾讯云代金券|帮助中心|soso吧社区
    广告服务/项目合作: kefu-sosoba@qq.com  侵权举报邮箱: kefu-sosoba@qq.com  搜搜吧建站时间:创建于2013年07月23日
    免责声明:本站所有的内容均来自互联网以及第三方作者自由发布,版权归原作者版权所有,搜搜吧不承担任何的法律责任,若有侵权请来信告知,我们立即删除!
    本站热搜:搜搜吧,搜搜,搜搜网,搜一下,搜吧,soso,sousou,快搜,soso搜搜,好搜,搜索,soso问问,搜搜问问,搜搜小说,搜搜图片,搜狗搜索,微信搜索,图片搜索,百度搜索,手机搜索,网盘搜索

    GMT+8, 2019-10-22 14:48 , Processed in 1.125000 second(s), 9 queries , Gzip On, MemCache On.

    快速回复 返回顶部 返回列表