天天看点

mysql版本升级

版本升级:

mysql版本很多,有5.5,5.6,5.7都可能,有时候我们的目的是升级数据库版本.

升级的方法有两种,第一种就是用mysqldump方式来操作,因为导出来就是sql语句,所以直接导进去新库就是升级了。例如:

<code>#在旧库导出</code>

<code>mysqldump -uroot -p</code><code>'****'</code> <code>-h10.0.2.4 -P3307 --triggers -R --single-transaction --no-autocommit -A &gt;old.sql</code>

<code>#在新库导入</code>

<code>mysql -uroot -p</code><code>'****'</code> <code>-h10.0.2.5 -P3306 &lt;old.sql</code>

而第二种是基于用xtrabackup方式或者直接更新程序目录,则需要有以下的命令操作进行升级,不然的话,即使启动了也做不了任何操作的。xtrabackup这里就不详细介绍了,只说更改程序要怎么做,例如:

<code>#先关闭旧的mysql程序</code>

<code>/etc/init</code><code>.d</code><code>/mysql</code> <code>stop</code>

<code>#更换mysql程序目录,具体按实际情况</code>

<code>cp</code> <code>-ar </code><code>/usr/local/mysql/my</code><code>.cnf </code><code>/usr/local/mysql57/</code>

<code>rm</code> <code>-rf </code><code>/usr/local/mysql</code>

<code>mv</code> <code>/usr/local/mysql57</code> <code>/usr/local/mysql</code>

<code>cp</code> <code>-ar </code><code>/usr/local/mysql/support-files/mysql</code><code>.server </code><code>/etc/init</code><code>.d</code><code>/mysql</code>

<code>#然后启动新的mysql </code>

<code>/etc/init</code><code>.d</code><code>/mysql</code> <code>start</code>

<code>#要确认mysql在启动状态,关闭状态做不了升级</code>

<code>/etc/init</code><code>.d</code><code>/mysql</code> <code>status</code>

<code>#执行升级命令</code>

<code>mysql_upgrade --defaults-</code><code>file</code><code>=</code><code>/usr/local/mysql/my</code><code>.cnf -uroot -p123 -h127.0.0.1</code>

<code>.    ok</code>

<code>Upgrade process completed successfully.</code>

<code>Checking </code><code>if</code> <code>update is needed.</code>

操作很快,不会占用很多时间,然后你的数据库就真正可以正常使用了,也就是升级完成.

另外,对于同版本恢复,不会存在任何升级问题,可以忽略,例如5.6.29升级成5.6.34是不需要做升级操作的,而5.6升级成5.7则需要做升级操作。还有就是不允许高版本恢复到低版本,就算给你用到也各种问题.这里说的是对于低版本恢复到高版本,就是要多做一个升级操作,不做升级就会报错使用不了.

mysql分支升级问题

需要额外说明的是,mysql有很多分支,有mysql官方,有percona,有mariadb,有新的alsql。理论上都是通用,但是难免是有些差异的,所以这种跨分支升级,个人建议是使用mysqldump这类工具比较实际一些。特别是新版的mariadb和mysql官方版本,差异基本已经不可修复,如果硬来就不能好好使用了。

     本文转自arthur376 51CTO博客,原文链接:http://blog.51cto.com/arthur376/1944485,如需转载请自行联系原作者