• ベストアンサー
  • すぐに回答を!

mysql データベースを別のサーバへインポート

サーバAで作成したmysqlデータベースをサーバBへコピーしたいと考えております。 サーバAの /var/lib/mysql/mysql のフォルダごとコピーし、サーバBへ移してフォルダを上書きしたのですが、上書きされておらず、デフォルトのままでした。 mysqldump mysql -p > mysql でmysqlデータベースをエクスポートし、 mysql -uroot -p -D mysql < mysql インポートを試みたのですが、すでにmysqlデータベースが存在し、中にデフォルトの空ではないテーブル(user, colums_priv等) が存在するためにインポートすることができませんでした。 ERROR 1050 at line 11: Table 'columns_priv' already exists サーバAで新たに追加したユーザ、また privileges をサーバBへコピーするにはどうすれば良いのでしょうか? よろしくお願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1466
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

> フォルダごとコピーし、サーバBへ移してフォルダを上書き これは本来はやってはいけません。 同じアーキテクチャ(OS)かつ同じバージョン(メジャーバージョン)のMySQLの場合は行っても良いですが、それ以外でやると互換性がないので使えません。 いったん手動でインポート先のデータベースを消してから行うか、 エクスポートしたSQL文のファイルに DROP DATABASE `データベース名`; CREATE DATABASE `データベース名`; USE `データベース名`; DROP TABLE IF EXISTS `テーブル名`; CREATE TABLE IF NOT EXISTS `テーブル名` ( 以下略 というように一旦テーブルやデータベースを削除するようにしましょう。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご返事遅れました。 アドバイス頂いたとおりに一度インポート先のDBをDROPしてからやったら、インポートすることができました。 しかしながら、データベース上にアカウントは存在するのに、なぜかそのアカウントを使ってMySQLにログインしようとすると失敗します…。パスワードがはじかれてしまって…。

その他の回答 (1)

  • 回答No.2
  • yambejp
  • ベストアンサー率51% (3827/7415)

sqlで出力した後、エディタなどで編集し、replace構文で取り込んで下さい

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • mysqlデータベースリストア

    MySQL初心者です。 基本的な質問ですが、教えてください。 MYSQLデータベースのバックアップは、コマンドラインからmysqldumpでバックアップを行うと思います。 CMD>mysqldump -u(ユーザーグループ) -p(パスワード) (データベース名) > (バックアップファイル名).sql バックアップSQLを使って再度リストアで入れなおす場合は、 drop database (データベース名);と create database (データベース名); を実行してから行う必要があるのでしょうか? (バックアップファイル名).sqlの中身を見てみると、 CREATE TABLE '(テーブル名)' (・・・・ ・・・)の前に DROP TABLE IF EXISTS '(テーブル名)'; のようにテーブルのdropをしてからの処理はあるのですが。

    • ベストアンサー
    • MySQL
  • MYSQL 4.0.x から 5.X系への移行

    自宅サーバでWindows+MYSQLを使用しているのですが、 サーバで使用しているPCを買い替えるため、MYSQLのバージョンアップを考えています。(MySQL4.0のインストーラが、既にサポート切れでダウンロードできず、仕方なくのバージョンアップです。。。) 仕方なく、最新版の5.0をダウンロードしてきたのですが、 できれば、mysqldumpでSQLを吐いて移行するのではなく、ファイル(*.frmなど)で移行したいのですが、可能でしょうか? (SQLにすると、量がかなり多く、また、以前、mysqldumpで出力したファイルが、リストアできなかったこともあり、mysqldumpでの出力は避けたいです。)

    • ベストアンサー
    • MySQL
  • SSHを使ったmysqlのエクスポート方法

    SSHを使ったmysqlのエクスポート方法を教えてください LinuxコマンドもMysqlも初心者ですが、最近SSHを使ってレンタルサーバーに接続をしていろいろと試してみています。 以下を試してみましたが、エラーが出てでエキスポートできませんでした。 1. $mysql -h サーバー名 -u ユーザ名 -p 2. mysqlのパスワードを入力してmysqlにログイン 3.mysql> mysqldump -u サーバー名 -p データベース名 > testdump.sql; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysqldump -u サーバー名 -p データベース名 > testdump.sql' at line 1 というエラーができてエクスポートできません。 mysql> mysqldump --user=ユーザ名 --password=パスワード名 データベース名 < testdump.sql も試してみましたができませんでした。 以上のものは全てweb上で見つけたコマンドです。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • データベースのインポート方法。

    データベースのインポート方法。 wordpressを使用していてサーバが度々落ちるので、新しいサーバに移行したいと考えています。 ですが、新しいサーバへのデータベースのインポート方法に手間取っています。 エラーは以下のように出ます。 ↓↓↓ エラー 実行した SQL: -- -- Table structure for table `○○○` -- DROP TABLE IF EXISTS `○○○` ; MySQLのメッセージ: ドキュメント #1046 - No database selected ↑↑↑ phpMyAdminと言うものを使用しております。 ・データベースに新しいテーブルを作成する ・文字コードを合わせる 辺りなのかと思っておりますが、テーブルのフィールド数と言うものが良く判りません。 文字コードは移行前サーバはECU-JPと書かれていますが、移行先の文字セットeucjpmsと言うものでよいのでしょうか? 原因が解りましたらご教授お願い致したく書き込みました。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • mysqldumpについて

    MySQL初心者です。 すみません。教えてください。 mysqldump -u(ユーザー) -p(パスワード) --default-character-set=sjis (データベース名) > (ファイル名).sqlでバックアップを実行すると自動的に1つのsqlファイルに全テーブル分、以下のように生成されているのですが、リストアする時は既存のデータベースを削除(drop database データベース名;) する必要がない。又、権限付与(grant)もする必要が無いということになりますでしょうか? 逆にdatやdumpファイルとしてバックアップしているものについては、データベースの削除&権限付与等行う必要があるということになりますでしょうか? DROP IF EXISTS 'テーブル名' ; CREATE TABLE 'テーブル名' ( ) INSERT INTO 'テーブル名' VALUES ( )

    • ベストアンサー
    • MySQL
  • mysqlimportの使い方について

    FreeBSD版のMySQLのデータをmysqldumpコマンドで 以下のようにバックアップしました。 mysqldump -uroot -p12345 AAA > 041213.txt こうしてバックアップされた041213.txtファイルを、Windows版のMySQLにそのままリカバリーしたいのですが、 mysqlimportを以下のように使用すると、 mysqlimport -uroot -p12345 AAA 041213.txt mysqlimport: Error: Table 'AAA.041213' doesn't exist, when using table: 041213 というエラーが返ってきてしまいます。良くわからないのが、データーベースとしてAAAを指定しているのに、インポートしようとしているファイル名がAAA.041213というファイルのようになっているような気がするのですが。。。 Windows版のMySQLにmysqldumpで出力されたファイルをそののままリカバリーさせる一番単純な方法はどうすればいいのでしょうか?

    • ベストアンサー
    • MySQL
  • mysqldumpにて復元できない

    xamppのmysqlを使っていたのですが、エラーが出て動かなくなったため、xamppは削除してMysql5.5.13を新たに導入したのですが、xamppの削除するまえにbackupを取っていた*.sqlが復元できません。  コマンドプロンプトより、mysqlのbinフォルダーまで移動して、そこでmysqldump -uユーザ名 -pパスワード名 データベース >復元するファイル名を行いましたが、復元できません。  インターネットで調べたりしているのですが、復元方法がわかりません。  ご教授の程宜しくお願い申し上げます。

  • MySQL(innodb)のバックアップについて。

    innodbとはMySQLで取り扱えるデータベースの1つで、MySQLで取り扱える他のデータベースと違うところはinnodbにはトランザクション機能がある、というところまではわかっているのですが、innodbのバックアップにはinnodb HotBackupという製品があるようです。MySQLの事もデータベースの事もあまりわかっておらず、ここで質問するのもご迷惑かもしれませんが、MySQLのデータベース(特にinnodb)のバックアップの際には、mysqldumpコマンドだけでは対応できないので、innodb HotBackupという製品があるのでしょうか。何を質問しているかわかりづらいようでしたら申し訳ないですが、どうぞ宜しくお願いします。

  • mysqldumpにおけるメモリの使用

    mysqldumpを使用して日次バックアップを取得しているのですが、 新しいサーバに変えたあとにDump時間が長くなっています。 MySQLバージョン:v4.0 サーバスペック:   新サーバのほうが高い(メモリは16GB→60GB)   InnoDBのバッファプールサイズを12GB→45GBに増やしました。 現象:   新サーバ以降後に、Swap in/outが頻繁に発生しています。   freeやvmstatで見る限り、メモリ空きは0ではない状況です。 mysqldump指定オプション:   --opt や --quickを指定してもdump時間は短縮されませんでした。 InnoDBのバッファプールサイズの指定が大きすぎたのでしょうか。 何か解決策はないでしょうか。

    • ベストアンサー
    • MySQL
  • Mysqlでmysqldumpする方法を教えて。

    プログラマーが残していたphpプログラムがあります。 php自体は弄れるのですが、データーベース系の話は、私はさっぱり分かりません。 今回は、mysqlのデーターのバックアップを取りたいのですが、やりかたが分かりません。 mysqldumpしてダウンロードするようなのですが、そもそもサーバにログインする方法が分かりません。 mysqldumpを実行するために、何が必要なのか、どういう手順が必要なのか、 本当に全く分からない状態です。 mysql5を入れて、コマンドラインでやるのかと思って、インストールしようとしたのですが、インストールもうまくいかない感じです。 phpmyadminのように簡単にできるものがあれば、お教えいただければと思います。 (ちなみに、phpmyadminのエクスポートは容量制限に引っかかってできませんでした) お手数かと思いますが、よろしくお願いします。

    • ベストアンサー
    • MySQL