MySQL迁移升级解决方案



任务背景

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


任务要求

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

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


任务拆解

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

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

3. 备份数据库(省略)

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

5. 测试验证


任务解决方案


环境说明


具体步骤


1. 老环境停止相应服务

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


2. 新环境部署安装MySQL


① 官网下载mysql软件

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


② 安装需求

安装目录(basedir):/usr/local/mysql数据库目录(datadir):/usr/local/mysql/data端口:3306socket文件:/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 mysqlid: mysql: no such user[root@db01 mysql]# useradd -r -s /sbin/nologin mysql[root@db01 mysql]# id mysqluid=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/mysqldatadir=/usr/local/mysql/dataport=3307socket=/usr/local/mysql/mysql.socklog-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) 初始化说明

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

2. 当前需求是将原来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 -pEnter password:Looking for ‘mysql’ as: /usr/local/mysql/bin/mysqlLooking for ‘mysqlcheck’ as: /usr/local/mysql/bin/mysqlcheckError: 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 = 3306mysql.default_host = 10.1.1.37[MySQLi]mysql.default_port = 3306mysql.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 httpdtcp 0 0 :::80 :::* LISTEN 1376/httpd


测试验证

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

学习资源:


5


天玩转


MySQL

https://pan.baidu.com/s/1Cb1eGwb4dn45I4tbQ2Ggzg


提取码:yfw6

https://pan.baidu.com/s/1qXYYhcS



提取码:

mkqu

相关推荐: 用mysql作ftp实验

用虚拟用户作为帐户,存储在Mysql。认证托管给pam。所以需要安装mysql和pam交流的软件。需要编译安装。mariadb-server已经开发云主机域名默认安装。相关推荐: linux 安装mysql 5.7.21详解以及安装过程中所遇问题解决在安装过程…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/05 21:22
下一篇 06/05 21:22

相关推荐