Installare i MySQL GUI tools (specialmente MySQL Workbench) in Ubuntu

Ultimamente mi ritrovo a fare una sorta di stage in una ditta di sistemi informativi della zona. L’azienda si occupa di database, e per lavorare mi hanno meso su un server dove ho potuto scegliere di mettere ciò che mi pareva.

Inutile dire che ho installato Ubuntu con una configurazione LAMP, più SSH e le solite cose sul client. Perché Ubuntu? Perché mi ci trovo bene, è la distro che conosco meglio e quindi è più facile per me lavorarci.

A questo punto, dato che si operava in MySQL, abbiamo deciso di verificare la presenza di software adatto allo scopo, ovvero che semplificasse almeno la parte di amministrazione e verifica delle query. Certo, esiste l’ottimo PhpMyAdmin, ma volevamo provare anche il resto.

Essendo venuti a conoscenza dei MySQL GUI Tools (in origine eravamo più interessati a MySQL Workbench, anche se poi l’abbiamo usato pochissimo) abbiamo deciso di installarli per provare.

Dato che in ditta sarei io “l’esperto” di Linux (in realtà ce n’è anche un altro ma viene raramente in sede) è ovviamente toccato a me. Vi posso dire solo una cosa: che agonia! :\

Ho impiegato tre ore abbondanti, e non tanto per i tempi di compilazione, quanto per realizzare come risolvere gli errori. Poi qualcuno mi dovrà spiegare perché nelle varie cartelle dei sorgenti ho dovuto dare il comando make all… Cos’è, make non gli andava bene?

D’accordo, piccoli sfoghi a parte, alla fine ho passato qualche ora a creare un buono script che automatizza tutto. Tale script scarica ed installa automaticamente la versione 5.0r5 di MySQL GUI Tools. È testato per funzionare su una Ubuntu 8.04 nuova di zecca. Naturalmente perché poi si possa usare è ovvio che da qualche parte deve essere installato un server MySQL opportunamente configurato.

Immagino che per farlo funzionare su altre distribuzioni bastino poche modifiche ai comandi, ma non saprei dirvi, sinceramente.

Veniamo al dunque, scaricate lo script da qui e ponetelo sulla Scrivania. ora basta dargli i permessi di esecuzione e farlo partire:

Avvio dello script
Avvio dello script

Ora non resta che aspettare. Può succedere, specie nella parte iniziale, che lo script sembri inchiodato. In realtà non è così, funziona bene. C’è solo da aspettare qualche minuto. L’unica cosa che vi raccomando è di controllare che il download del file dei sorgenti vada a buon fine (che non ci siano interruzioni insomma) perché altrimenti lo script prosegue e fa pasticci (non danneggia nulla, ma può succedere che crei qualche file inutile) e non conclude nulla. 😛

Ricordate inoltre che lo script vi chiederà più di una volta la password del vostro utente, quindi o lo fate partire subito anteponendoci sudo oppure ogni tanto dovete inserirla. Detto ciò, allacciate le cinture di sicurezza e partite.

La fase iniziale, dove viene scaricato l'archivio dei sorgenti
La fase iniziale, dove viene scaricato l’archivio dei sorgenti

Se tutto sarà andato a buon fine (ma anche no, in effetti…) il messaggio conclusivo sarà così:

In pieno stile MySQL, un educato saluto!
In pieno stile MySQL, un educato saluto!

Un indice di corretta esecuzione dello script è la presenza dei quattro pacchetti nella vostra home directory.

A questo punto, in maniera pressoché automatica avete tutto pronto. Non vi resta che appurare la popolazione del menù di Gnome:

Icone dei programmi installati
Icone dei programmi installati

Infine si deve fare un fix a mano. Digitate il seguente comando da terminale:

sudo gedit /usr/local/bin/mysql-workbench

E subito dopo la prima riga inserite quest’altra riga:

export LANG=en_US

Sembra assurdo, ma se non si esporta questa variabile, il tutto non parte su sistemi che non siano in lingua Inglese Americano.

Ora potete cominciare a provare i programmi, sperando che vi siano utili.

È software alpha, un po' limitato
È software alpha, un po’ limitato

Credo di non avere altro da aggiungere. Spero solo di aver reso la vita più semplice agli altri che si devono scontrare con questi strumenti, la cui compilazione sembra essere stata resa astrusa di proposito. 😉

Riferimenti:

38 pensieri riguardo “Installare i MySQL GUI tools (specialmente MySQL Workbench) in Ubuntu

  1. Ho controllato il tuo script.

    Io wget lo lancio sempre con lo switch -c in modo che se per qualsiasi motivo il download si interrompe lo riprende automaticamente.

    Inoltre prima di procedere con l’operazione successiva controllo sempre che l’operazione sia andata a buon fine con

    sudo rm -rdf /mio/file/da/eliminare > /dev/null

    if [ "SAFE__$?" != "SAFE__0" ] ; then
    echo "Errore blah blah blah";
    exit 1;
    fi

    echo "File eliminato correttamente";

  2. Ti ringrazio molto del contributo. 🙂 In effetti non ci sono controlli, anche perché non avevo molta voglia né necessità di implementarli. 😛 Comunque in linea di massima se il download fallisce basta interrompere lo script, cancellare il file corrotto e poi ripartire. 😉

  3. post più tecnico del solito… bello! ^^
    sono l’unico imbecille che non risce a scaricare lo script?
    comunque per uno script sarebbe meglio un nopaste, piuttosto che un sito di file sharing… non pensi? =)

  4. @Lazza
    compliments!
    Dato che hai automatizzato tutto, è un peccato non automizzare anche l’ultimo pezzo dove modifichi il file con gedit!
    Trova la lunghezza di /usr/local/bin/mysql-workbench:
    wc -l /usr/local/bin/mysql-workbench
    Diciamo che la lunghezza sia 100. Puoi creare il file con la nuova seconda riga con un
    head -1 /usr/local/bin/mysql-workbench > file && echo "export LANG=en_US" >> file && tail -99 /usr/local/bin/mysql-workbench >> file && sudo mv file /usr/local/bin/mysql-workbench
    Tutta questa roba, che è più lunga da scrivere che altro, la metti alla fine dello script e sei a posto! 🙂

  5. Lazza, e se per caso il file remoto è stato cancellato o per un motivo qualsiasi non è accessibile? Il tuo script va avanti lo stesso, ma ti manca qualcosa! 😮

    Un controllo semplice semplice e sei sicuro di non combinare macelli… 😉

    Stesso discorso per i vari spacchettamenti: potrebbe non esserci abbastanza spazio sul disco (a me succede sempre! 🙂 ) o potresti non disporre di sufficienti privilegi per manipolare quel file in quella particolare directory… Se ci pensi un attimo persino un banale cd (il comando, non il supporto ottico 🙂 ) può darti problemi!

    I permessi possono essere la più grande invenzione ed i tuoi più fidati amici o possono essere la peggiore delle beste, soprattutto quando hai fretta e vai avanti senza prestare troppa attenzione… 🙂

    Certo, tutto ciò sa di paranoico, dato che operi su di una macchina piallata di fresco, però è bene tenerle a mente certe cose…

    Riguardo allo stoppare e ripartire, a meno che non si tratti di errore massiccio brutto cattivo e pericoloso per la quiete pubblica, secondo il mio modesto parere se usi -c al posto di -nc sei più tranquillo e non devi riavviare 😉

    Il passaggio di gunzip lo puoi anche evitare, tar è in grado di gestire anche i file compressi:
    tar -xf file.tar.gz
    tar -xf file.tar.bz2
    Come sempre, -xvf per avere più feedback.

    Per il resto nulla da dire, ottimo lavoro.

  6. Se lasciavi Suse (o fedora, redhat, centos, etc.) ci mettevi 1 minuto ad installare tutto, visto che c’e’ l’rpm per Suse (e per gli altri). E poi devi ammettere che per un server suse e centos non sono poi cosi male. Pero’ de gustibus ….

  7. @ gain, dipende dai gusti. Io preferisco fare due clic piuttosto che i vari copia-incolla che rischiano anche di rovinare il codice. 😉
    @ emilator, già hai ragione. Forse anche usando sed o awk si poteva fare, però alla fine ho preferito scrivere così, anche perché non ho conoscenza avanzata di questi strumenti. 🙂
    @ unwiredbrain, quello che dici è giustissimo, ma come già accennato non mi pareva il caso di complicare più di tanto le cose finché sono gestibili. Il discorso dello spazio su disco mi è capitato al momento di virtualizzare (ero così distratto al momento della creazione della VM che ho messo il minimo sindacale di giga) ed ho risolto togliendo pacchetti superflui. 😳
    A parte questi dettagliucci, per i permessi ho messo sudo (spero che basti) e per quanto riguarda gunzip ti dirò, è che credevo potesse estrarre anche i tar quindi inizialmente l’avevo pensato per fargli fare tutto. Poi ho aggiunto tar per semplicità. 😛
    @ Stefano, ben vengano Fedora e CentOS, che sono libere e non hanno pasticci inutili, ma dovendo comunque cambiare ho messo ciò con cui mi trovavo meglio. Ti dirò, trovarmi una SuSE il cui gestore di pacchetti sembra progettato apposta per impedirmi di usarlo (già il fatto del login e password per potersi aggiornare… vabbé no comment) mi ha già dato fastidio di per sé. Vedere oltretutto che diversi comandi a cui ero abituato di default su Ubuntu lì non erano presenti, mi ha un pizzico spiazzato (e non parlo, ovviamente di apt che è prerogativa delle distribuzioni derivate da Debian, ma che mi viene in mente ora è per esempio locate).
    È vero, è questione di gusti. Io personalmente mi sono trovato meglio così.
    @ Tutti i suggeritori, vi ringrazio come al solito. Come non ho problemi ad ammettere ho una conoscenza della bash basilare, per cui ho cercato di fare il minimo indispensabile che in genere funziona. Certo, forse non è uno script per utenti principianti perché richiede un minimo di controllo, però torna comodo per velocizzare le operazioni.

  8. Scusa na roba, ma io ho trovato i pacchetti deb nel repository di ubuntu per administrator e query browser, workbench non so se c’è.. Perché andare a scaricare a mano le dipendenze e compilare se puoi fare apt-get install?

    Boh, mi sarà sfuggito qualcosa??

  9. @ Marco, grazie. 🙂
    @ malocchio, be’ intanto perché sono versioni diverse, e in un caso il pacchetto ha anche nome diverso. In secondo luogo, visto che uno andava compilato comunque, a ‘sto punto tanto valeva mettere tutto della stessa versione! 😀

  10. @ malocchio, be’ io penso che se devo installare MySql Workbench ad una certa versione (che non è pacchettizzato, e non chiedermi il motivo perché non ne ho idea) allora è bene che anche i prodotti strettamente in relazione con esso stiano a quella versione. Se fossero a versioni diverse sinceramente non ho idea di cosa succederebbe.

  11. io avrei usato centos, mi sta bene che è la distro che conosci meglio, ma è evidente che non usi ne vuoi usare altro. non è un pò restrittivo ubuntu e ubuntu e poi ancora ubuntu ? io l’ho mollata da troppo tempo e non me ne sono mai pentito. ci sono cose migliori e più (molto di più) performanti. open your eyes 😉

  12. intendo dire, per chiarezza, che se ti trovi in difficoltà ce’ man, c’e’ google, di mezzi ce ne sono a bizzeffe. Nel lavoro vero, ti troverai a dover imparare la distribuzione che non conosci. Dovrebbe essere per te una sfida costruttiva non capisco come fai ad avere la passione di linux e non avere brama e sete di conoscenza continua.
    locate in suse ? smart install slocate 😉 tra l’altro proprio quella che hai detto, suse, ha 3 o 4 package manager diversi a disposizione.
    Concludendo, se io mi trovo davanti ad una distro che non conosco (che poi le basi sono sempre le stesse: slack, debian, redhat e poco altro) mi prende proprio una cosa dentro e tanto faccio fin quanto la uso. Tutte le distro infondo sono UGUALI. Se arrivi a capire questo smetterai di usare unicamente Ubuntu.

  13. @ LuNa, a parte che credo di essere libero di usare quello che preferisco. 😉 Io non ho 4-5 computer come magari altri hanno, e non posso perciò tenere più di una installazione contemporanea. Non mi sento di cambiare di punto in bianco tutto, perché vorrei evitare di dover rimettere oltre ai programmi, anche le varie personalizzazioni a file di configurazione, e chi più ne ha più ne metta.

    Nulla mi vieta, quando avrò sufficiente tempo da dedicarci, di approfondire altre distro. E ci mancherebbe.
    Mi hanno insegnato che in un ambiente di lavoro non c’è tempo sempre di fare esperimenti. Il mio “stage” se vogliamo chiamarlo così durerà circa un mese. Se mi fossi dovuto mettere ad imparare una distro, non avrei fatto altro poi. 😛

    Il capo mi ha chiesto con cosa mi trovassi bene, io gli ho detto che andavano benissimo o Debian o Ubuntu e che usavo Ubuntu. Il capo ha detto: allora metti quella. Bene, per me non c’era da discutere. 😀 Oltretutto, per puntualizzare, lui preferiva qualcosa che non fosse fortemente legato alle politiche aziendali di Ibm.
    Lo so che tutte le distro (più o meno) rispettano le LSB.

    Chi ti dice che io non abbia voglia di conoscere? Un sacco di cose sui database le ho imparate proprio in ditta. 😀 In definitiva, io non precludo affatto le altre distro. Per esempio giudico Fedora ottima. Però non ho la stessa “agilità” nell’usarla, caratteristica che mi è richiesta al momento dati i tempi molto ristretti in cui si sta portando avanti la situazione.

    Comunque, grazie di aver posto la domanda, perché capisco che il dubbio poteva nascere. 😉

  14. Sono d’accordo, anche a me piacerebbe conoscere le altre distro, come si gestiscono i pacchetti, la rete ecc.
    Vorrei anche sperimentare OpenSolaris (che non è Linux ma ci siamo quasi). L’ho provato una volta e sono rimasto veramente esterrefatto, un OS veramente ben fatto e curato…

    Ma non ho tempo. Se mi mettessi a provarle tutte (anche io ho un computer solo e condiviso da QUATTRO persone) non avrei più tempo per niente. Non starei neanche qui a commentare. Inoltre, uso Ubuntu perché amo Gnome e non sopporto KDE, ma non vorrei iniziare una guerra tra DE :-D… E’ anche vero che per sistemi server distro come Slackware, CentOS ecc. sono migliori di Ubuntu e in un’implementazione seria la mia scelta ricadrebbe su queste. Ma per installare un fuc*ed server durante uno stage di un mese io userei la distro che conosco meglio. Non sai cosa darei perché qui in ufficio mi facciano usare Linux. Appena ho nominato timidamente “php?” loro hanno risposto con “asp.net!”. Ho un po’ esagerato ma più o meno è andata così all’inizio…

    Nel lavoro vero, ti troverai a dover imparare la distribuzione che non conosci. Dovrebbe essere per te una sfida costruttiva non capisco come fai ad avere la passione di linux e non avere brama e sete di conoscenza continua.
    Ma quanti nel lavoro vero usano Linux? E’ vero ce ne sono e anche sempre di più, ma quante software house (un lavoro da “programmatore”) usano Linux per sviluppare? Almeno qui in Italia. Io sto facendo stage in una piccola ditta e non fanno altro che implementazioni con server SQL Server e client un progetto Access 2007. Se invece vai a pensare ad aziende come Sun e altre, che credono nell’open source, allora ne possiamo parlare, ma siamo ancora molto distanti dalla realtà italiana.

    Se invece ti ritrovi ad essere sistemista magari qualche sistema Unix ti passa sotto mano. Ma con tutte le macchine di rete che usano l’Active Directory chi va ad usare Samba? Via con Server 2003 o 2008. Ma mi sembra anche giusto. Se un’azienda sviluppa per clienti Windows, ha workstation Windows e quindi anche server Windows. Linux può però essere utile in WebServer database, proxy, nat ecc.

    no? 😉

  15. Diventa un ottimo commento solo se si comincia a criticarlo.

    Però fai bene a lamentarti dei tuoi lettori (mi un post precedente), qui nn commenta nessuno (quasi)…

    salutiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

  16. Scusa il flood…. ma l’hai messa tu la faccina minuscola in basso a sinistra della pagina?
    cos’è…. un easter egg?

  17. Lazza, scusa se non ho ancora risposto ma in questi giorni sono sbattuto un po’ qua un po la per impegni di famiglia, per di più con gli esami che si avvicinano.

    Ma non temere, risponderò. Ed esaustivamente pure.

  18. Ciao!
    Ho seguito la guida ma non mi sembra funzionare granchè!
    Se creo una tabella mi fa creare un solo campo in quella tabella!
    Cioè dopo aver cliccato su apply mi trovo solo il campo id!
    Come mai?
    Grazie

  19. ecco la sbrodolatura che da quando clicco sul tasto apply:

    ** (mysql-workbench-bin:20756): CRITICAL **: myx_grt_dict_item_set_by_path: assertion `dict != NULL’ failed

    ** (mysql-workbench-bin:20756): CRITICAL **: myx_grt_dict_item_set_by_path: assertion `dict != NULL’ failed

    ** (mysql-workbench-bin:20756): CRITICAL **: myx_grt_dict_item_set_by_path: assertion `dict != NULL’ failed

    ** (mysql-workbench-bin:20756): CRITICAL **: myx_grt_dict_item_set_by_path: assertion `dict != NULL’ failed

    ** (mysql-workbench-bin:20756): CRITICAL **: myx_grt_dict_item_set_by_path: assertion `dict != NULL’ failed

    ** (mysql-workbench-bin:20756): CRITICAL **: myx_grt_dict_item_set_by_path: assertion `dict != NULL’ failed

    ** (mysql-workbench-bin:20756): CRITICAL **: myx_grt_dict_item_set_by_path: assertion `dict != NULL’ failed

    ** (mysql-workbench-bin:20756): CRITICAL **: myx_grt_dict_item_set_by_path: assertion `dict != NULL’ failed

    Da cosa puo dipendere?

  20. Ciao, ottimo lavoro.
    Avrei un problema però, il mysql query browser non si connette al server mysql(tranquillo l’ho installato:) ) il fatto tra l’altro è che quando pingo il server risponde.
    Ti posto esattamente l’errore:
    Could not connect to host ‘localhost’.
    MySQL Error Nr. 2002
    Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

    Garzie, a presto.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *