web-dev-qa-db-ja.com

sshセッションがタイムアウトした場合、mysql dbインポートは中断されますか?

大容量(数GB)のmysql DBがあり、それを介してインポートする予定です。

mysql -u root -p mydb < mydb.sql

sSHセッションで。

SSH接続が切断されるとどうなりますか?

次のようなものを実行する方が安全ですか

Nohup mysql -u root -p mydb < mydb.sql

それともmysqlは気にしないのですか?

以下を使用する

  • MySQL 5.1.45
  • CentOS 5.x
3
Mike B

MySQLセッションを(Nohupとともに)バックグラウンドに置かずにSSHがドロップした場合、DB接続はSSHセッションのなすがままです。したがって、はい、mysqlはSSHセッションのライフサイクルを考慮します。

次のように、最後に&を付けて起動する必要があります。

Nohup mysql -u root -p mydb < mydb.sql &

次に、プロセス1(init)がSSHセッションの終了時にmysqlセッションを実行しているプロセスID(自発的または自発的)を取得するので、OKを感じて離れることができます(この時点で意図的にログアウトできます)。不随意)突然孤立したため(なんて素晴らしいお父さん!!!).

2
RolandoMySQLDBA

パーティーには少し遅れましたが、私自身はこの問題に苦労し、解決策を見つけて共有したいと思いました。

ソリューション1

端末を閉じた後でもプロセスが実行されるため、screenの使用はこの状況に最適です。

Sudo apt install screen

画面を開く

screen

ここでコマンドを実行して、mysql dbダンプをインポートできます。

mysql -u username -p database_name < sqldump.sqlまたはデータベースにログインしてファイルをインポートするだけでsource /var/www/html/db/my_database.sql;

画面「ctrl + a + d」を終了するには

使用可能な画面をリストすることができます

screen -lsscreen -rで画面を開くだけ

ジョブが完了したら、単に画面を開き、exitコマンドを使用して画面を閉じます。


ソリューション2

2つ目の方法は、セッションが閉じたときにNohupも終了することに気付いたNohupを使用することです。並べ替えるには、disownを使用する必要があります

Nohup mysql -u'root' -p'password' databasename < sqldump.sql & > sql_load.log 2>sql_load_err.log disown %1

1
Sachi.Dila