sql >> データベース >  >> RDS >> Mysql

コマンドラインを使用してデータベースをインポートする方法

    SSHの使用に慣れていない場合は、Adminerを使用してデータベースをインポートする方が簡単です。ただし、データベースが非常に大きい場合(たとえば、1 GBを超える場合)、コマンドラインからMySQLを使用してデータベースをインポートする方が簡単な場合があります。

    これらの手順は、コマンドラインを使用してデータベースをエクスポートしたことを前提としていますが、 .sqlで終わるすべてのデータベースエクスポートファイルで機能します。 または.sql.gz

    データベースエクスポートファイルを含むファイルをサーバーにまだコピーしていない場合は、最初にSFTPを使用してサーバーにコピーする必要があります。アプリを所有しているのと同じシステムユーザーを使用して、ファイルをサーバーにSFTPで転送する必要があります。

    次に、ファイルをサーバーにSFTPで転送するために使用したのと同じユーザーとしてサーバーにSSHで接続します。

    SSH経由でログインしたら、データベースをアップロードまたはエクスポートしたディレクトリに移動する必要があります。コマンドラインを使用してデータベースをエクスポートするためのガイドに従った場合、データベースエクスポートファイルは、 mysqldumpを実行したディレクトリにあります。 指図。 SSH経由でログインした後にディレクトリを変更しない限り、これはServerPilotシステムユーザーのディレクトリになります: / srv / users / SYSUSER SYSUSERを使用 実際のシステムユーザーであること。

    データベースをインポートするために実行する正しいコマンドは、エクスポートされたデータベースダンプのファイル拡張子によって異なります。

    ファイルが.sql.gzで終わる場合 、次のコマンドを使用してファイルをインポートします。ここで、 DB_NAME エクスポートをインポートする既存のデータベースの名前であり、 DB_USER そのデータベースに関連付けられているデータベースのユーザー名は次のとおりです。

    zcat DB_NAME.sql.gz | mysql --password --user DB_USER DB_NAME

    ファイルが.sqlで終わる場合 ( .gzはありません )、次のコマンドを使用してファイルをインポートします:

    cat DB_NAME.sql | mysql --password --user DB_USER DB_NAME

    上記のインポートコマンドは、データベースエクスポートファイルが配置されているのと同じディレクトリにいることを前提としています。同じディレクトリにいない場合は、フルパスを指定する必要があります(例: /srv/users/SYSUSER/some-directory/DB_NAME.sql.gz )コマンドのデータベースエクスポートファイルに。

    上記のコマンドのいずれかを実行すると、データベースユーザーのパスワードの入力を求められます。正しいパスワードを入力すると、インポートプロセスが開始されます。データベースのサイズがかなり大きい場合は、完了するまでに時間がかかることがあります。インポートが成功した場合、出力は返されず、コマンドプロンプトに戻り、コマンドを再度入力できます。

    :MySQLのユーザー名とパスワードはではありません サーバーへのSSH接続に使用したシステムユーザーパスワードと同じです。データベースユーザーのパスワードを覚えていない場合は、こちらのガイドに従ってリセットできます。


    1. コードでは非常に遅いが、SSMSでは速いクエリ

    2. MySQLのローリングアップグレードを実行する方法

    3. PostgreSQL-データベースユーザー「postgres」としてのbashスクリプトからのクエリ

    4. MySQL:列が存在しない場合はALTER TABLE