1. 首页
  2. IT资讯

MySQL迁移升级解决方案

“u003Cdivu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E任务背景u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cbru003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F6602549fb4604ce88a6b4d58e125b391″ img_width=”514″ img_height=”380″ alt=”MySQL迁移升级解决方案” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cp class=”ql-align-justify”u003E由于现有业务架构已不能满足当前业务需求,在保证数据完整的前提下,现需要将原有数据库迁移到另外一台单独的服务器上,在保证原有服务正常的情况下,将原有LAMP环境中mysql数据库版本5.6.31升级为5.6.35.u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E任务要求u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E1. 在业务维护时间(02:00-4:00)段对数据库进行全量备份u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E2. 将MySQL数据库从原有服务器迁移到新服务器上并且升级版本为5.6.35u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E任务拆解u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E1. 新服务器安装Centos7.5,并且安装MySQL-5.6.35版本数据库u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E2. 停止监控、停止前端应用、停止MySQL数据库u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E3. 备份数据库(省略)u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E4. 迁移数据库——>同步数据库文件到新的环境中(rsyncu002Fscp)u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E5. 测试验证u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E任务解决方案u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E环境说明u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F99bd5444d9f543b29a3c3daa52a0213a” img_width=”557″ img_height=”122″ alt=”MySQL迁移升级解决方案” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E具体步骤u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E1. 老环境停止相应服务u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E1) 停止监控略2) 停止应用服务apache和数据库[root@lamp ~]# service httpd stop[root@lamp ~]# service mysql stopShutting down MySQL.. SUCCESS!u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E2. 新环境部署安装MySQLu003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E① 官网下载mysql软件u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E# du -sh mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz301M mysql-5.6.35-linux-glibc2.5-x86_64.tar.gzu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E② 安装需求u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E安装目录(basedir):u002Fusru002Flocalu002Fmysql数据库目录(datadir):u002Fusru002Flocalu002Fmysqlu002Fdata端口:3306socket文件:u002Ftmpu002Fmysql.sock错误日志文件:u002Fusru002Flocalu002Fmysqlu002Fdatau002Fmysql.erru003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E③ glibc方式安装步骤u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E1) 解压软件包u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E# tar -xf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz# cd u002Fusru002Flocalu002F# ln -s u002Fsoftu002Finstalleru002Fmysql-5.6.35-linux-glibc2.5-x86_64 mysql注意:进入到u002Fusru002Flocal目录里软连接u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E2) 创建用户并修改目录权限u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E1. 查看用户是否存在[root@db01 mysql]# id mysqlid: mysql: no such user[root@db01 mysql]# useradd -r -s u002Fsbinu002Fnologin mysql[root@db01 mysql]# id mysqluid=997(mysql) gid=995(mysql) 组=995(mysql)2. 更改mysql的安装目录的权限[root@db01 mysql]# chown -R mysql.mysql u002Fusru002Flocalu002Fmysqlu002F[root@db01 mysql]# ll -d u002Fusru002Flocalu002Fmysqlu002Fdrwxr-xr-x 13 mysql mysql 191 10月 9 10:26 u002Fusru002Flocalu002Fmysqlu002Fu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E3) 修改配置文件u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E修改u002Fetcu002Fmy.cnf文件[root@db01 mysql]# vim u002Fetcu002Fmy.cnf[mysqld]basedir=u002Fusru002Flocalu002Fmysqldatadir=u002Fusru002Flocalu002Fmysqlu002Fdataport=3307socket=u002Fusru002Flocalu002Fmysqlu002Fmysql.socklog-error=u002Fusru002Flocalu002Fmysqlu002Fdatau002Fmysql3307.erru003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E4) 拷贝启动脚本u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E[root@db01 mysql]# pwdu002Fusru002Flocalu002Fmysql[root@db01 mysql]# cp support-filesu002Fmysql.server u002Fetcu002Finit.du002Fmysqlu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E5) 初始化说明u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E1. 正常安装新数据库直接使用,是需要初始化数据库然后再启动使用u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E2. 当前需求是将原来MySQL数据库文件迁移到新的数据库的数据目录里,故不需要初始化u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E3. 迁移数据库到新环境u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E说明:新数据库服务器上操作u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E① 同步老库数据文件到新库数据目录里u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E[root@db01 mysql]# rsync -av 10.1.1.1:u002Fusru002Flocalu002Fmysqlu002Fdatau002F u002Fusru002Flocalu002Fmysqlu002Fdatau003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E② 启动新数据库u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E直接启动新的数据库,并且检查日志文件(查看是否有选项不兼容)[root@db01 mysql]# service mysql startu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E③ 升级数据库(重点,升级数据库文件)u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E使用mysql_upgrade命令检查数据文件的兼容性[root@db01 ~]# u002Fusru002Flocalu002Fmysqlu002Fbinu002Fmysql_upgrade -S u002Ftmpu002Fmysql.sock -p123注意:1. 在实际的环境中,建议使用-s参数,不检查业务表,只检查系统文件2. 升级是需要连接数据库的,-p密码 -S指定socket文件[root@db01 mysql]# u002Fusru002Flocalu002Fmysqlu002Fbinu002Fmysql_upgrade -pEnter password:Looking for ‘mysql’ as: u002Fusru002Flocalu002Fmysqlu002Fbinu002FmysqlLooking for ‘mysqlcheck’ as: u002Fusru002Flocalu002Fmysqlu002Fbinu002FmysqlcheckError: Failed while fetching Server version! Could be due to unauthorized access.FATAL ERROR: Upgrade failed原因:连接数据库失败u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E4. 原web服务连接新数据库(LAMP=>LNMP)u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E① 修改php连接mysql的配置文件(如果有)u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E[root@lamp ~]# find u002F -name php.iniu002Fusru002Flocalu002Flibu002Fphp.ini[root@lamp ~]# vim u002Fusru002Flocalu002Flibu002Fphp.ini[MySQL]mysql.default_port = 3306mysql.default_host = 10.1.1.37[MySQLi]mysql.default_port = 3306mysql.default_host = 10.1.1.37u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E② 修改网站配置文件连接数据库u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E修改www.myblog.net网站所在数据库目录的配置文件[root@lamp www]# pwdu002Fvaru002Fhtmlu002Fwww[root@lamp www]# vim wp-config.php…u002Fu002F ** MySQL 设置 – 具体信息来自您正在使用的主机 ** u002Fu002Fu002F** WordPress数据库的名称 *u002Fdefine(‘DB_NAME’, ‘myblog’);u002F** MySQL数据库用户名 *u002Fdefine(‘DB_USER’, ‘root’);u002F** MySQL数据库密码 *u002Fdefine(‘DB_PASSWORD’, ‘123’);u002F** MySQL主机 *u002Fdefine(‘DB_HOST’, ‘10.1.1.37’);u002F** 创建数据表时默认的文字编码 *u002Fdefine(‘DB_CHARSET’, ‘utf8’);u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E③ 新数据库授权为web服务u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E新的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全部关闭掉,不然打死都连接不上!u003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E④ 启动web服务u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E[root@lamp ~]# service apache start[root@lamp ~]# netstat -nltp|grep httpdtcp 0 0 :::80 :::* LISTEN 1376u002Fhttpdu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003Eu003Cstrongu003E⑤ 测试验证u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cp class=”ql-align-justify”u003E1.浏览器访问2. web服务器上使用mysql工具远程访问[root@lamp ~]# mysql -uroot -h10.1.1.37 -uroot -p123u003Cu002Fpu003Eu003Cpu003E学习资源:u003Cu002Fpu003Eu003Cpu003Eu003Ca class=”pgc-link” data-content=”mp” href=”http:u002Fu002Fyun.itheima.comu002Fcourseu002F144.html?jrtt” target=”_blank”u003E5天玩转MySQLu003Cu002Fau003Eu003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:MySQL迁移升级解决方案

主题测试文章,只做测试使用。发布者:程序员,转转请注明出处:http://www.cxybcw.com/26786.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code