Sublime Text 3 као MySQL клијент

Недавно сам Аптану заменио малим а моћним програмом Sublime Text (данас сам поред верзије 2 инсталирао и верзију 3, чисто да видим колико је бржа). Једна веома занимљива могућност ST-а је проширивост и могућност лаког писања додатака.

Тумарајући форумом, упутствима и јутјубом у акцији изучавања „ситних цреваца“, наишао сам на занимљиву могућност извршавања MySQL упита директно из едитора, али у пар предлога које сам пронашао није било објашњено све у ситна цревца и потпуно аутоматизовано, те у духу старих Записа, реших да прибележим ово јер ће ми вероватно затребати и касније, кад будем… немам појма шта.

Важна напомена: ако већ користите Sublime Text 3, препоручујем да акције описане испод замените додатком SQLExec (хвала Бранку на препоруци).

Већ неко време користим користим Windows 7, али стварно, и поменути Sublime Text едитор за веб развој. Подигао сам веб сервер помоћу WAMP-а који са собом доноси MySQL 5.6 и phpMyAdmin. Због постављања лозинке за root налог у бази, неопходно је да за сваки улазак у mysql у командном промпту куцам корисничко име и лозинку:

mysql -u root -p

или чак све у цугу:

mysql -u root -p rootpass

Међутим, како ово није практично, а и досађује порука:

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

помоћ сам потажио у тзв. login-path магији.

Први корак: Прављење login-path помоћу команде mysql_config_editor

Једноставно у командном промпту треба извршити команду:

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

при чему је ово sublime заправо алијас за аутоматско логовање на локалхост као рут. Ово сам урадио наменски за ST па отуда и то „sublime“, али може да се стави било шта.

Након извршавања горње команде треба укуцати постојећу лозинку, и посао је готов. На даље се може користити синтакса:

mysql --login-path=sublime

Други корак: Прављење дефиниције за компајлирање (build) у ST

Креира се нова билд датотека кроз меније: ToolsBuild SystemNew Build System… и подразумевана синтакса замени следећим кодом:

{
 "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"
}

Мени је MySQL инсталиран у D:\wamp\bin\mysql\mysql5.6.12 (захваљујући WAMP-у). Наравно, ову путању треба прилагодити у зависности од система и локације на којој је инсталиран MySQL.

Следи чување тако измењене датотеке као sql.sublime-build у ST директоријум Packages/User. Код мене је то на локацији C:\Users\aleksandar\AppData\Roaming\Sublime Text 3\Packages\User (%APPDATA%\Sublime Text 3\Packages\User).

Трећи корак: Писање SQL упита

Сада се једноставно направи нова датотека и сачува са екстензијом .sql, било где и са било којим називом. Ово треба урадити само први пут, због препознавања компајлерске команде.

Синтакса која се овде уноси је стандардна, прво треба дефинисати која база се „напада“ (у овом примеру је то „test“), а даље иде стандардни SQL:

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

Четврти корак: Извршавање SQL упита

Сада једноставно треба притиснути ST тастерску комбинацију за компајлирање (build) – Ctrl+B (мени Tools: Build) и у конзоли се готово тренутно добија резултат упита, уз податак о трајању извршавања упита.

Sublime Text 3 + MySQL Query

Изгледа шашаво, али кораци 3 и 4 могу да се понављају у недоглед. Најбоље од свега је што није потребно сачувати измењену SQL синтаксу да би се она извршила, акција компајлирања сама чува измене и покреће mysql, а онда избацује у конзоли резултат.

Различити компајлери за различите MySQL сервере.

Још једна занимљивост је да је могуће направити више различитих build датотека за различите сервере, укључујући и удаљене, након чега из менија Tools: Build System само треба одабрати опцију одговарајућег сервера.

Ако назив .sublime-build датотеке буде назив сервера, веома једноставно може да се одабере права опција.

Наравно, не треба за боравити први корак и направити одговарајући login-path за други сервери, и забава може да почне.

Да, знам, постоје специјализоване алатке за управљање базама (типа Workbench), али није на одмет имати при руци и нешто овако.

Објављено од стране

Александар

Данијелин супруг, Михаилов и Николин отац. Веб програмер и оснивач TechWebUX.

8 мишљења на „Sublime Text 3 као MySQL клијент“

  1. 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.

    1. Шта да ти кажем, нисам га ја купио због људи у Србији, него због мене, смарају попапови са питањем да ли хоћу да га купим :) Како ST тако и SFTP :)

  2. 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!

  3. 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.

    1. Одличан тип, хвала! С тим што је подешавање МНОГО једноставније од овог описаног билдер ситема :)

    2. 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.

      1. А јеси ли подесио путању до mysql.exe? Код мене SQLExec.sublime-settings датотека изгледа овако:

        {
        	"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"
                },
            }
        }

Затворено за коментаре.