Portál AbcLinuxu, 21. května 2025 20:34

Dotaz: Jiné než defaultní umístění dat MySQL serveru

9.8.2017 23:31 Andreaw Fean
Jiné než defaultní umístění dat MySQL serveru
Přečteno: 651×
Odpovědět | Admin
Zdravím.

Mám Fedoru 24. Mám nainstalovaný MariaSQL s nějakými daty, s nějakými existujícími databázemi. Našel jsem si konfiguraci v /etc/my.cnf.d/mariadb-server.cnf. Našel jsem si umístění data v /var/lib/mysql

A teď bych chtěl přesunout umístění těch dat na jiné místo.

Nastavím si v tom konfiguráku datadir= a socket= (pro jistotu), ele nefunguje to jak bych potřeboval.

Když třeba přejmenuju to umístění /var/lib/mysql na /var/lib/mysql-x, tak je to ok. Ale když to přesunu na /mnt/disk/data/mysql, tak to neposlouchá. Služba se nepovode vůbec nahodit. A z toho systemd logu nejsem moc moudrej.

Chyba v logu je furt stejná. Buď to funguje, nebo to nefunguje a nahlásí to: "Database MariaDB is not initialized, but the directory ... is not empty, so initilization cannot be done." A tato chyba mi tam padá ať už tam ty data nakopíruju, nebo vytvořím prázdný adresář, nebo neexistující adresář.

Práva jsem si hlídal, mělo by to být všechno identický. Jde jen o jiné umístění. A rozdíl vidím v tom, zda jsou data na tom, či na onom disku.

/var/lib je jeden disk /mnt/disk/data je jinej disk.

Můžete mi prosím poradit, jak jí to mám vysvětlit, že chci ty data jinde?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.8.2017 00:32 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jen střelím od boku - nemůžou za to nějaké mount option na ty disky, nastavení selinux nebo něco podobného? Já bych zkusil odpojit ten disk a zkusit to se stejným adresářem znova (bude potřeba vytvořit). Jo a samozřejmě bych kontroloval, že během přípravy databáze neběží aby ty data byly 100% konzistentní a nezůstaly tam nějaké otevřené lock soubory a podobná havěť.
-- OldFrog
10.8.2017 01:09 Andreaw Fean
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
Díky za odpověď.

- Databázi přirozeně odpojuju. To by mělo být správně.

- Disk je vlastně stejnej, jako na kterém mám home. Takže pokud mi něco neuniklo. Ale na to selinux se mrknu. Snad z tho něco vyhrabu.
10.8.2017 01:16 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
Osvědčilo se mi umístit databázi do /home/mysql.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
10.8.2017 01:21 ET
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
mozna blbost, ale nedavas ty direktivy do jine sekce - melo by to byt v sekci "[mysqld]" (fedoru neznam a mariadb-server.cnf by mohlo byt nastaveni jen pro server, ale ...)
10.8.2017 01:37 Andreaw Fean
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
Bohužel. Prostě jsem přepsal ty původní. Měl jsem v úmyslu jen změnit lokaci z jedné na jinou. Stěhovat /var/lib do třeba /srv/ to šlo. Ale na jinej disk už ne. (Zřejmě.)
10.8.2017 01:45 ET
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
a co to zkusit (na prasaka) symlinkem?
10.8.2017 07:27 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Běžně to používáme, na serveru máme mysql několik, s daty na různých polích či SSD.

[mysqld]
...
datadir         = /mnt/raid/mysql-slave/
...
log_bin         = /mnt/raid/mysql-slave-logs/mysql-bin.log
Samozřejmě do těch adresářů musí mít plný přístup uživatel, pod kterým ti mysql běží (nastavení "user" v sekci "mysqld", typicky mysql).

paul2no avatar 10.8.2017 08:46 paul2no | skóre: 16 | blog: Paulovo doupě | Praha
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevím jak u Fedory, ale na Ubuntu to blokoval AppArmor, viz zde: https://www.digitalocean.com/community/tutorials/how-to-move-a-mysql-data-directory-to-a-new-location-on-ubuntu-16-04
Pravda, láska a elektrická trakce zvítězí nad lží, nenávistí a trakcí motorovou.
10.8.2017 19:01 Andreaw Fean
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
SELinux mám vypnutej.

Pečlivě jsem si zkontroloval cesty a práva, a všechno by mělo být v cajku.

Pid se mi do toho adresáře přesměrovat daří. Ale data ne :(
10.8.2017 19:39 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
Máš to uvedené ve správném souboru? Nemáš těch mycnf.d/ souborů více a v každém něco jiného? Tipuju si, že to bude nějaká taková ptákovinka.

Co loguje mysql při startu? Hoď sem ty konfigy, příslušná místa z logu, ls -l toho datadir adresáře (včetně jej, tedy ls -ld), atd.
10.8.2017 22:15 Andreaw Fean
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
Hele, stal se ten nejhorší scénář. Už to funguje a nevím proč :-(

Takže pro budoucí generace:

- lokace na jiném disku mu nevadí.

- problém, se kterým jsem se setkal (s tématem sice nesouvisí, ale může být zajímavej), že některé drivery (PHP) počítají s pid umístěným na přesném místě a nesmí se stěhovat.
10.8.2017 22:25 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
lokace na jiném disku mu nevadí.

Taky není vůbec žádný důvod, aby vadilo.

některé drivery (PHP) počítají s pid umístěným na přesném místě a nesmí se stěhovat.

Proč by driver potřeboval pid file? Nejde spíš o socket, ke kterému se připojují?
10.8.2017 22:51 Andreaw Fean
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
Sorry, socket:

Na `socket=/var/lib/mysql/mysql.sock` nesmím šahat.
11.8.2017 06:45 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
11.8.2017 13:47 mhepp
Rozbalit Rozbalit vše Re: Jiné než defaultní umístění dat MySQL serveru
Ten socket ale stejně nechceš stěhovat... Respektive, jakou motivaci k tomu máš? Pokud prostě že můžeš, tak se na to vykašli.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.