Sublime Text 3 kao MySQL klijent

Sublime Text 3 + MySQL Query

Nedavno sam Aptanu zamenio malim a moćnim programom Sublime Text (danas sam pored verzije 2 instalirao i verziju 3, čisto da vidim koliko je brža). Jedna veoma zanimljiva mogućnost ST-a je proširivost i mogućnost lakog pisanja dodataka.

Tumarajući forumom, uputstvima i jutjubom u akciji izučavanja „sitnih crevaca“, naišao sam na zanimljivu mogućnost izvršavanja MySQL upita direktno iz editora, ali u par predloga koje sam pronašao nije bilo objašnjeno sve u sitna crevca i potpuno automatizovano, te u duhu starih Zapisa, reših da pribeležim ovo jer će mi verovatno zatrebati i kasnije, kad budem… nemam pojma šta.

Važna napomena: ako već koristite Sublime Text 3, preporučujem da akcije opisane ispod zamenite dodatkom SQLExec (hvala Branku na preporuci).

Već neko vreme koristim koristim Windows 7, ali stvarno, i pomenuti Sublime Text editor za veb razvoj. Podigao sam veb server pomoću WAMP-a koji sa sobom donosi MySQL 5.6 i phpMyAdmin. Zbog postavljanja lozinke za root nalog u bazi, neophodno je da za svaki ulazak u mysql u komandnom promptu kucam korisničko ime i lozinku:

mysql -u root -p

ili čak sve u cugu:

mysql -u root -p rootpass

Međutim, kako ovo nije praktično, a i dosađuje poruka:

Warning: Using a password on the command line interface can be insecure.

pomoć sam potažio u tzv. login-path magiji.

Prvi korak: Pravljenje login-path pomoću komande mysql_config_editor

Jednostavno u komandnom promptu treba izvršiti komandu:

mysql_config_editor set --login-path=sublime --host=localhost --user=root --password

pri čemu je ovo sublime zapravo alijas za automatsko logovanje na lokalhost kao rut. Ovo sam uradio namenski za ST pa otuda i to „sublime“, ali može da se stavi bilo šta.

Nakon izvršavanja gornje komande treba ukucati postojeću lozinku, i posao je gotov. Na dalje se može koristiti sintaksa:

mysql --login-path=sublime

Drugi korak: Pravljenje definicije za kompajliranje (build) u ST

Kreira se nova bild datoteka kroz menije: ToolsBuild SystemNew Build System… i podrazumevana sintaksa zameni sledećim kodom:

{
 "cmd": ["D:\\wamp\\bin\\mysql\\mysql5.6.12\\bin\\mysql.exe", "--login-path=sublime", "-s", "-U", "-e", "source $file", "-t"],
 "selector": "source.sql",
 "encoding": "utf-8"
}

Meni je MySQL instaliran u D:\wamp\bin\mysql\mysql5.6.12 (zahvaljujući WAMP-u). Naravno, ovu putanju treba prilagoditi u zavisnosti od sistema i lokacije na kojoj je instaliran MySQL.

Sledi čuvanje tako izmenjene datoteke kao sql.sublime-build u ST direktorijum Packages/User. Kod mene je to na lokaciji C:\Users\aleksandar\AppData\Roaming\Sublime Text 3\Packages\User (%APPDATA%\Sublime Text 3\Packages\User).

Treći korak: Pisanje SQL upita

Sada se jednostavno napravi nova datoteka i sačuva sa ekstenzijom .sql, bilo gde i sa bilo kojim nazivom. Ovo treba uraditi samo prvi put, zbog prepoznavanja kompajlerske komande.

Sintaksa koja se ovde unosi je standardna, prvo treba definisati koja baza se „napada“ (u ovom primeru je to „test“), a dalje ide standardni SQL:

USE test;
SELECT * FROM wp_options WHERE option_name = 'siteurl';

Četvrti korak: Izvršavanje SQL upita

Sada jednostavno treba pritisnuti ST tastersku kombinaciju za kompajliranje (build) – Ctrl+B (meni Tools: Build) i u konzoli se gotovo trenutno dobija rezultat upita, uz podatak o trajanju izvršavanja upita.

Sublime Text 3 + MySQL Query

Izgleda šašavo, ali koraci 3 i 4 mogu da se ponavljaju u nedogled. Najbolje od svega je što nije potrebno sačuvati izmenjenu SQL sintaksu da bi se ona izvršila, akcija kompajliranja sama čuva izmene i pokreće mysql, a onda izbacuje u konzoli rezultat.

Različiti kompajleri za različite MySQL servere.

Još jedna zanimljivost je da je moguće napraviti više različitih build datoteka za različite servere, uključujući i udaljene, nakon čega iz menija Tools: Build System samo treba odabrati opciju odgovarajućeg servera.

Ako naziv .sublime-build datoteke bude naziv servera, veoma jednostavno može da se odabere prava opcija.

Naravno, ne treba za boraviti prvi korak i napraviti odgovarajući login-path za drugi serveri, i zabava može da počne.

Da, znam, postoje specijalizovane alatke za upravljanje bazama (tipa Workbench), ali nije na odmet imati pri ruci i nešto ovako.

8 responses to Sublime Text 3 kao MySQL klijent

probao nedavno, jako malo radim u lokalu pa mi ne pomaze mnogo, vecinu odradim preko phpmyadmina. Usput, mogao si da stavis da si kupio softver i onaj screenshot sa fb-a sto si share, cisto da se malo digne ta neka svest u Srbiji i da se vidi da i „nasi“ ljudi kupuju softvere koje koriste.

Hello!
Was relentlessly trying to do this, make Mysql queries in sublime editor. I was almost giving up because could not find much explanation of how it worked only on Linux on Windows and other systems. Alias ​​has many examples for wrapping other systems. I was almost giving up when I found your page with instructions.
Thanks for posting!

Za sublime-text 3 postoji plugin SQLExec koji omogućava da se brzo vide definicije tabela i podaci u istima sa zgodnim prečicama. Malo mi je bio nezgodan za konfiguraciju, tj. traži da korisnik baze ima neku šifru, ali odlično radi.
Mislim da je zgodnije rješenje od pravljenja builda, jer se lakše dolazi do podataka o tabelama.

Ja sam pokusavao da napravim sql upit u pomocu SQLExeci uporno mi izbacuje grsku “ ‘mysql’ is not recognized as an internal or external command,
operable program or batch file.“
Probao sam da ubacim putanju ali ni to nije pomoglo.

A jesi li podesio putanju do mysql.exe? Kod mene SQLExec.sublime-settings datoteka izgleda ovako:

{
	"sql_exec.commands": {
        "mysql" : "C:\\wamp\\bin\\mysql\\mysql5.6.17\\bin\\mysql.exe"
    },
    "connections": {
        "wp39": {
            "type"    : "mysql",
            "host"    : "127.0.0.1",
            "port"    : 3306,
            "username": "test",
            "password": "test",
            "database": "test"
        },
    }
}

Leave a Reply