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

MySQLクライアントの自動コミットをオフにするにはどうすればよいですか?

    おそらく最善の方法は、mysqlコマンドラインクライアントを起動し、制御を渡す前に必要なSQLを自動的に実行するスクリプトを作成することです。

    Linuxには「expect」というアプリケーションが付属しています。キーストロークを模倣するような方法でシェルと相互作用します。 mysqlを起動するように設定できます。パスワードを入力するのを待ちます。 SET autocommit = 0;などのコマンドをさらに実行します 次に、インタラクティブモードに移行して、任意のコマンドを実行できるようにします。

    コマンドの詳細については、SET autocommit = 0; を参照してください。 http://dev.mysql。 com / doc / refman / 5.0 / en / innodb-transaction-model.html

    私はexpectを使用してコマンドラインユーティリティにログインします。私の場合は、sshを起動し、リモートサーバーに接続し、アプリケーションを起動してユーザー名とパスワードを入力し、制御を私に渡します。入力の山を節約します:)

    http://linux.die.net/man/1/expect

    DC

    MichaelHindsが提供するスクリプトを期待する

    spawn /usr/local/mysql/bin/mysql 
    expect "mysql>" 
    send "set autocommit=0;\r" 
    expect "mysql>" interact
    

    期待はかなり強力であり、この場合のように生活をはるかに楽にすることができます。

    期待を呼び出さずにスクリプトを実行したい場合は、シバンラインを使用してください

    これをスクリプトの最初の行として挿入します(ヒント:which expect 期待される実行可能ファイルの場所を見つけるため)

    #! /usr/bin/expect
    

    次に、スクリプトの権限を..

    で変更します。
    chmod 0744 myscript
    

    次に、スクリプトを呼び出します

    ./myscript
    

    DC



    1. MySQLで2つの列を比較する方法

    2. プリペアドステートメントにhtmlentities()またはhtmlspecialchars()が必要ですか?

    3. ClusterControlとProxySQLでSQLファイアウォールを簡単に

    4. MySQLデータを使用した無限スクロール