sql >> Database teknologi >  >> RDS >> Mysql

Hvordan slår jeg autocommit fra for en MySQL-klient?

Den bedste måde er måske at skrive et script, der starter mysql-kommandolinjeklienten og derefter automatisk kører den sql, du ønsker, før den overdrager kontrollen til dig.

linux kommer med et program kaldet 'forvente'. den interagerer med skallen på en sådan måde, at den efterligner dine tastetryk. den kan indstilles til at starte mysql, vent på, at du indtaster din adgangskode. kør yderligere kommandoer såsom SET autocommit = 0; gå derefter ind i interaktiv tilstand, så du kan køre enhver kommando, du ønsker.

for mere om kommandoen SET autocommit = 0; se.. http://dev.mysql. com/doc/refman/5.0/en/innodb-transaction-model.html

Jeg bruger forventer at logge ind på et kommandolinjeværktøj i mit tilfælde, det starter ssh, opretter forbindelse til fjernserveren, starter programmet indtaster mit brugernavn og adgangskode og overdrager derefter kontrollen til mig. sparer mig for en masse skrivning :)

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

DC

Forvent manuskript leveret af Michael Hinds

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

forventer er ret kraftfuld og kan gøre livet meget lettere som i dette tilfælde.

hvis du ønsker at få scriptet til at køre uden at kalde, skal du forvente brug shebang-linjen

indsæt dette som den første linje i dit script (tip:brug which expect for at finde placeringen af ​​din forventede eksekverbare)

#! /usr/bin/expect

skift derefter tilladelserne til dit script med..

chmod 0744 myscript
 

kald derefter scriptet

./myscript
 

DC



  1. Hvordan kan jeg få de mest populære ord i en tabel via mysql?

  2. Find den nærmeste placering ved hjælp af postnummer?

  3. Maksimal udførelsestid i phpMyadmin

  4. Sådan bruges Alter Table Statement i SQL?