Modificare data directory, mariaDB, raspbian

di il
6 risposte

Modificare data directory, mariaDB, raspbian

Salve, ho un db mariaDB installato su un raspberry pi 0w (os Raspbian lite), e siccome non mi basta lo spazio sulla sd ho deciso di usare un hd esterno per salvare i dati del db (di default in '/var/lib/mysql').

dopo una giornata di riccerche e tentativi falliti ancora non sono riuscito a risolvere il problemma, seguendo guide tipo:
https://tecadmin.net/change-default-mysql-data-directory-in-linux/ ,
https://grepitout.com/change-mysql-data-directory-linux/

pratticamente dopo aver modificato il parrametro 'datadir' nel file di configurazione '/etc/mysql/mariadb.conf.d/50-server.cnf',
qundo provo ad avviare il db ('sudo service mysql start') mi da l'errore:
Job for mariadb.service failed because the control process exited with error cod e.
See "systemctl status mariadb.service" and "journalctl -xe" for details.

6 Risposte

  • Re: Modificare data directory, mariaDB, raspbian

    Non è mysql, è mariadb. Comunque puoi
    Cambiare la directory nel file cnf
    Creare un link nel file System
  • Re: Modificare data directory, mariaDB, raspbian

    Ho cambiato la directory nel file di cnf,
    ma da sempre lo stesso errore, qundo provo ad avviare il db:
    
    Job for mariadb.service failed because the control process exited with error code.
    See "systemctl status mariadb.service" and "journalctl -xe" for details.
    
    questi sono i detagli:

    systemctl status mariadb.service
    
    ? mariadb.service - MariaDB 10.1.37 database server
       Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
       Active: failed (Result: exit-code) since Tue 2018-11-27 14:31:46 GMT; 3min 18s ago
         Docs: man:mysqld(8)
               https://mariadb.com/kb/en/library/systemd/
      Process: 779 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=1/FAILURE)
      Process: 699 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
      Process: 695 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
      Process: 692 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
     Main PID: 779 (code=exited, status=1/FAILURE)
       Status: "MariaDB server is down"
    
    Nov 27 14:31:45 raspberrypi systemd[1]: Starting MariaDB 10.1.37 database server...
    Nov 27 14:31:46 raspberrypi mysqld[779]: 2018-11-27 14:31:46 3069988128 [Note] /usr/sbin/mysqld (mysqld 10.1.37-MariaDB-0+deb9u1) starting as process 779 ...
    Nov 27 14:31:46 raspberrypi mysqld[779]: 2018-11-27 14:31:46 3069988128 [Warning] Can't create test file /media/usb1/mysq/raspberrypi.lower-test
    Nov 27 14:31:46 raspberrypi systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
    Nov 27 14:31:46 raspberrypi systemd[1]: Failed to start MariaDB 10.1.37 database server.
    Nov 27 14:31:47 raspberrypi systemd[1]: mariadb.service: Unit entered failed state.
    Nov 27 14:31:47 raspberrypi systemd[1]: mariadb.service: Failed with result 'exit-code'.
    
    journalctl -xe
    
    -- Defined-By: systemd
    -- Support: https://www.debian.org/support
    -- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat
    --
    -- A new session with the ID c2 has been created for the user pi.
    --
    -- The leading process of the session is 582.
    Nov 27 14:31:23 raspberrypi systemd[1]: Started Session c2 of user pi.
    -- Subject: Unit session-c2.scope has finished start-up
    -- Defined-By: systemd
    -- Support: https://www.debian.org/support
    --
    -- Unit session-c2.scope has finished starting up.
    --
    -- The start-up result is done.
    Nov 27 14:31:23 raspberrypi sudo[594]:       pi : TTY=unknown ; PWD=/home/pi ; USER=root ; COMMAND=/bin/su -
    Nov 27 14:31:23 raspberrypi sudo[594]: pam_unix(sudo:session): session opened for user root by (uid=0)
    Nov 27 14:31:23 raspberrypi su[598]: Successful su for root by root
    Nov 27 14:31:23 raspberrypi su[598]: + ??? root:root
    Nov 27 14:31:23 raspberrypi su[598]: pam_unix(su:session): session opened for user root by (uid=0)
    Nov 27 14:31:23 raspberrypi su[598]: pam_systemd(su:session): Cannot create session: Already running in a session
    Nov 27 14:31:31 raspberrypi sshd[631]: Accepted password for pi from 192.168.178.52 port 51136 ssh2
    Nov 27 14:31:31 raspberrypi sshd[631]: pam_unix(sshd:session): session opened for user pi by (uid=0)
    Nov 27 14:31:31 raspberrypi systemd-logind[259]: New session c3 of user pi.
    -- Subject: A new session c3 has been created for user pi
    -- Defined-By: systemd
    -- Support: https://www.debian.org/support
    -- Documentation: http://www.freedesktop.org/wiki/Software/systemd/multiseat
    --
    -- A new session with the ID c3 has been created for the user pi.
    --
    -- The leading process of the session is 631.
    Nov 27 14:31:31 raspberrypi systemd[1]: Started Session c3 of user pi.
    -- Subject: Unit session-c3.scope has finished start-up
    -- Defined-By: systemd
    -- Support: https://www.debian.org/support
    --
    -- Unit session-c3.scope has finished starting up.
    --
    -- The start-up result is done.
    Nov 27 14:31:43 raspberrypi sudo[665]:       pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/usr/sbin/service mysql start
    Nov 27 14:31:43 raspberrypi sudo[665]: pam_unix(sudo:session): session opened for user root by pi(uid=0)
    Nov 27 14:31:45 raspberrypi systemd[1]: Starting MariaDB 10.1.37 database server...
    -- Subject: Unit mariadb.service has begun start-up
    -- Defined-By: systemd
    -- Support: https://www.debian.org/support
    --
    -- Unit mariadb.service has begun starting up.
    Nov 27 14:31:46 raspberrypi mysqld[779]: 2018-11-27 14:31:46 3069988128 [Note] /usr/sbin/mysqld (mysqld 10.1.37-MariaDB-0+deb9u1) starting as process 779 ...
    Nov 27 14:31:46 raspberrypi mysqld[779]: 2018-11-27 14:31:46 3069988128 [Warning] Can't create test file /media/usb1/mysql/raspberrypi.lower-test
    Nov 27 14:31:46 raspberrypi systemd[1]: mariadb.service: Main process exited, code=exited, status=1/FAILURE
    Nov 27 14:31:46 raspberrypi systemd[1]: Failed to start MariaDB 10.1.37 database server.
    -- Subject: Unit mariadb.service has failed
    -- Defined-By: systemd
    -- Support: https://www.debian.org/support
    --
    -- Unit mariadb.service has failed.
    --
    -- The result is failed.
    Nov 27 14:31:47 raspberrypi systemd[1]: mariadb.service: Unit entered failed state.
    Nov 27 14:31:47 raspberrypi systemd[1]: mariadb.service: Failed with result 'exit-code'.
    Nov 27 14:31:47 raspberrypi sudo[665]: pam_unix(sudo:session): session closed for user root
    
    Da lo stesso errore anche se la directory di destinazione si trova sulla sd.
    Il db si avvia corretamnete soltanto con il path datadir di default.
  • Re: Modificare data directory, mariaDB, raspbian

    Cambindo il vallore del parrametro 'datadir' che si trova nel file di configurazione '/etc/mysql/mariadb.conf.d/50-server.cnf',
    da quello di default '/var/lib/mysql' a '/usr/myProject/mysql',
    poi:
    
    sudo cp -R /var/lib/mysql /usr/myProject/mysql
    sudo rsync -R /var/lib/mysql /usr/myProject/mysql
    
    e anche dando a mysql i permessi di lettura/scrittura della directory '/usr/myProject/mysql', qundo provo ad eseguire il comando 'sudo service mysql start',
    mi da sempre l'errore:
    
    Job for mariadb.service failed because the control process exited with error code.
    See "systemctl status mariadb.service" and "journalctl -xe" for details.
    
    eseguendo 'journalctl -xe':
    
    ...
    Nov 30 15:07:59 raspberrypi mysqld[799]: 2018-11-30 15:07:59 3069353248 [Warning] Can't create test file /usr/myProject/mysql/raspberrypi.lower-test
    ...
    
    Ho provato a seguire una miriade di guide e proccedimenti trovati in rete ma nulla sembra funzionare , non so più dove sbattere la testa...
  • Re: Modificare data directory, mariaDB, raspbian

    Quale parte di link non va bene?
    comunque ribadisco che basta cambiare datadir nella sezione [mysqld]
  • Re: Modificare data directory, mariaDB, raspbian

    +m2+ ha scritto:


    Quale parte di link non va bene?
    ho fatto un link tipo?
    
    sudo ln -s /var/lib/mysql /usr/myProject/mysql 
    
    pero in questo caso e Inutile visto che non e altro che un "puntatore" alla directory originale, quindi non
    risolve il problema della memoria.
    Altrimenti ce l'hard link che non e applicabile per le directory (da quello che ho capito).
    Oppure semplicemente ho capito male cosa intendevi con link... (e da pochissimo tempo che ho cominciato a giocare con Linux).
  • Re: Modificare data directory, mariaDB, raspbian

    Problema (semi)risolto:

    0) sudo service mysql stop.
    1) ho creato una nuova cartella '/myProjects' nella cartella radice.
    2) ho modificato il parametro 'datadir' nel file '/etc/mysql/mariadb.conf.d/50-server.cnf', da 'datadir= /var/lib/mysql' -> 'datadir = /myProjects'.
    3) ho assegnato mysql come proprietario della cartella '/myProjects' con 'sudo chown -R /myProjects'.
    4) sudo mysql_install_db && sudo reboot

    adesso funziona correttamente, anche se ancora non capisco perchè il procedimento non funziona per la directory /usr.
Devi accedere o registrarti per scrivere nel forum
6 risposte