- 1 1. ã¯ããã«
- 2 2. ãªã¹ãã¢åã®æºå
- 3 3. MySQLããŒã¿ããŒã¹ã®ãªã¹ãã¢æé
- 4 4. MySQLãªã¹ãã¢åŸã®ããŒã¿ç¢ºèªæ¹æ³
- 5 5. 倧容éããŒã¿ã®ãªã¹ãã¢æé©å
- 6 6. MySQLãªã¹ãã¢æã®ãã©ãã«å¯Ÿç
- 7 7. ãããã質åïŒFAQïŒ
- 7.1 Q1: ãªã¹ãã¢äžã«ãããŒã¿ããŒã¹ãååšããŸããããšè¡šç€ºãããå Žåã®å¯ŸåŠæ³ã¯ïŒ
- 7.2 Q2: æååããçºçããå Žåã®è§£æ±ºçã¯ïŒ
- 7.3 Q3: 倧容éSQLãã¡ã€ã«ïŒ1GB以äžïŒã®ãªã¹ãã¢æ¹æ³ã¯ïŒ
- 7.4 Q4: AWS RDSïŒã¯ã©ãŠãç°å¢ïŒã§ã®ãªã¹ãã¢æé ã¯ïŒ
- 7.5 Q5: èªåã§ããã¯ã¢ããïŒãªã¹ãã¢ãå®æçã«ãã¹ãããæ¹æ³ã¯ïŒ
- 8 8. ãŸãšã
1. ã¯ããã«
MySQLã®ãªã¹ãã¢ãšã¯ïŒ
MySQLã®ãªã¹ãã¢ãšã¯ãããã¯ã¢ãããããããŒã¿ãå
ã®ããŒã¿ããŒã¹ã«åŸ©å
ããããã»ã¹ã®ããšãæããŸãã
ãªã¹ãã¢ãè¡ãããšã§ãããŒã¿ã®æ倱ãã·ã¹ãã é害ã®éã«ããŒã¿ã埩å
ããæ¥åãã·ã¹ãã ã®éçšãç¶ç¶ããããšãã§ããŸãã
ããŒã¿ããŒã¹ã¯æ§ã ãªçç±ã§ç Žæãæ¶å€±ããå¯èœæ§ããããŸããäŸãã°ã以äžã®ãããªã±ãŒã¹ãèããããŸãã
- ãµãŒããŒã®ã¯ã©ãã·ã¥ãããŒããŠã§ã¢é害
- 誀ã£ãŠããŒã¿ãåé€ããŠããŸã£ãå Žå
- ã¢ããããŒããã·ã¹ãã å€æŽã«ããããŒã¿ã®ç Žæ
- ãã«ãŠã§ã¢ãå€éšæ»æã«ããããŒã¿æ¶å€±
ãã®ãããªç¶æ³ã«åããé©åãªããã¯ã¢ãããååŸããŠããããšãéèŠã§ãã
ãããŠãå¿
èŠãªã¿ã€ãã³ã°ã§ãªã¹ãã¢ãè¡ãããšã§ãã·ã¹ãã ãè¿
éã«åŸ©æ§ãããããšãã§ããŸãã
ãã®èšäºã§åŠã¹ãããš
æ¬èšäºã§ã¯ãMySQLã®ãªã¹ãã¢ã«ã€ããŠè©³ãã解説ããŸãã
åå¿è
ããäžçŽè
ãŸã§å¯Ÿå¿ã§ãããããåºæ¬çãªãªã¹ãã¢æ¹æ³ããé«åºŠãªãªã¹ãã¢ææ³ãŸã§çŽ¹ä»ããŸãã
å
·äœçã«ã¯ã以äžã®å
容ãåŠã¶ããšãã§ããŸãã
- MySQLã®åºæ¬çãªãªã¹ãã¢æé
- ã³ãã³ãã©ã€ã³ã䜿çšãããªã¹ãã¢æ¹æ³ïŒmysqldumpïŒ
- GUIããŒã«ãå©çšãããªã¹ãã¢ïŒphpMyAdminãMySQL WorkbenchïŒ
- ç¹å®ã®ããŒã¿ã®ã¿ã埩å ããæ¹æ³
- 倧容éããŒã¿ã®ãªã¹ãã¢æé©å
- ãã€ããªãã°ãå©çšããé«åºŠãªåŸ©å
- ãªã¹ãã¢åŸã®ããŒã¿ç¢ºèªæ¹æ³
- ãšã©ãŒçºçæã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ãã®ã¬ã€ããåèã«ããã°ãé©åãªããã¯ã¢ããæŠç¥ãèšèšããäžãäžã®éã«è¿
éã«ãªã¹ãã¢ã§ããããã«ãªããŸãã
æ¬¡ç« ããã¯ããªã¹ãã¢ãè¡ãåã®æºåã«ã€ããŠè©³ãã解説ããŠãããŸãã
2. ãªã¹ãã¢åã®æºå
MySQLã®ããã¯ã¢ããã®çš®é¡
ãªã¹ãã¢ãè¡ãããã«ã¯ãäºåã«é©åãªããã¯ã¢ãããååŸããŠããããšãéèŠã§ããMySQLã®ããã¯ã¢ããæ¹æ³ã«ã¯ä»¥äžã®ãããªçš®é¡ããããŸãã
1. mysqldump
ã䜿çšããããã¯ã¢ãã
mysqldump
ã¯ãMySQLã®ããŒã¿ããŒã¹ãSQL圢åŒã§ãšã¯ã¹ããŒãããããŒã«ã§ããæãäžè¬çã§ããªã¹ãã¢ãããããæ¹æ³ã§ãã
mysqldump -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å > backup.sql
ãã®æ¹æ³ã¯ãããã¹ããã¡ã€ã«ãšããŠããŒã¿ãä¿åãããããç·šéã容æã§ããã倧容éããŒã¿ã«ã¯é©ããŠããŸããã
2. phpMyAdmin
ã䜿çšããããã¯ã¢ãã
phpMyAdminã®GUIã䜿ã£ãŠç°¡åã«ããã¯ã¢ãããååŸããæ¹æ³ã§ããSQLãã¡ã€ã«ãšããŠãšã¯ã¹ããŒãã§ããŸãã
- phpMyAdminã«ãã°ã€ã³
- ããšã¯ã¹ããŒããã¿ããéžæ
- ãã©ãŒãããããSQLãã«ããŠãå®è¡ã
ãã®æ¹æ³ã¯ãåå¿è ã«ãæ±ããããã§ããã倧èŠæš¡ããŒã¿ã«ã¯äžåãã§ãã
3. MySQL Workbench ã䜿çšããããã¯ã¢ãã
MySQL Workbenchã§ã¯ãGUIã䜿çšããŠããã¯ã¢ãããäœæã§ããŸããData Export
æ©èœãå©çšããŠãç¹å®ã®ããŒã¿ããŒã¹ãããŒãã«ããšã¯ã¹ããŒãã§ããŸãã
4. ãã€ããªãã°ã䜿çšããããã¯ã¢ãã
ãã€ããªãã°ã䜿çšãããšãç¹å®ã®æç¹ãŸã§ã®å€æŽãèšé²ããããŒã¿ã®åŸ©æ§ãå¯èœã«ãªããŸãã
mysqlbinlog --start-datetime="2024-02-01 10:00:00" --stop-datetime="2024-02-01 12:00:00" binlog.000001 > restore.sql
ãã®æ¹æ³ã¯ãé«åºŠãªåŸ©æ§ãå¯èœã§ãããé©åãªãã°ç®¡çãå¿ èŠã§ãã
ãªã¹ãã¢åã®ç¢ºèªäºé
ãªã¹ãã¢ãæåãããããã«ã¯ã以äžã®ç¹ãäºåã«ç¢ºèªããŠããå¿ èŠããããŸãã
1. æåã³ãŒãã®ç¢ºèªïŒUTF-8 vs SJISïŒ
ããã¯ã¢ããæãšãªã¹ãã¢æã®æåã³ãŒããç°ãªããšãããŒã¿ãæååãããããšããããŸããããã¯ã¢ãããã¡ã€ã«ã®ãšã³ã³ãŒãã£ã³ã°ã確èªããŸãããã
file backup.sql
ãŸãããªã¹ãã¢æã« --default-character-set=utf8mb4
ãæå®ãããšãæåã³ãŒãã®åé¡ãåé¿ã§ããŸãã
mysql -u ãŠãŒã¶ãŒå -p --default-character-set=utf8mb4 ããŒã¿ããŒã¹å < backup.sql
2. ãªã¹ãã¢ããããŒã¿ããŒã¹ã®äœæ
ãªã¹ãã¢ãå®è¡ããåã«ã察象ã®ããŒã¿ããŒã¹ãååšããã確èªããååšããªãå Žåã¯äœæããŸãã
mysql -u ãŠãŒã¶ãŒå -p -e "CREATE DATABASE IF NOT EXISTS ããŒã¿ããŒã¹å;"
3. ããã¯ã¢ãããã¡ã€ã«ã®æŽåæ§ãã§ãã¯
ããã¯ã¢ãããã¡ã€ã«ãç ŽæããŠããªããã確èªãããããå 容ãéšåçã«è¡šç€ºããŠã¿ãŸãããã
head -n 20 backup.sql
ãŸãããã¡ã€ã«ãµã€ãºãç°åžžã«å°ããå Žåã¯ãæ£åžžã«ããã¯ã¢ãããåããŠããªãå¯èœæ§ããããŸãã
ãªã¹ãã¢æé ã®éžã³æ¹ãæ¯èŒè¡šã
ãªã¹ãã¢ã®æ¹æ³ã¯ã䜿çšç°å¢ãããŒã¿ãµã€ãºã«ãã£ãŠç°ãªããŸãã以äžã®è¡šãåèã«ãé©åãªãªã¹ãã¢æ¹æ³ãéžã³ãŸãããã
æ¹æ³ | é£æ床 | ã¡ãªãã | ãã¡ãªãã |
---|---|---|---|
mysqldump | äžçŽ | é«éã»ä¿¡é Œæ§â | æåæäœãå¿ èŠ |
phpMyAdmin | åå¿è | GUIã§æäœãããã | 倧容éããŒã¿ã«åããªã |
Workbench | åå¿è | ç°¡åãªUIæäœ | ãµãŒããŒè² è·ãé«ã |
ãã€ããªãã° | äžçŽ | æéåäœã§åŸ©å å¯ | èšå®ãè€é |
3. MySQLããŒã¿ããŒã¹ã®ãªã¹ãã¢æé
åäžããŒã¿ããŒã¹ã®ãªã¹ãã¢
mysqldump
ããã¯ã¢ããããªã¹ãã¢ããæ¹æ³
æãäžè¬çãªãªã¹ãã¢æ¹æ³ã¯ãmysqldump
ã䜿çšããŠååŸããããã¯ã¢ããããŒã¿ã埩å
ããæ¹æ³ã§ãã
æé ïŒ
- ããã¯ã¢ãããã¡ã€ã«ãæ£ããã確èªãã
head -n 20 backup.sql
â ããã¯ã¢ãããã¡ã€ã«ã®åé éšåã確èªãããšã©ãŒããªãããã§ãã¯ã
- 察象ã®ããŒã¿ããŒã¹ãäœæããïŒååšããªãå ŽåïŒ
mysql -u ãŠãŒã¶ãŒå -p -e "CREATE DATABASE IF NOT EXISTS ããŒã¿ããŒã¹å CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
- ããŒã¿ããªã¹ãã¢
mysql -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å < backup.sql
æååããé²ãããã®ãªãã·ã§ã³æå®
ããŒã¿ã®ãšã³ã³ãŒãã£ã³ã°ãç°ãªãå Žåããªã¹ãã¢æã«æååããçºçããããšããããŸãã
ãããé²ãããã«ã--default-character-set=utf8mb4
ãæå®ããã®ãäžè¬çã§ãã
mysql -u ãŠãŒã¶ãŒå -p --default-character-set=utf8mb4 ããŒã¿ããŒã¹å < backup.sql
泚æç¹ïŒ
- ããã¯ã¢ããæãšãªã¹ãã¢æã®æåã³ãŒããäžèŽããŠããã確èªãã
- ããŒã¿ããŒã¹äœææã®ããã©ã«ãæåã³ãŒããUTF-8ã«èšå®ãã
CREATE DATABASE ããŒã¿ããŒã¹å CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
è€æ°ããŒã¿ããŒã¹ã®ãªã¹ãã¢
ããã¯ã¢ãããã¡ã€ã«ã«è€æ°ã®ããŒã¿ããŒã¹ãå«ãŸããŠããå Žåã--databases
ãªãã·ã§ã³ã䜿çšããŠãªã¹ãã¢ã§ããŸãã
mysql -u ãŠãŒã¶ãŒå -p < backup.sql
ãããç¹å®ã®ããŒã¿ããŒã¹ã®ã¿ããªã¹ãã¢ãããå Žåã¯ã以äžã®ããã«å®è¡ããŸãã
mysql -u ãŠãŒã¶ãŒå -p --one-database 察象ããŒã¿ããŒã¹å < backup.sql
äŸïŒ
mysql -u root -p --one-database sales_db < all_databases_backup.sql
â sales_db
ã ãããªã¹ãã¢ããã
å šããŒã¿ããŒã¹ã®ãªã¹ãã¢
ãã¹ãŠã®ããŒã¿ããŒã¹ãäžæ¬ã§ãªã¹ãã¢ããå Žåã¯ã--all-databases
ãå©çšããŸãã
mysql -u ãŠãŒã¶ãŒå -p --all-databases < backup.sql
ãã€ã³ãïŒ
--all-databases
ã䜿çšãããšãããã¯ã¢ãããã¡ã€ã«å ã®ãã¹ãŠã®ããŒã¿ããŒã¹ã埩å ããããDROP DATABASE
ãCREATE DATABASE
ã®èšè¿°ããããäºåã«ç¢ºèªããŠããããšãéèŠã- 倧éã®ããŒã¿ãããå Žåã¯ãã¡ã¢ãªèšå®ãæé©åïŒè©³çŽ°ã¯ã5. 倧容éããŒã¿ã®ãªã¹ãã¢æé©åãã§è§£èª¬ïŒã
GUIããŒã«ã䜿ã£ããªã¹ãã¢
phpMyAdmin ãå©çšãããªã¹ãã¢
- phpMyAdmin ã«ãã°ã€ã³
- ãã€ã³ããŒããã¿ããéžæ
- ããã¯ã¢ãããã¡ã€ã«ïŒSQLïŒãéžæããã¢ããããŒã
- ãå®è¡ããã¯ãªãã¯ãããªã¹ãã¢ãéå§
â ã¡ãªããïŒ
- åå¿è åãã§æäœãç°¡å
- ã³ãã³ãã䜿ããã«ãªã¹ãã¢ã§ãã
â ïž ãã¡ãªããïŒ
- ãã¡ã€ã«ãµã€ãºã®å¶éããã
- 倧èŠæš¡ããŒã¿ã«ã¯äžåã
MySQL Workbench ãå©çšãããªã¹ãã¢
- MySQL Workbench ãéã
- ãServer > Data Importãã¡ãã¥ãŒãéžæ
- ããã¯ã¢ãããã¡ã€ã«ãéžæ
- ã¿ãŒã²ããããŒã¿ããŒã¹ãæå®
- ãStart Importããã¿ã³ãæŒããŠãªã¹ãã¢ãå®è¡
â ã¡ãªããïŒ
- GUIã§çŽæçã«æäœã§ãã
- ç¹å®ã®ããŒãã«ã ãããªã¹ãã¢å¯èœ
â ïž ãã¡ãªããïŒ
- ãµãŒããŒè² è·ãé«ãå Žåããã
- MySQL Serverã®ããŒãžã§ã³ãšäºææ§ã«æ³šæ
4. MySQLãªã¹ãã¢åŸã®ããŒã¿ç¢ºèªæ¹æ³
ãªã¹ãã¢ã®æåã確èªããåºæ¬ã³ãã³ã
1. ããŒã¿ããŒã¹äžèŠ§ã確èª
ãªã¹ãã¢åŸã«ããŒã¿ããŒã¹ãæ£ããäœæãããŠãããã確èªããŸãã
SHOW DATABASES;
â ãã§ãã¯ãã€ã³ã
- ããã¯ã¢ãããã¡ã€ã«ã«å«ãŸããŠããããŒã¿ããŒã¹ãå šãŠè¡šç€ºãããŠããã
- ãªã¹ãã¢å¯Ÿè±¡ã®ããŒã¿ããŒã¹åãééã£ãŠããªãã
2. åããŒã¿ããŒã¹ã®ããŒãã«äžèŠ§ã確èª
ããŒã¿ããŒã¹ãäœæãããŠããŠããããŒãã«ãæ£ãããªã¹ãã¢ãããŠããªããã°æå³ããããŸããã
以äžã®ã³ãã³ãã§ãããŒã¿ããŒã¹å
ã®ããŒãã«äžèŠ§ã確èªããŸãããã
USE ããŒã¿ããŒã¹å;
SHOW TABLES;
â ãã§ãã¯ãã€ã³ã
- å¿ èŠãªããŒãã«ããã¹ãŠè¡šç€ºãããŠããã
mysqldump
ã®ãªãã·ã§ã³ã«ãã£ãŠãäžéšã®ããŒãã«ãæããŠããªãã
3. ããŒãã«å ã®ããŒã¿ä»¶æ°ã確èª
ãªã¹ãã¢ãå®äºããŠããããŒã¿ãé©åã«åŸ©å
ãããŠãããã©ãã㯠COUNT(*)
ã§ç¢ºèªã§ããŸãã
SELECT COUNT(*) FROM ããŒãã«å;
â ãã§ãã¯ãã€ã³ã
COUNT(*)
ã®çµæãããã¯ã¢ããåã®ããŒã¿ä»¶æ°ãšäžèŽããŠããã- ããŒã¿ãæ¬ èœããŠããªãã
NULL
ã0
ã®ããŒã¿ãç°åžžã«å€ããªãã

4. ç¹å®ã®ããŒã¿ãæ£ãã埩å ãããŠããã確èª
ããŒã¿ãæ£ãã埩å ãããŠããããå®éã®ããŒã¿ãããã€ãæœåºããŠç¢ºèªããŸãããã
SELECT * FROM ããŒãã«å LIMIT 10;
â ãã§ãã¯ãã€ã³ã
- ããŒã¿ã®é çªãå€ã«ç°åžžããªãã
- æååããçºçããŠããªãã
æååããããŒã¿ç Žæã®ç¢ºèª
ãªã¹ãã¢æã«æåãšã³ã³ãŒãã£ã³ã°ãé©åã§ãªããšãããŒã¿ãæååãããããšããããŸãã
ãã®åé¡ãé²ãããã«ããªã¹ãã¢åŸã«æåãšã³ã³ãŒãã£ã³ã°ããã§ãã¯ããŸãããã
1. ããŒã¿ããŒã¹ã®ãšã³ã³ãŒãã£ã³ã°ã確èª
SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME='ããŒã¿ããŒã¹å';
2. ããŒãã«ã®ãšã³ã³ãŒãã£ã³ã°ã確èª
SHOW CREATE TABLE ããŒãã«å;
ð¡ æååãã®å¯Ÿç
mysqldump
ã®ãšã¯ã¹ããŒãæã«--default-character-set=utf8mb4
ãæå®- ãªã¹ãã¢æã«ã
--default-character-set=utf8mb4
ãæå® - ããã¯ã¢ãããã¡ã€ã«å
ã®
SET NAMES
èšå®ãä¿®æ£
ã€ã³ããã¯ã¹ã»å€éšããŒã®æŽåæ§ç¢ºèª
1. ã€ã³ããã¯ã¹ãæ£ããèšå®ãããŠããã確èª
SHOW INDEX FROM ããŒãã«å;
â ãã§ãã¯ãã€ã³ã
- ã€ã³ããã¯ã¹ãæ£ãã埩å ãããŠããã
- ç¹å®ã®ã«ã©ã ã®æ€çŽ¢ãç°åžžã«é ããªã£ãŠããªãã
2. å€éšããŒå¶çŽã®ç¢ºèª
å€éšããŒå¶çŽãããããŒãã«ããªã¹ãã¢ããéãå¶çŽãé©åã«é©çšãããŠãããã確èªããå¿ èŠããããŸãã
SELECT TABLE_NAME, CONSTRAINT_NAME, REFERENCED_TABLE_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = 'ããŒã¿ããŒã¹å';
â ãã§ãã¯ãã€ã³ã
- ãã¹ãŠã®å€éšããŒå¶çŽã埩å ãããŠããã
ON DELETE CASCADE
ãON UPDATE CASCADE
ã®èšå®ãé©åã
ãã°ãã¡ã€ã«ã確èªããŠãªã¹ãã¢ã®åé¡ãæ€èšŒ
ãªã¹ãã¢æã«ãšã©ãŒãçºçããå ŽåãMySQLã®ãšã©ãŒãã°ã確èªããããšã§ãåé¡ãç¹å®ã§ããŸãã
1. MySQLã®ãšã©ãŒãã°ã確èª
sudo cat /var/log/mysql/error.log
â ãšã©ãŒãã°ã®ç¢ºèªãã€ã³ã
ERROR 1366 (HY000): Incorrect string value
â æååãã®å¯èœæ§ERROR 1452 (23000): Cannot add or update a child row
â å€éšããŒå¶çŽãšã©ãŒERROR 2006 (HY000): MySQL server has gone away
â ããã¯ã¢ãããµã€ãºã倧ããããå¯èœæ§
ãªã¹ãã¢åŸã®ããã©ãŒãã³ã¹æé©å
ãªã¹ãã¢åŸã¯ãããŒã¿ã®æŽåæ§ã ãã§ãªããããã©ãŒãã³ã¹ã«ã圱é¿ããªãã確èªããããšãéèŠã§ãã
1. ã¯ãšãªã®å®è¡é床ã確èª
ãªã¹ãã¢åŸã«ããŒã¿æ€çŽ¢ãé ããªã£ãŠããå Žåãã€ã³ããã¯ã¹ãé©åã«åŸ©å ãããŠããªãå¯èœæ§ããããŸãã
EXPLAIN SELECT * FROM ããŒãã«å WHERE ã«ã©ã å = 'å€';
2. ããŒãã«ãæé©å
ããŒã¿ã®æçåãé²ããããã©ãŒãã³ã¹ãåäžãããããã«ãããŒãã«ãæé©åããŸãããã
OPTIMIZE TABLE ããŒãã«å;
3. ãã£ãã·ã¥ãã¯ãªã¢
倧éã®ããŒã¿ããªã¹ãã¢ãããå Žåãäžæçã«ãã£ãã·ã¥ãã¯ãªã¢ããŠããã©ãŒãã³ã¹ãæ¹åã§ããŸãã
RESET QUERY CACHE;
ãŸãšã
ãªã¹ãã¢åŸã®ããŒã¿ãæ£åžžã«åŸ©å ãããŠãããã確èªããã«ã¯ã以äžã®ã¹ããããéèŠã§ãã
â
åºæ¬çãªããŒã¿ããŒã¹ã»ããŒãã«ã®ç¢ºèª
â
ããŒã¿ã®ä»¶æ°ãæååããã§ãã¯
â
ã€ã³ããã¯ã¹ã»å€éšããŒã®æ€èšŒ
â
ãšã©ãŒãã°ãåæããŠåé¡ãç¹å®
â
ããã©ãŒãã³ã¹æé©åãå®æœ
ããŒã¿ããŒã¹ã®ãªã¹ãã¢ã¯åã«ããã¯ã¢ãããé©çšããã ãã§ã¯ãªããããŒã¿ã®æŽåæ§ãåäœç¢ºèªãŸã§å«ããŠå®äºãšãªããŸãã
5. 倧容éããŒã¿ã®ãªã¹ãã¢æé©å
max_allowed_packet
èšå®ã®èª¿æŽ
1. max_allowed_packet
ãšã¯ïŒ
MySQLã¯äžåºŠã«éä¿¡ã§ããæ倧ãã±ãããµã€ãºã max_allowed_packet
ã§å¶éãããŠããŸãã
ãã®å€ãå°ãããšã倧容éã®SQLã¯ãšãªããªã¹ãã¢ããéã«ãšã©ãŒãçºçããããšããããŸãã
2. èšå®æ¹æ³
çŸåšã® max_allowed_packet
ã®å€ã確èªããã«ã¯ã以äžã®ã³ãã³ããå®è¡ããŸãã
SHOW VARIABLES LIKE 'max_allowed_packet';
ããã©ã«ãå€ã¯ 16MBïŒ16,777,216 ãã€ãïŒã§ããã倧容éããŒã¿ããªã¹ãã¢ããéã«ã¯ 256MB ä»¥äž ã«å€æŽãããšè¯ãã§ãããã
3. äžæçã«èšå®ãå€æŽãã
MySQLã»ãã·ã§ã³å ã§äžæçã«å€æŽããã«ã¯ã以äžã®ã³ãã³ããå®è¡ããŸãã
SET GLOBAL max_allowed_packet=268435456; -- 256MB
4. æ°žç¶çã«èšå®ãå€æŽãã
MySQLã®èšå®ãã¡ã€ã« (my.cnf
ãŸã㯠my.ini
) ãç·šéãã次ã®è¡ãè¿œå ãŸãã¯å€æŽããŸãã
[mysqld]
max_allowed_packet=256M
å€æŽåŸãMySQLãåèµ·åããŸãã
sudo systemctl restart mysql
â ãã§ãã¯ãã€ã³ã
ERROR 2006 (HY000): MySQL server has gone away
ãšãããšã©ãŒãåºãå Žåãmax_allowed_packet
ã®å€ãå¢ããã- 倧éã®ããŒã¿ããªã¹ãã¢ããéã«éäžã§å€±æããå Žåããã®èšå®ãèŠçŽãã
innodb_buffer_pool_size
ã®æé©å
1. innodb_buffer_pool_size
ãšã¯ïŒ
innodb_buffer_pool_size
ã¯ãInnoDB ã¹ãã¬ãŒãžãšã³ãžã³ãå©çšããã¡ã¢ãªã®ãµã€ãºã決å®ãããã©ã¡ãŒã¿ã§ãã
ãã®å€ãå°ãããšããªã¹ãã¢åŠçãé »ç¹ã«ãã£ã¹ã¯ã¢ã¯ã»ã¹ãè¡ããé床ãé
ããªããŸãã
2. çŸåšã®èšå®ã確èª
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
ããã©ã«ãå€ã¯ 128MB çšåºŠã§ããã倧容éããŒã¿ãæ±ãå Žå㯠ãµãŒããŒã¡ã¢ãªã®50ã70% ãå²ãåœãŠãããšãæšå¥šãããŸãã
3. èšå®æ¹æ³
èšå®ãå€æŽããã«ã¯ãmy.cnf
ãç·šéãã次ã®è¡ãè¿œå ãŸãã¯å€æŽããŸãã
[mysqld]
innodb_buffer_pool_size=2G
å€æŽåŸãMySQLãåèµ·åããŸãã
sudo systemctl restart mysql
â ãã§ãã¯ãã€ã³ã
- ãµãŒããŒã®ã¡ã¢ãªãååã«ããå Žåã
innodb_buffer_pool_size
ãå¢ãããšãªã¹ãã¢é床ãåäž - å°èŠæš¡ãªç°å¢ã§ã¯ãã¡ã¢ãªã®äœ¿çšéã確èªããªãã調æŽ
ããŒãã£ã·ã§ã³åå²ãšãªã¹ãã¢é床ã®åäž
1. ããŒãã£ã·ã§ã³åå²ã®ã¡ãªãã
ããŒã¿ããŒã¹ã倧ãããªããšã1ã€ã®ããŒãã«ã«å€§éã®ããŒã¿ãæ ŒçŽãããããããªã¹ãã¢æã®è² è·ã倧ãããªããŸãã
ããŒãã«ãããŒãã£ã·ã§ã³ã«åå²ããããšã§ããªã¹ãã¢ãé«éåã§ããŸãã
2. ããŒãã£ã·ã§ã³ã®èšå®æ¹æ³
äŸãã°ãcreated_at
ã®æ¥ä»ããšã«ããŒãã£ã·ã§ã³ãåå²ããã«ã¯ã以äžã®ããã«èšå®ããŸãã
CREATE TABLE orders (
id INT NOT NULL,
created_at DATE NOT NULL,
PRIMARY KEY (id, created_at)
) PARTITION BY RANGE (YEAR(created_at)) (
PARTITION p2023 VALUES LESS THAN (2024),
PARTITION p2024 VALUES LESS THAN (2025)
);
ãªã¹ãã¢æã«ãç¹å®ã®ããŒãã£ã·ã§ã³ã ãã察象ã«ããããšãå¯èœã«ãªããŸãã
â ãã§ãã¯ãã€ã³ã
- 倧éã®ããŒã¿ãäžæ¬ãªã¹ãã¢ããã®ã§ã¯ãªããããŒãã£ã·ã§ã³åäœã§åå²ãããšé«éåã§ãã
- ããŒãã«èšèšã®æ®µéããããŒãã£ã·ã§ã³ãèæ ®ããŠãããšã倧容éããŒã¿ã®ç®¡çããããã
--disable-keys
ã掻çšããé«éãªã¹ãã¢
1. --disable-keys
ãšã¯ïŒ
MySQLã§ã¯ãã€ã³ããã¯ã¹ãããããŒãã«ã«å€§éã®ããŒã¿ãæ¿å
¥ãããšãããŒã¿æ¿å
¥ã®ãã³ã«ã€ã³ããã¯ã¹ãæŽæ°ããããããªã¹ãã¢ã®åŠçãé
ããªããŸãã--disable-keys
ãªãã·ã§ã³ã䜿çšãããšãäžæçã«ã€ã³ããã¯ã¹ã®æŽæ°ãç¡å¹ã«ãããªã¹ãã¢ãé«éåã§ããŸãã
2. --disable-keys
ã®äœ¿ãæ¹
- ããã¯ã¢ãããã¡ã€ã«ãç·šéãã以äžã®è¡ãè¿œå
ALTER TABLE ããŒãã«å DISABLE KEYS;
- ãªã¹ãã¢åŠçãå®è¡
mysql -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å < backup.sql
- ãªã¹ãã¢å®äºåŸã以äžã®è¡ãè¿œå ããŠã€ã³ããã¯ã¹ãæå¹å
ALTER TABLE ããŒãã«å ENABLE KEYS;
â ãã§ãã¯ãã€ã³ã
- 倧éã®ããŒã¿ãæ¿å
¥ããéã
DISABLE KEYS
ãå©çšãããšãªã¹ãã¢é床ãå€§å¹ ã«åäž - ãªã¹ãã¢åŸã«
ENABLE KEYS
ãå®è¡ããã€ã³ããã¯ã¹ãé©çšããããšãå¿ããªã
6. MySQLãªã¹ãã¢æã®ãã©ãã«å¯Ÿç
代衚çãªãšã©ãŒã¡ãã»ãŒãžãšè§£æ±ºç
1. ãããŒã¿ããŒã¹ãååšããŸããããšã©ãŒ
â ãšã©ãŒã¡ãã»ãŒãž
ERROR 1049 (42000): Unknown database 'ããŒã¿ããŒã¹å'
â åå
mysql
ã³ãã³ãã§ãªã¹ãã¢ããéã察象ã®ããŒã¿ããŒã¹ãäœæãããŠããªãã
â 解決ç
- ããŒã¿ããŒã¹ãæåã§äœæ
mysql -u ãŠãŒã¶ãŒå -p -e "CREATE DATABASE ããŒã¿ããŒã¹å CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
- ãªã¹ãã¢ãå®è¡
mysql -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å < backup.sql
2. ãæååããçºçããããšã©ãŒ
â ãšã©ãŒã¡ãã»ãŒãž
ERROR 1366 (HY000): Incorrect string value
â åå
- ããã¯ã¢ããæãšãªã¹ãã¢æã®æåã³ãŒããç°ãªã
- ããŒã¿ããŒã¹ã®ããã©ã«ãæåã³ãŒããé©åã§ãªã
â 解決ç
- ããã¯ã¢ãããã¡ã€ã«ã®ãšã³ã³ãŒãã£ã³ã°ã確èª
file backup.sql
- ãªã¹ãã¢æã«
--default-character-set=utf8mb4
ãæå®
mysql -u ãŠãŒã¶ãŒå -p --default-character-set=utf8mb4 ããŒã¿ããŒã¹å < backup.sql
- ããŒã¿ããŒã¹ã®æåã³ãŒããçµ±äž
ALTER DATABASE ããŒã¿ããŒã¹å CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE ããŒãã«å CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3. ããªã¹ãã¢äžã«MySQLãåæ¢ããããšã©ãŒ
â ãšã©ãŒã¡ãã»ãŒãž
ERROR 2006 (HY000): MySQL server has gone away
â åå
- ããã¯ã¢ãããã¡ã€ã«ã倧ãããã
max_allowed_packet
ã®èšå®ãå°ãã- ã¡ã¢ãªäžè¶³ã§MySQLãã¯ã©ãã·ã¥ãã
â 解決ç
max_allowed_packet
ãå¢ãã
SET GLOBAL max_allowed_packet=256M;
innodb_buffer_pool_size
ã調æŽ
[mysqld]
innodb_buffer_pool_size=2G
- ããã¯ã¢ãããå§çž®ããŠãªã¹ãã¢
mysqldump -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å | gzip > backup.sql.gz
gunzip < backup.sql.gz | mysql -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å
- SQLãã¡ã€ã«ãåå²
split -b 500M backup.sql backup_part_
åå²ãããã¡ã€ã«ãé çªã«ãªã¹ãã¢ïŒ
cat backup_part_* | mysql -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å
ããã¯ã¢ãããã¡ã€ã«ã倧ããããå Žåã®å¯Ÿç
1. SQLãã¡ã€ã«ãåå²ããŠãªã¹ãã¢
ãªã¹ãã¢ããããŒã¿ã倧ããããå Žåããã¡ã€ã«ãå°åãã«ããŠãªã¹ãã¢ãããšæåçãäžãããŸãã
split -b 500M backup.sql backup_part_
åå²ãããã¡ã€ã«ãé çªã«ãªã¹ãã¢ïŒ
cat backup_part_* | mysql -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å
2. mysqldump
ã® --single-transaction
ãªãã·ã§ã³ãå©çš
ãã®ãªãã·ã§ã³ã䜿çšãããšãããŒãã«ããšã«ãªã¹ãã¢ãããããã倧容éããŒã¿ã®åŸ©å æã«è² è·ã軜æžã§ããŸãã
mysqldump --single-transaction -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å > backup.sql
3. innodb_flush_log_at_trx_commit
ãäžæçã«ç¡å¹å
倧èŠæš¡ããŒã¿ã®ãªã¹ãã¢æã«ãã©ã³ã¶ã¯ã·ã§ã³ãã°ã®æžã蟌ã¿é »åºŠãæžããããšã§ããªã¹ãã¢é床ãåäžã§ããŸãã
SET GLOBAL innodb_flush_log_at_trx_commit=0;
ãªã¹ãã¢åŸã«å ã®èšå®ïŒããã©ã«ãïŒ1ïŒã«æ»ãããšãå¿ããã«ã
SET GLOBAL innodb_flush_log_at_trx_commit=1;
ãã°ãã¡ã€ã«ã確èªããŠãªã¹ãã¢ã®åé¡ãæ€èšŒ
1. MySQLã®ãšã©ãŒãã°ã確èª
ãªã¹ãã¢ã倱æããå ŽåãMySQLã®ãšã©ãŒãã°ã確èªããããšã§ãåå ãç¹å®ã§ããŸãã
sudo cat /var/log/mysql/error.log
2. SHOW WARNINGS;
ã§è©³çŽ°ãªãšã©ãŒã¡ãã»ãŒãžã確èª
SHOW WARNINGS;
ããããèŠå
ã¡ãã»ãŒãž | åå | 解決ç |
---|---|---|
Duplicate entry | äž»ããŒã®éè€ | INSERT IGNORE ãå©çšãã |
Table already exists | ããŒãã«ãæ¢ã«ååšãã | DROP TABLE IF EXISTS ãäºåã«å®è¡ |
Data truncated for column | æååãã«ã©ã ã®å¶éãè¶ ããŠãã | VARCHAR ã®ãµã€ãºãæ¡å€§ |
7. ãããã質åïŒFAQïŒ
Q1: ãªã¹ãã¢äžã«ãããŒã¿ããŒã¹ãååšããŸããããšè¡šç€ºãããå Žåã®å¯ŸåŠæ³ã¯ïŒ
â ãšã©ãŒã¡ãã»ãŒãž
ERROR 1049 (42000): Unknown database 'ããŒã¿ããŒã¹å'
â åå
- ããã¯ã¢ãããã¡ã€ã«ã«
CREATE DATABASE
ã®èšè¿°ããªã - ãªã¹ãã¢æã«ããŒã¿ããŒã¹ãæå®ããŠããããååšããªã
â 解決ç
- ããŒã¿ããŒã¹ãæåã§äœæ
mysql -u ãŠãŒã¶ãŒå -p -e "CREATE DATABASE ããŒã¿ããŒã¹å CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
- ãªã¹ãã¢ãå®è¡
mysql -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å < backup.sql
Q2: æååããçºçããå Žåã®è§£æ±ºçã¯ïŒ
â ãšã©ãŒã¡ãã»ãŒãž
ERROR 1366 (HY000): Incorrect string value
â åå
- ããã¯ã¢ããæãšãªã¹ãã¢æã®æåã³ãŒããç°ãªã
- ããŒã¿ããŒã¹ã®ããã©ã«ãæåã³ãŒããé©åã§ãªã
â 解決ç
- ããã¯ã¢ãããã¡ã€ã«ã®ãšã³ã³ãŒãã£ã³ã°ã確èª
file backup.sql
- ãªã¹ãã¢æã«
--default-character-set=utf8mb4
ãæå®
mysql -u ãŠãŒã¶ãŒå -p --default-character-set=utf8mb4 ããŒã¿ããŒã¹å < backup.sql
- ããŒã¿ããŒã¹ã®æåã³ãŒããçµ±äž
ALTER DATABASE ããŒã¿ããŒã¹å CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE ããŒãã«å CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Q3: 倧容éSQLãã¡ã€ã«ïŒ1GB以äžïŒã®ãªã¹ãã¢æ¹æ³ã¯ïŒ
â åé¡ç¹
- ãªã¹ãã¢ã«æéãããã
ERROR 2006 (HY000): MySQL server has gone away
ãšãããšã©ãŒãåºã
â 解決ç
max_allowed_packet
ãå¢ãã
SET GLOBAL max_allowed_packet=256M;
innodb_buffer_pool_size
ã調æŽ
[mysqld]
innodb_buffer_pool_size=2G
- ããã¯ã¢ãããå§çž®ããŠãªã¹ãã¢
mysqldump -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å | gzip > backup.sql.gz
gunzip < backup.sql.gz | mysql -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å
- SQLãã¡ã€ã«ãåå²
split -b 500M backup.sql backup_part_
åå²ãããã¡ã€ã«ãé çªã«ãªã¹ãã¢ïŒ
cat backup_part_* | mysql -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å
Q4: AWS RDSïŒã¯ã©ãŠãç°å¢ïŒã§ã®ãªã¹ãã¢æé ã¯ïŒ
â æé
- ããŒã«ã«ã§ããã¯ã¢ãããååŸ
mysqldump -u ãŠãŒã¶ãŒå -p --databases ããŒã¿ããŒã¹å > backup.sql
- ããã¯ã¢ãããã¡ã€ã«ãAWS RDSã€ã³ã¹ã¿ã³ã¹ã«è»¢é
scp backup.sql ãŠãŒã¶ãŒå@ãµãŒããŒIP:/path/to/backup/
- AWS RDSã«æ¥ç¶ããŠãªã¹ãã¢
mysql -h RDSãšã³ããã€ã³ã -u ãŠãŒã¶ãŒå -p ããŒã¿ããŒã¹å < backup.sql
â 泚æç¹
- AWS RDS ã§ã¯
SUPER
æš©éããªãããã--set-gtid-purged=OFF
ãæå®ããŠããã¯ã¢ãããååŸããå¿ èŠãããã
mysqldump -u ãŠãŒã¶ãŒå -p --set-gtid-purged=OFF --databases ããŒã¿ããŒã¹å > backup.sql
Q5: èªåã§ããã¯ã¢ããïŒãªã¹ãã¢ãå®æçã«ãã¹ãããæ¹æ³ã¯ïŒ
â
解決ç
Linuxã®cronãžã§ãã䜿ã£ãŠãæ¯æ¥èªåã§ããã¯ã¢ãããååŸïŒãªã¹ãã¢ãã¹ããè¡ãã
1. èªåããã¯ã¢ããã¹ã¯ãªãã
#!/bin/bash
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +"%Y%m%d")
DB_NAME="your_database"
USER="your_user"
PASSWORD="your_password"
# ããã¯ã¢ããã®ååŸ
mysqldump -u $USER -p$PASSWORD $DB_NAME > $BACKUP_DIR/backup_$DATE.sql
# 30æ¥ä»¥äžåã®ããã¯ã¢ãããåé€
find $BACKUP_DIR -type f -name "backup_*.sql" -mtime +30 -exec rm {} \;
2. èªåãªã¹ãã¢ãã¹ãã¹ã¯ãªãã
#!/bin/bash
DB_NAME="restore_test"
USER="your_user"
PASSWORD="your_password"
BACKUP_FILE="/var/backups/mysql/backup_latest.sql"
# ãã¹ãçšããŒã¿ããŒã¹ã®äœæ
mysql -u $USER -p$PASSWORD -e "DROP DATABASE IF EXISTS $DB_NAME; CREATE DATABASE $DB_NAME;"
# ãªã¹ãã¢ã®å®è¡
mysql -u $USER -p$PASSWORD $DB_NAME < $BACKUP_FILE
3. cronãžã§ãã«è¿œå
crontab -e
以äžã®è¡ãè¿œå ïŒæ¯æ¥æ·±å€3æã«ããã¯ã¢ããã4æã«ãªã¹ãã¢ãã¹ãïŒ
0 3 * * * /path/to/backup_script.sh
0 4 * * * /path/to/restore_test_script.sh
â ãã§ãã¯ãã€ã³ã
- èªåããã¯ã¢ããïŒãªã¹ãã¢ãã¹ããå®æçã«å®æœ
- ããã¯ã¢ãããã¡ã€ã«ãç ŽæããŠããªãããåžžã«æ€èšŒ
8. ãŸãšã
MySQLãªã¹ãã¢ã®åºæ¬æé ã®æ¯ãè¿ã
â ãªã¹ãã¢åã®æºå
- ããã¯ã¢ããã®çš®é¡ãç解ïŒ
mysqldump
ãphpMyAdmin
ããã€ããªãã°ãªã©ïŒ - ãªã¹ãã¢åã«ããŒã¿ããŒã¹ãšæåã³ãŒãã確èª
- é©åãªãªã¹ãã¢æ¹æ³ãéžæ
â MySQLã®ãªã¹ãã¢æé
æ¹æ³ | é£æ床 | ã¡ãªãã | ãã¡ãªãã |
---|---|---|---|
mysqldump | äžçŽ | é«éã»æ±çšæ§â | ã³ãã³ãæäœãå¿ èŠ |
phpMyAdmin | åå¿è | GUIã§æäœãããã | 倧容éããŒã¿ã«åããªã |
Workbench | åå¿è | ç°¡åãªUIæäœ | ãµãŒããŒè² è·ãé«ã |
ãã€ããªãã° | äžçŽ | æéåäœã§åŸ©å å¯ | èšå®ãè€é |
â ãªã¹ãã¢åŸã®ããŒã¿ç¢ºèª
SHOW DATABASES;
ã§ããŒã¿ããŒã¹ãæ£ããäœæãããŠããã確èªSHOW TABLES;
ã§ããŒãã«ããã¹ãŠåŸ©å ãããŠããã確èªSELECT COUNT(*)
ã§ããŒã¿ä»¶æ°ãæ€èšŒSHOW WARNINGS;
ã§ãªã¹ãã¢æã®èŠåããã§ãã¯
â 倧容éããŒã¿ã®ãªã¹ãã¢æé©å
max_allowed_packet
ãinnodb_buffer_pool_size
ã調æŽ- ããã¯ã¢ãããåå²ããŠãªã¹ã㢠(
split -b 500M backup.sql backup_part_
) --disable-keys
ã掻çšããŠã€ã³ããã¯ã¹ã®æŽæ°ãæé©å
â ãªã¹ãã¢æã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
- ãããŒã¿ããŒã¹ãååšããŸããã â
CREATE DATABASE
ãå®è¡ - ãæååãã â
--default-character-set=utf8mb4
ãæå® - ããªã¹ãã¢ãéäžã§åæ¢ããã â
max_allowed_packet
ãå¢ãã - ã倧容éããŒã¿ã®ãªã¹ãã¢ã â ãã¡ã€ã«ãåå² or
--single-transaction
ãäœ¿çš - ãAWS RDSã§ãªã¹ãã¢ã â
--set-gtid-purged=OFF
ãæå® - ããšã©ãŒãã°ã®ç¢ºèªã â
SHOW WARNINGS;
ã掻çš
å¹æçãªããã¯ã¢ããã»ãªã¹ãã¢éçšã®ãã€ã³ã
ããã¯ã¢ãããšãªã¹ãã¢ãé©åã«ç®¡çããããšã§ãããŒã¿æ倱ã®ãªã¹ã¯ãæå°éã«æããããšãã§ããŸãã
å®æçãªããã¯ã¢ãããšãªã¹ãã¢ãã¹ã ãè¡ãããšã§ãå®éã®é害çºçæã«ã¹ã ãŒãºã«ããŒã¿ã埩æ§ã§ããŸãã
1. å®æçãªããã¯ã¢ããã®ååŸ
- æ¯æ¥/æ¯é±ã®å®æããã¯ã¢ãããã¹ã±ãžã¥ãŒã«
- ãã«ããã¯ã¢ãã + å·®åããã¯ã¢ãããçµã¿åããã
- ããŒã«ã«ãšãªã¢ãŒãã«ããã¯ã¢ãããä¿å
- ããŒã«ã«:
/var/backups/mysql/
- ã¯ã©ãŠãã¹ãã¬ãŒãž (S3, Google Drive, FTP)
2. èªåããã¯ã¢ããã¹ã¯ãªãã
ããã¯ã¢ãããèªååããããšã§ãæéãæžãããããã¯ã¢ããæŒããé²ãããšãã§ããŸãã
#!/bin/bash
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +"%Y%m%d")
DB_NAME="your_database"
USER="your_user"
PASSWORD="your_password"
# ããã¯ã¢ããã®ååŸ
mysqldump -u $USER -p$PASSWORD $DB_NAME > $BACKUP_DIR/backup_$DATE.sql
# 30æ¥ä»¥äžåã®ããã¯ã¢ãããåé€
find $BACKUP_DIR -type f -name "backup_*.sql" -mtime +30 -exec rm {} \;
3. èªåãªã¹ãã¢ãã¹ã
ããã¯ã¢ãããæ£ããæ©èœããããå®æçã«ãã¹ãããããšãéèŠã§ãã
#!/bin/bash
DB_NAME="restore_test"
USER="your_user"
PASSWORD="your_password"
BACKUP_FILE="/var/backups/mysql/backup_latest.sql"
# ãã¹ãçšããŒã¿ããŒã¹ã®äœæ
mysql -u $USER -p$PASSWORD -e "DROP DATABASE IF EXISTS $DB_NAME; CREATE DATABASE $DB_NAME;"
# ãªã¹ãã¢ã®å®è¡
mysql -u $USER -p$PASSWORD $DB_NAME < $BACKUP_FILE
4. ç£èŠãšã¢ã©ãŒãã®å°å ¥
- ããã¯ã¢ããã倱æããå Žåã«éç¥ãåãã
cron
ã®MAILTO
ãèšå®Slack
ãã¡ãŒã«éç¥
ã掻çš
MAILTO="your_email@example.com"
0 3 * * * /path/to/backup_script.sh
MySQLãªã¹ãã¢ãæåãããããã«
ããã¯ã¢ãããšãªã¹ãã¢ã¯ãããŒã¿ä¿è·ã®æãéèŠãªèŠçŽ ã§ãã
ç¹ã«ãããžãã¹éçšãéçºç°å¢ã§ã¯ãå®æçãªããã¯ã¢ãããšåŸ©å
ãã¹ããäžå¯æ¬ ã§ãã
æ¬èšäºã§çŽ¹ä»ããæé ã掻çšããMySQLã®ããã¯ã¢ããã»ãªã¹ãã¢ã®éçšãæ¹å ããŸãããã
ð¹ MySQLãªã¹ãã¢æåã®ããã®ãã§ãã¯ãªã¹ã
â ããã¯ã¢ããã¯å®æçã«ååŸããŠãããïŒ
â ããã¯ã¢ãããã¡ã€ã«ã®å
容ãäºåã«ç¢ºèªããŠãããïŒ
â ãªã¹ãã¢åŸã®ããŒã¿æŽåæ§ãã§ãã¯ãè¡ã£ãŠãããïŒ
â 倧容éããŒã¿ã®ãªã¹ãã¢ã«é©åãªèšå®ãããŠãããïŒ
â ãã©ãã«çºçæã®å¯Ÿå¿æé ãæºåããŠãããïŒ
â èªååã¹ã¯ãªãããå°å
¥ããŠããã¯ã¢ããïŒãªã¹ãã¢ãæé©åããŠãããïŒ
次ã®ã¹ããã
æ¬èšäºãåèã«ãMySQLã®ãªã¹ãã¢ããã¹ãããŠãåé¡ãªã埩å
ã§ãããã確èªããŸãããã
ãŸãããªã¹ãã¢æé ãããã¥ã¡ã³ãå ããããŒã å
ã§å
±æããããšãéèŠã§ãã
ããŒã¿ãå®ãããã«ãããã¯ã¢ãããšãªã¹ãã¢ã®éçšãç¶ç¶çã«æ¹åããŠãããŸãããïŒ ð