版本更新:
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 >old.sql</code>
<code>#在新庫導入</code>
<code>mysql -uroot -p</code><code>'****'</code> <code>-h10.0.2.5 -P3306 <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,如需轉載請自行聯系原作者