/ var / lib / mysqlフォルダ全体を別のサーバーにコピーできますか?(mysql vs mariadb、異なるバージョン)


9

MySQLを使用したLinuxシステム(LMDE)を使用していました。システムは、ほとんどのデータベースでinnodb_file_per_tableを使用していました。(バージョンがわからない、LMDEの「最新」は何か)

現在、MariaDBを使用する新しいシステム(Manjaro / Arch)を使用しています。

$ mysql --version
mysql  Ver 15.1 Distrib 10.0.15-MariaDB, for Linux (x86_64) using readline 5.1

古いシステムにはたくさんの大きなデータベースがあり、mysqldumpでコピーする必要がないことを本当に望んでいました。古いシステムから/ var / lib / mysqlフォルダーをコピーしたいのですが。

これは可能ですか?


おかしい。今、私はまったく逆の方向であるArchからMint(Ubuntuベース)が必要です。/ var / lib / mysqlを置き換えた後、「start:Job failed to start」というメッセージが表示されます。
ドンキホーテ2015

回答:


20

はい、可能です。(私は質問を書いているときにこれを理解しました)

  1. MariaDBを新しいArchシステムにインストールし、機能することを確認します。
    /etc/mysql/my.cnfに変更を加えます。例:innodb_file_per_table。
    (これの多くはこの質問の範囲外です)
  2. sudo systemctl stop mysqld
    (両方のサーバーで停止したいが、私の場合、もう一方はすでにオフになっている)
  3. / var / lib / mysqlフォルダの名前を、たとえば/ var / lib / _mysqlに変更します。
  4. 古いDebian(LMDE)システムから古い/ var / lib / mysqlフォルダーをコピーします。
  5. / var / lib / mysql内のすべてのファイルの所有権をmysql:mysqlに復元します。
    sudo chown -R mysql:mysql /var/lib/mysql
  6. sudo systemctl start mysqld
    ->Job for mysqld.service failed. See "systemctl status mysqld.service" and "journalctl -xe" for details.
  7. sudo systemctl status mysqld
    ->これはサービスが実行されていることを示していますが、いくつかの問題が発生しています。これがmysql_upgradeの目的です。
  8. mysql_upgrade -u root -p
    ノート:
    • 古いシステムのmysql rootパスワードです。
    • データベース名が無効なため、/ var / lib / mysqlから残っているフォルダーを1つ削除する必要がありました。
    • / var / lib / mysql / mysql_upgrade_infoファイルは書き込み可能である必要があります。
    • プロセスにはしばらく時間がかかる場合があります。
  9. sudo systemctl restart mysqld

警告:どうやら、より低いMySQLバージョンにダウングレードすることはできません。データベースをMySQL 5.5(または対応するMariaDB)に移行しようとしたところ、サーバーが起動しませんでした。代わりにMySQL 5.6をインストールする必要がありました。(MySQL 5.6に対応するMariaDBは私のLinuxディストリビューションでは利用できません)。


1
印象的です、+ 1。しかし:単に両側でmysqlを停止し、rsync-ing / var / lib / mysqlを実行してから開始するだけでは不十分ですか?
peterh-2015年

4
また、サーバー構成はこのプロセスでコピーされないことにも注意してください。新しいデフォルトのいくつかを受け入れることもできますが、カスタマイズされた変数も同様にコピーすることを確認する必要があります/etc/my.cnf
Richard

@リチャード:そうだね。実際、私はこれのいくつかをしなければなりませんでした、私が変更したことを正確に覚えていません。1つの変更点は、innodb_file_per_tableを有効にしたことです。
ドンキホーテ2015年

@PeterHorvathいいえ、mysql_upgradeが必要でした。
ドンキホーテ2015年

ただ言って、私はマンジャロからミントに戻って同じことをしました。うまくいきましたが、やはり、MariaDB 5.5ではなく、MySQL 5.6を使用することが重要でした。
donquixote 2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.