Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 33
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    142

    Ottenere DataBase in directory non di default

    Ciao a tutti,
    mi servirebbe un consiglio sulla seguente questione:

    trovandomi su sistema Ubuntu, al quale ho riservato circa 20Gb del mio HD, ho necessità di creare un database di dimensioni piuttosto grosse .
    Pertanto vorrei spostare il database che il mysql workbench mi ha creato automaticamente in /var/lib/mysql in una directory della partizione dati sul mio HD che prende i restanti (500-20)Gb.
    E' oppurtuno farlo semplicemente tagliando e incollando il file che si trova in /var/lib/mysql? E se si, come accedo a questa cartella che (a mio avviso inspiegabilmente) risulta bloccata (come si intuisce non sono espertissimo di sistemi linux)?
    Altrimenti come modificare le impostazioni di default del workbench per salvare il DB in una directory scelta da me?

    Grazie anticipatamente

    Ciao
    <esistono cose che non esistono>

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    142
    Ho risolto il problema dei permessi con sudo chmod 777 <nomecartella>.

    Rimango in attesa di suggerimenti riguardo la questione del "copia e incolla" di database e delle impostazioni del workbench

    grazie di nuovo
    <esistono cose che non esistono>

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    ci sono essenzialmente vari metodi per fare quello che chiedi
    (in versione "niubbo").
    bisogna cominciare a far attenzione a non spostare solo i db myisam, ma anche quelle innodb, dipende da come è stato installato se sono sottocartelle una dell'altra
    lo puoi capire così
    codice:
    mysql> show global variables like '%data%';
    +----------------------------+------------------------+
    | Variable_name              | Value                  |
    +----------------------------+------------------------+
    | character_set_database     | latin1                 |
    | collation_database         | latin1_swedish_ci      |
    | datadir                    | /var/db/mysql/         |
    | innodb_data_file_path      | ibdata1:10M:autoextend |
    | innodb_data_home_dir       |                        |
    | max_length_for_sort_data   | 1024                   |
    | myisam_data_pointer_size   | 6                      |
    | skip_show_database         | OFF                    |
    | updatable_views_with_limit | YES                    |
    +----------------------------+------------------------+
    9 rows in set (0.00 sec)
    lì vedi che la cartella dati è /var/db/mysql, e che innodb_data_home_dir è vuota (ossia i file ibdata sono dentro /var/db/mysql, la cosa non è scontata)

    ATTENZIONE quelli sono percorsi BSD, NON linux, ovviamente dovrai considerare i tuoi!

    1) fermare il server mysql, copia la cartella dati dove vuoi (destinazione); riavvia il server mysql, cambia il percorso dei dati (da mysql); ferma il server, cancella la vecchia cartella, riavvia il server


    2) ferma il server mysql; sposta la cartella dove vuoi; cambia il percorso dei dati nel file my.cnf (.ini su windows), riavvia il server mysql

    ---
    3) come 2) ma usando un link anzichè una cartella "fisica"
    questo rende più semplice caricare db di servizio (ti basta alterare il link)
    Sostanzialmente se usi tabelli myisam puoi lasciare il percorso dati come normale, MA mettendo un link al nome del db "da qualche altra parte".
    tanto per capirci uno schema super_antani si trova... nella cartella /var/db/mysql/super_antani

    ========
    E, per finire, attenzione ai diritti sulle cartelle, devi usare chown per renderle leggibili-scrivibili a mysql / all'utente / gruppo che usa il server.
    Tutto chiaro?

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    142
    Di chiaro è chiaro, ciononostante se oltre a scrivere cosa fare
    (
    1) fermare il server mysql, copia la cartella dati dove vuoi (destinazione); riavvia il server mysql, cambia il percorso dei dati (da mysql); ferma il server, cancella la vecchia cartella, riavvia il server
    )

    mi dicessi come farlo mi sentirei + a mio agio

    Grazie cmq
    <esistono cose che non esistono>

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    142
    Ho fatto alcune prove e dopo un iniziale pasticcio (non riuscivo + a connettermi al server Mysql) ho reinstallato il suddetto serve e come prima cosa ho modificato il file my.cnf che era in /etc/mysql.
    In particolare ho modificato la linea con
    datadir= /var/lib/mysql
    inserendo il percorso che volevo.
    Tuttavia il workbench (che ho pure dovuto reinstallare) continua a salvare in /var/lib
    <esistono cose che non esistono>

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    1,469
    Originariamente inviato da Pete
    Tuttavia il workbench (che ho pure dovuto reinstallare) continua a salvare in /var/lib
    ma cosa intenti "continua a salvare"?

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    142
    Scusa ho scritto velocemente, provo a spiegarmi meglio:

    l esecuzione del comando

    codice:
    create database <nomeDB>
    nel workbench crea un file nella directory /var/lib/mysql.

    Questo valore di path corrisponde al valore di default della variabile datadir nel file my.cnf.
    Tuttavia questo valore è stato da me modificato, pertanto mi aspetterei che il file in questione venisse creato nella cartella identificata dal path da me posto nella variabile datadir. Questo non avviene.

    Grazie ancora
    Ciao
    <esistono cose che non esistono>

  8. #8
    Due strade.
    QUESTA
    ...linka la /var/lib/mysql al percorso che hai settato nel my.cnf, ovvero:
    Elimina il Db di prova che hai creato.
    Assicurati che dentro /var/lib/mysql non ci sia nulla.
    SE c'è qualcosa
    codice:
    sudo service mysql stop
    sudo ls -l /var/lib/mysql
    e postaci il risultato.
    Se invece non c'è nulla
    codice:
    sudo ln -s /var/lib/mysql /path/percorso/settato/in/my/cnf
    sudo service mysql start
    Così, anche se il wb salva in /var/lib/mysql, fisicamente sta salvando nel percorso che hai messo nel my.cnf
    OPPURE QUESTA
    cerchi il file di configurazione del wb e modifichi la rispettiva riga che indica dove salvare i db


  9. #9
    non è cosi semplice

    va anche riconfigurato apparmor (dato che è su ubuntu) in quanto di default, per motivi di sicurezza, evita che certi software possano avere accesso dove non ne hanno motivo di averne e dato che di default è configurato per lavorare in /var/lib/mysql cambiando directory va aggiornata anche la configurazione di apparmor

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    142
    Il risultato da terminale di
    codice:
    sudo ls -l /var/lib/mysql
    è:
    codice:
    totale 20488 -rw-r--r-- 1 mysql mysql        0 2011-02-08 19:24 debian-5.1.flag -rwxrwxrwx 1 mysql mysql 10485760 2011-02-08 21:09 ibdata1 -rw-rw---- 1 mysql mysql  5242880 2011-02-08 21:09 ib_logfile0 -rw-rw---- 1 mysql mysql  5242880 2010-12-16 20:08 ib_logfile1 drwxrwxrwx 2 mysql mysql     4096 2011-02-08 19:24 mysql -rwxrwxrwx 1 mysql mysql        6 2010-12-16 20:08 mysql_upgrade_info
    Nel frattempo ho provato a seguire questa http://micheleb26.wordpress.com/2009...edir-di-mysql/ guida passo per passo, ho riavviato il pc, avviato sudo service mysql start, aperto il workbench, aperto la connessione col database e...
    codice:
    Cannot Connect to Database Server Your connection attempt failed for user 'root' from your host to server at 127.0.0.1:3306:   Lost connection to MySQL server at 'reading initial communication packet', system error: 111  Please: 1 Check that mysql is running on server 127.0.0.1 2 Check that mysql is running on port 3306 (note: 3306 is the default, but this can be changed) 3 Check the root has rights to connect to 127.0.0.1 from your address (mysql rights define what clients can connect to the server and from which machines)  4 Make sure you are both providing a password if needed and using the correct password for 127.0.0.1 connecting from the host address you're connecting from
    <esistono cose che non esistono>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.