2

古いMySqlサーバーから新しいサーバーにデータを転送しようとしています。SQLDumperを使用しようとしましたが、取得し続けていますError 500。テーブルは混乱していて、半分はMyISAMで、残りの半分はInnoDBであり、サーバーは最後の段階にあります。正直に言ってください。

iframesデータの使用とGET転送のリクエストを考えています(以下の例)。誰かがもっと良いアイデアを持っているなら、それは大いにありがたいです。

私が転送しているテーブルには3600万のレコードがあり、それをテストしました。大まかな計算では、すべてのレコードを転送するのに数か月かかります。以下の方法がおそらく最も非効率的な方法であることは知っていますが、他の方法は考えられません。

     $result = mysql_query("SELECT * FROM nu_list $limit");
        while($row = mysql_fetch_array( $result )) {

    print "<iframe src="http://mynewsite.com/add.php?row1=$row[1]&row2=$row[2]&row3=$row[3]" 
frameborder="0" scrolling="no" WIDTH="1" HEIGHT="1">\n";  } 


        $nxt = $_GET["pageno"] + 1;

        if($nxt < $lastpage) {
        print "<BODY>
        <script type=\"text/javascript\">
        <!--
        window.location = \"/ripw3.php?pageno=$nxt&lastpage=$lastpage\"
        //-->
        </script>
        </BODY>
        </HTML>\n";
4

2 に答える 2

2

サーバーにアクセスでき、シェルにアクセスできる場合は、mysql ダンプを使用してデータベースのコピーをダンプする必要があります。次に、その sql ファイルを新しいサーバーに転送してインポートします。

このサイトでは、堅実なmysql ダンプのインポート/エクスポートのチュートリアルを提供しています。

これを php でやり遂げるのに必死なら、mysql を php でバックアップするスクリプトを書いた人がいます。基本的な考え方は、すべてのテーブルを表示し、それらをループして各テーブルを記述し、create table ステートメントを作成してから、各テーブルのデータを小さなチャンクで選択し、insert ステートメントを手動で作成することです。しかし、それはダンプに比べてひどい痛みです。

共有ホストを使用している場合は、mysql ダンプを使用できない可能性があり、これがエラー 500 を説明している可能性があります。ただし、共有ホストを使用している場合は、コントロール パネルからデータベースのコピーをダウンロードできる可能性があります。

于 2012-04-23T17:44:08.487 に答える
1

MySQL Workbenchを使用してデータベースを完全にエクスポートし、Percona Toolkitpt-show-grantsからユーザーと権限をエクスポートできます。

于 2012-04-23T17:38:22.113 に答える