Autore Topic: MySQL: spostare datadir  (Letto 5288 volte)

Offline fox91

  • Newbie
  • *
  • Post: 4
    • Mostra profilo
MySQL: spostare datadir
« il: 15 Ottobre 2011, 11:01:15 »
Salve a tutti.
Ho un server su cui ho installato CentOS 6, che uso per svariate cose tra cui anche web server.
Ho comprato un nuovo hard disk in modo da poter spostare tutti i dati su di esso (compresi i db di mysql).
Dopo aver installato mysql con
Codice: [Seleziona]
# yum install mysql mysql-devel mysql-server ho editato il file /etc/my.cnf ed ho cambiato la variabile datadir con una directory che ho creato sul nuovo disco. (il tutto prima di avviare mysql per la prima volta)
Quando tento di avviare mysqld con
Codice: [Seleziona]
# service mysqld start mi restituisce questo errore:
Codice: [Seleziona]
MySQL Daemon failed to start.
Avvio di mysqld:                                           [FALLITO]
Come posso fare per spostare la datadir di mysql?

PS: la cartella che conterrà i db sul nuovo disco ha gli stessi permessi e lo stesso proprietario della cartella di default di mysql.

PS: il log di mysql mi scrive questo:
Codice: [Seleziona]
111014 18:32:26 mysqld_safe Starting mysqld daemon with databases from /hdd/raid01/storage_db
111014 18:32:26 [Warning] Can't create test file /hdd/raid01/storage_db/lrcoffice01.lower-test
111014 18:32:26 [Warning] Can't create test file /hdd/raid01/storage_db/lrcoffice01.lower-test
/usr/libexec/mysqld: Can't change dir to '/hdd/raid01/storage_db/' (Errcode: 13)
111014 18:32:26 [ERROR] Aborting

PS: questo è il mio file di configurazione /etc/my.cnf:
Codice: [Seleziona]
[mysqld]
#datadir=/var/lib/mysql
datadir=/hdd/raid01/storage_db
#socket=/var/lib/mysql/mysql.sock
socket=/hdd/raid01/storage_db/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Grazie a tutti.

Offline LonelyWolf

  • Moderator
  • Hero Member
  • *****
  • Post: 1396
    • Mostra profilo
    • Traversate dei laghi
Re: MySQL: spostare datadir
« Risposta #1 il: 15 Ottobre 2011, 11:37:24 »
Il log dicer che non può scrivere nella cartella che gli hai impostato

Offline smeserver

  • Hero Member
  • *****
  • Post: 1313
    • Mostra profilo

Offline fox91

  • Newbie
  • *
  • Post: 4
    • Mostra profilo
Re: MySQL: spostare datadir
« Risposta #3 il: 16 Ottobre 2011, 14:37:19 »
Ho già seguito tutti i tutorial sull'argomento che ho trovato su google, ma senza successo.
Ho visto che molte persone hanno avuto il mio stesso problema ma sui forum nessuno posta la soluzione...
Ho visto anche io che sul log mi dice che non riesce a scrivere nella cartella ma la mia domanda è: come faccio a fare in modo che possa scriverci?
Ho dato alla nuova destinazione tutti i permessi identici alla cartella di default ma quando avvio mysqld (naturalmente da root) mi dà il messaggio "avvio fallito".

Questo è quello che mi stampa al primo avvio (quando la cartella datadir è vuota):
Codice: [Seleziona]
# service mysqld start
Inizializzazione del database MySQL:  Installing MySQL system tables...
111015 11:43:36 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
111015 11:43:36 [Warning] Can't create test file /hdd/raid01/storage_db/lrcoffice01.lower-test
111015 11:43:36 [Warning] Can't create test file /hdd/raid01/storage_db/lrcoffice01.lower-test
/usr/libexec/mysqld: Can't change dir to '/hdd/raid01/storage_db/' (Errcode: 13)
111015 11:43:36 [ERROR] Aborting

111015 11:43:36 [Note] /usr/libexec/mysqld: Shutdown complete


Installation of system tables failed!  Examine the logs in
/hdd/raid01/storage_db for more information.

You can try to start the mysqld daemon with:

    shell> /usr/libexec/mysqld --skip-grant &

and use the command line tool /usr/bin/mysql
to connect to the mysql database and look at the grant tables:

    shell> /usr/bin/mysql -u root mysql
    mysql> show tables

Try 'mysqld --help' if you have problems with paths.  Using --log
gives you a log in /hdd/raid01/storage_db that may be helpful.

Please consult the MySQL manual section
'Problems running mysql_install_db', and the manual section that
describes problems on your OS.  Another information source are the
MySQL email archives available at http://lists.mysql.com/.

Please check all of the above before mailing us!  And remember, if
you do mail us, you MUST use the /usr/bin/mysqlbug script!

                                                           [FALLITO]

Offline dankan77

  • Moderator
  • Hero Member
  • *****
  • Post: 1365
    • Mostra profilo
    • E-mail
Re: MySQL: spostare datadir
« Risposta #4 il: 16 Ottobre 2011, 16:59:14 »
Perchè non provi ad indicare che mysql è il proprietario di datadir=/hdd/raid01/storage_db ?

come regola dovrebbe bastare un

chown mysql:mysql /hdd/raid01/storage_db -R


Ciao

Offline fox91

  • Newbie
  • *
  • Post: 4
    • Mostra profilo
Re: MySQL: spostare datadir
« Risposta #5 il: 16 Ottobre 2011, 17:48:45 »
chown mysql:mysql /hdd/raid01/storage_db -R
E' la prima cosa che ho fatto... ho fatto il chown sulla cartella /hdd/raid01/storage_db in modo che avesse gli stessi permessi della cartella di default /var/lib/mysql

Offline LonelyWolf

  • Moderator
  • Hero Member
  • *****
  • Post: 1396
    • Mostra profilo
    • Traversate dei laghi
Re: MySQL: spostare datadir
« Risposta #6 il: 17 Ottobre 2011, 12:06:10 »
Se selinux è abilitato allora dovresti cambiare anche le policies della cartella:
chcon -R system_u:object_r:mysqld_db_t /hdd/raid01/storage_db

Offline fox91

  • Newbie
  • *
  • Post: 4
    • Mostra profilo
Re: MySQL: spostare datadir
« Risposta #7 il: 21 Ottobre 2011, 14:09:46 »
Ho provato anche a fare questo
Codice: [Seleziona]
chcon -R system_u:object_r:mysqld_db_t:s0 /hdd/raid01/storage_db ma continua a non avviarsi.
Poi ho provato ad impostare SELinux in modalita disabled e funziona tutto alla perfezione.
Per adesso il server gira senza SELinux. Cosa mi consigliate di fare?

Offline smeserver

  • Hero Member
  • *****
  • Post: 1313
    • Mostra profilo
Re: MySQL: spostare datadir
« Risposta #8 il: 21 Ottobre 2011, 14:25:08 »
"selinux mysql datadir change" -> google: i primi risultati sono sul sito mysql, quindi presumo tu possa partire da li..

Offline mayers81

  • Hero Member
  • *****
  • Post: 613
    • Mostra profilo
    • E-mail
Re: MySQL: spostare datadir
« Risposta #9 il: 21 Ottobre 2011, 15:06:38 »
prima prova con setenforce 0
Mayers

Where there is a shell, there is a way