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

シェルスクリプトからMySQLコマンドを実行する方法は?

    -pを使用する必要があります パスワードを送信するフラグ。また、-pの間にスペースを入れてはならないため、注意が必要です。 とパスワード。

    $ mysql -h "server-name" -u "root" "-pXXXXXXXX" "database-name" < "filename.sql"
    

    -pの後にスペースを使用する場合 これにより、mysqlクライアントはパスワードの入力をインタラクティブに要求し、次のコマンド引数をデータベース名として解釈します。

    $ mysql -h "server-name" -u "root" -p "XXXXXXXX" "database-name" < "filename.sql"
    Enter password: <you type it in here>
    ERROR 1049 (42000): Unknown database 'XXXXXXXX'
    

    実際、私はユーザーとパスワードを〜/ .my.cnfに保存することを好みます。そのため、コマンドラインに入力する必要はまったくありません。

    [client]
    user = root
    password = XXXXXXXX
    

    次に:

    $ mysql -h "server-name" "database-name" < "filename.sql"
    

    コメントを再確認してください:

    上記のようなバッチモードのmysqlコマンドを、コマンドラインとシェルスクリプトで常に実行しています。正確なスクリプトやエラー出力を共有していないため、シェルスクリプトの何が問題になっているのかを診断するのは困難です。上記の元の質問を編集して、問題の例を提供することをお勧めします。

    また、シェルスクリプトのトラブルシューティングを行うときは、-xを使用します。 フラグを立てて、各コマンドがどのように実行されているかを確認します。

    $ bash -x myscript.sh
    


    1. JDBCを使用してMySqlデータベースに接続する方法

    2. Oracleクリティカルパッチアップデート–2020年10月

    3. 文字列演算子「+」はとても単純ですか?

    4. MYsqlテーブルから一意のキーまたは主キーを削除するためのクエリ