sql >> Databasteknik >  >> RDS >> Mysql

Hur stänger jag av autocommit för en MySQL-klient?

Det bästa sättet är kanske att skriva ett skript som startar mysql kommandoradsklient och sedan automatiskt kör vilken sql du vill innan den lämnar över kontrollen till dig.

linux kommer med en applikation som heter 'expect'. den interagerar med skalet på ett sådant sätt att den efterliknar dina tangenttryckningar. den kan ställas in för att starta mysql, vänta på att du anger ditt lösenord. kör ytterligare kommandon som SET autocommit = 0; gå sedan till interaktivt läge så att du kan köra vilket kommando du vill.

för mer om kommandot SET autocommit = 0; se.. http://dev.mysql. com/doc/refman/5.0/en/innodb-transaction-model.html

Jag använder förväntar mig att logga in på ett kommandoradsverktyg i mitt fall startar det ssh, ansluter till fjärrservern, startar programmet anger mitt användarnamn och lösenord och överlämnar sedan kontrollen till mig. sparar mig massor av skrivande :)

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

DC

Räkna med manus från Michael Hinds

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

förvänta är ganska kraftfull och kan göra livet mycket lättare som i det här fallet.

om du vill få skriptet att köras utan att anropa, förvänta dig använda shebang-raden

infoga detta som den första raden i ditt skript (tips:använd which expect för att hitta platsen för din förväntade körbara fil)

#! /usr/bin/expect

ändra sedan behörigheterna för ditt skript med...

chmod 0744 myscript

ring sedan skriptet

./myscript

DC



  1. Tvinga omladdning/uppdatera när du trycker på bakåtknappen

  2. Hantera en PostgreSQL Commitfest

  3. Min DBA är sjuk - Databas Failover Tips för SysAdmins

  4. Hur man väljer och sorterar efter kolumner som inte finns i Groupy By SQL-sats - Oracle