- 1 1. ã¯ããã«
- 2 2. MySQL 5.7ãš8.0ã®äž»ãªéãïŒåå¿è åãæŠèŠïŒ
- 3 3. MySQL 5.7ãš8.0ã®éããæ·±æãïŒäžäžçŽè åãïŒ
- 4 4. 移è¡æã®æ³šæç¹
- 5 5. 移è¡æé ã¬ã€ã
- 6 6. FAQïŒãããã質åïŒ
- 6.1 Q1: MySQL 5.7ã®ãµããŒãæéã¯ãã€ãŸã§ã§ããïŒ
- 6.2 Q2: MySQL 8.0ãžã®ç§»è¡ã¯å¿ é ã§ããïŒ
- 6.3 Q3: 移è¡æã«ããŒã¿ã®äºææ§ã¯ä¿ãããŸããïŒ
- 6.4 Q4: 移è¡åŸã«å ã®ããŒãžã§ã³ã«æ»ãããšã¯ã§ããŸããïŒ
- 6.5 Q5: 移è¡ã«å¿ èŠãªæéã¯ã©ã®ãããã§ããïŒ
- 6.6 Q6: MySQL 8.0ã§ç¹ã«æ³šæãã¹ãå€æŽç¹ã¯äœã§ããïŒ
- 6.7 Q7: 移è¡åŸãããã©ãŒãã³ã¹ãäœäžããããšã¯ãããŸããïŒ
- 6.8 Q8: MySQL 8.0ã®ã»ãã¥ãªãã£åŒ·åç¹ã¯äœã§ããïŒ
- 6.9 Q9: MySQL 8.0ãžã®ç§»è¡ãå€éšã«äŸé Œããã¹ãã§ããïŒ
- 7 7. ãŸãšã
1. ã¯ããã«
MySQLã®æŠèŠ
MySQLã¯ãäžçäžã§æãåºãå©çšãããŠãããªãŒãã³ãœãŒã¹ã®ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ç®¡çã·ã¹ãã ïŒRDBMSïŒã§ãããŠã§ãã¢ããªã±ãŒã·ã§ã³ãäŒæ¥ã·ã¹ãã ã§æ¬ ãããªãååšãšããŠãå€ãã®ãšã³ãžãã¢ãããŒã¿ããŒã¹ç®¡çè ã«æ¯æãããŠããŸãããã®äžã§ããMySQLã®ããŒãžã§ã³ã¢ããã¯ãã·ã¹ãã ã®å®å®æ§ãããã©ãŒãã³ã¹ãåäžãããã ãã§ãªããæ°ããæ©èœã掻çšããããã«ãéèŠãªåœ¹å²ãæãããŸãã
MySQL 5.7ãš8.0ã®éãã«æ³šç®ããçç±
MySQLã®äž»æµããŒãžã§ã³ã§ãã5.7ãš8.0ã«ã¯ãå€ãã®éãããããŸãããããã®éããç解ããããšã¯ãé©åãªããŒãžã§ã³éžæã移è¡èšç»ãç«ãŠãäžã§éåžžã«éèŠã§ããããšãã°ãMySQL 8.0ã§ã¯ããã©ã«ãã®æåã»ãããå€æŽãããããã©ãŒãã³ã¹ãåäžããŠããäžæ¹ã§ãäžéšã®æ©èœãå»æ¢ããããªã©ã移è¡ã«ãããŠæ³šæãã¹ãç¹ãååšããŸãã
æ¬èšäºã§ã¯ãMySQL 5.7ãš8.0ã®äž»ãªéããæ°æ©èœã解説ãããšãšãã«ã移è¡æã®æ³šæç¹ãå®è·µçãªã¢ããã€ã¹ãæäŸããŸãããŸããèªè ãæ±ããããçåã«çããFAQã»ã¯ã·ã§ã³ãçšæããŸãããMySQLã®ããŒãžã§ã³ã¢ãããæ€èšããŠããéçºè ãããŒã¿ããŒã¹ç®¡çè ã«ãšã£ãŠãæçãªæ å ±ãè©°ãŸã£ãèšäºãç®æããŠããŸãã
2. MySQL 5.7ãš8.0ã®äž»ãªéãïŒåå¿è åãæŠèŠïŒ
ããã©ã«ãæåã»ããã®å€æŽ
MySQL 5.7ã§ã¯ããã©ã«ãã®æåã»ããããlatin1ãã§ãããã8.0ã§ã¯ãutf8mb4ãã«å€æŽãããŸããã
utf8mb4ã¯ãçµµæåãç¹æ®æåãå®å
šã«ãµããŒãããŠãããæåã»ããã®äºææ§ã倧å¹
ã«åäžããŠããŸããããã«ãããåœéçãªãŠã§ããµã€ããã¢ããªã±ãŒã·ã§ã³ã§ãå®å¿ããŠäœ¿çšã§ããç°å¢ãæŽããŸããã
äŸ:
-- MySQL 5.7ã§ã¯ãšã©ãŒã«ãªãå¯èœæ§ãããçµµæåããŒã¿
INSERT INTO test_table (text_column) VALUES ('ð');
8.0ã§ã¯ãã®ãããªçµµæåããŒã¿ãåé¡ãªãä¿åã§ããŸãã
æ°æ©èœã®è¿œå
MySQL 8.0ã§ã¯ãéçºè ãããŒã¿ããŒã¹ç®¡çè ã®äœæ¥ãå¹çåããããã®æ°æ©èœãå€æ°è¿œå ãããŠããŸããããã§ã¯ããã®äžã§ãç¹ã«éèŠãªãã®ã玹ä»ããŸãã
- JSONæ©èœã®åŒ·å
- JSONåããŒã¿ã®æ€çŽ¢ãæäœãããçŽæçã«è¡ããããã«ãªããŸããã
- äŸ: JSONããŒã¿ããç¹å®ã®å€ãç°¡åã«æœåºã§ããŸãã
sql SELECT JSON_EXTRACT(json_column, '$.key') FROM test_table;
- ãŠã£ã³ããŠé¢æ°ã®å°å ¥
- ããŒã¿åæãå¹çåãããŠã£ã³ããŠé¢æ°ãæ°ãã«è¿œå ãããŸããã
- äŸ: å顧客ã®å£²äžã©ã³ãã³ã°ãèšç®ããã¯ãšãª
sql SELECT customer_id, sales, RANK() OVER (ORDER BY sales DESC) AS rank FROM sales_table;
éæšå¥šã»å»æ¢ãããæ©èœ
MySQL 8.0ã§ã¯ãããã€ãã®æ©èœãéæšå¥šãŸãã¯å»æ¢ãããŠããŸãã以äžã¯ãã®äžéšã§ãã
query_cache
ã®å»æ¢
ããã©ãŒãã³ã¹åäžã®ããã«éæšå¥šãšãªããŸããã代ããã«ã€ã³ããã¯ã¹ãã¢ããªã±ãŒã·ã§ã³åŽã§ã®ãã£ãã·ã¥ç®¡çãæšå¥šãããŠããŸãã- å€ãæå·åæ¹åŒã®ãµããŒãçµäº
ã»ãã¥ãªãã£ã®åäžãç®çã«ãå€ãèªèšŒæ¹åŒãå»æ¢ãããŸããã
ããã©ãŒãã³ã¹ã®åäž
MySQL 8.0ã¯ãã¯ãšãªåŠçé床ãã€ã³ããã¯ã¹ã®ç®¡çãå€§å¹ ã«æ¹åãããŠããŸããããã«ãããç¹ã«å€§éããŒã¿ãæ±ãç°å¢ã§ã®åäœãå€§å¹ ã«åäžããŠããŸãã
å ·äœäŸ:
- ããŒããããã«ããã€ã³ããã¯ã¹ç®¡ç: 䜿çšé »åºŠã®äœãã€ã³ããã¯ã¹ãå¹ççã«åé€å¯èœã
- InnoDBã®æé©å: ãã©ã³ã¶ã¯ã·ã§ã³åŠçã®é«éåã
-- ã€ã³ããã¯ã¹æé©åäŸ
ALTER TABLE sales_table ADD INDEX (sales_amount);
3. MySQL 5.7ãš8.0ã®éããæ·±æãïŒäžäžçŽè åãïŒ
ããã©ã«ãæåã»ããã®è©³çŽ°
MySQL 8.0ã§ã¯ãããã©ã«ãã®æåã»ãããutf8mb4
ã«å€æŽãããŸãããããã«ãããããŒã¿ã®åœéå察å¿ã倧å¹
ã«åäžããŸãããããšãã°ãçµµæåãç¹æ®æåã®ä¿åã«å¿
èŠãªãã«ããã€ãæåã»ãããããã©ã«ãã§ãµããŒããããŸãã
å®åã§ã®åœ±é¿:
- æåã»ããã®äºææ§: 5.7ãã8.0ã«ç§»è¡ããéãæ¢åã®ããŒã¿ããŒã¹ã
latin1
ãä»ã®æåã»ããã䜿çšããŠããå Žåã¯ã移è¡äžã«æåã»ããã®å€æŽãæ€èšããå¿ èŠããããŸãã - ããã©ãŒãã³ã¹ã®åäž:
utf8mb4
ã䜿çšãããšãäžéšã®æååæ¯èŒãå¹ççã«ãªããŸããã倧èŠæš¡ãªããŒã¿ããŒã¹ã§ããã©ãŒãã³ã¹ãžã®åœ±é¿ãäºåã«ç¢ºèªããå¿ èŠããããŸãã
-- utf8mb4ãžã®å€æŽäŸ
ALTER TABLE sample_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
JSONæ©èœã®åŒ·å
MySQL 5.7ã§ã¯ãJSONããŒã¿åãåããŠå°å ¥ãããŸãããã8.0ã§ã¯ããã«åŒ·åãªæ©èœãè¿œå ãããŠããŸããããã«ãããæ§é åããŒã¿ã®ç®¡çãšæäœãç°¡åã«ãªããã¢ããªã±ãŒã·ã§ã³éçºãå¹çåãããŸãã
äž»ãªæ¹åç¹:
- JSON_TABLEé¢æ°
JSONããŒã¿ãããŒãã«åœ¢åŒã«å€æããããšãã§ããŸããããã«ãããè€éãªJSONããŒã¿ãç°¡åã«ã¯ãšãªã§æäœå¯èœã«ãªããŸãã
SELECT * FROM JSON_TABLE(
'[{"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"}]',
'$[*]' COLUMNS (
id INT PATH '$.id',
name VARCHAR(50) PATH '$.name'
)
) AS jt;
- ã€ã³ããã¯ã¹ã®æé©å
JSONããŒã¿ã«å¯Ÿããã€ã³ããã¯ã¹ã®äœæãå¯èœãšãªããã¯ãšãªæ§èœãåäžããŸããã
CREATE INDEX json_index ON test_table (JSON_EXTRACT(json_column, '$.key'));
ããã©ãŒãã³ã¹ãšInnoDBã®æ¹è¯
MySQL 8.0ã§ã¯ãInnoDBãšã³ãžã³ã®å€§å¹ ãªæé©åãè¡ãããŸãããããã«ããããã©ã³ã¶ã¯ã·ã§ã³ã®åŠçé床ãåäžãã倧éããŒã¿ã®åŠçãå¹çåãããŸãã
äž»ãªæ¹è¯ç¹:
- ããã«Writeãããã¡ã®å°å
¥
ããŒã¿ã®ã¯ã©ãã·ã¥èæ§ãåäžãããã£ã¹ã¯I/Oã®å¹çãæ¹åãããŸããã - æ°žç¶æ§ã¡ã¿ããŒã¿ã®è¿œå
ããŒãã«å®çŸ©ãã€ã³ããã¯ã¹ã®æ å ±ããã£ã¹ã¯äžã«ä¿åããããããåèµ·ååŸã®ããã©ãŒãã³ã¹ãåäžã
äŸ:
-- ã€ã³ããã¯ã¹æé©åäŸ
ALTER TABLE sales_table ADD INDEX (sales_amount);
ãŠã£ã³ããŠé¢æ°ã®å°å ¥
MySQL 8.0ã§ã¯ãŠã£ã³ããŠé¢æ°ãæ°ãã«è¿œå ãããããŒã¿åæãããç°¡åã«ãªããŸããããŠã£ã³ããŠé¢æ°ã䜿ããšãéèšãã©ã³ãã³ã°ãªã©ã®è€éãªåŠçãå¹ççã«å®çŸã§ããŸãã
äž»ãªå©çšäŸ:
- å顧客ã®çŽ¯ç©å£²äžãèšç®
- ã©ã³ãã³ã°ãé äœã®èšç®
äŸ: 环ç©å£²äžã®èšç®
SELECT customer_id, sales, SUM(sales) OVER (PARTITION BY customer_id ORDER BY sales_date) AS cumulative_sales
FROM sales_table;
éæšå¥šæ©èœãšç§»è¡æã®æ³šæç¹
MySQL 8.0ã§ã¯ããã€ãã®æ©èœãå»æ¢ãŸãã¯éæšå¥šãšãªããŸãããããããææ¡ãã移è¡æã®ãã©ãã«ãé²ãããšãéèŠã§ãã
- å»æ¢ãããæ©èœ
query_cache
: ããã©ãŒãã³ã¹æ¹åã®ããåé€ã- å€ãèªèšŒæ¹åŒ: ã»ãã¥ãªãã£åäžãç®çã«å»æ¢ã
- 移è¡æã®æ³šæç¹
- éæšå¥šæ©èœã䜿çšããŠããã¯ãšãªãã¢ããªã±ãŒã·ã§ã³ãäºåã«æŽãåºãã代æ¿æ段ãæ€èšããå¿ èŠããããŸãã
4. 移è¡æã®æ³šæç¹
äºææ§ã®ç¢ºèª
移è¡ãè¡ãåã«ãMySQL 8.0ã®éäºæãªå€æŽç¹ãéæšå¥šæ©èœã確èªããããšãéèŠã§ãã以äžã®ç¹ã«ç¹ã«æ³šæããŠãã ããã
- äºçŽèªã®å€æŽ
MySQL 8.0ã§ã¯æ°ããäºçŽèªãè¿œå ãããŠãããããããæ¢åã®ã«ã©ã åãããŒãã«åãšç«¶åããå¯èœæ§ããããŸããäºåã«ç¢ºèªããŠä¿®æ£ããå¿ èŠããããŸãã
äŸ:GROUPS
ãWINDOW
ã¯8.0ã§äºçŽèªã«ãªããŸããã
-- åé¡ãé¿ããããã®ãªããŒã äŸ
ALTER TABLE example_table RENAME COLUMN groups TO user_groups;
- éæšå¥šæ©èœã®å©çš
5.7ã§åäœããŠããã¯ãšãªãèšå®ãã8.0ã§éæšå¥šãå»æ¢ãšãªã£ãŠããå ŽåããããŸããäŸãã°ãquery_cache
ã8.0ã§å»æ¢ãããŠããŸãã代æ¿ãšããŠã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã§ã®ãã£ãã·ã¥å©çšãæ€èšããŠãã ããã - æåã»ãããšç
§åé åºã®å€æŽ
MySQL 8.0ã§ã¯ããã©ã«ãã®æåã»ãããutf8mb4
ã«å€æŽãããŸãããæ¢åã®ããŒãã«ãlatin1
ãä»ã®æåã»ããã䜿çšããŠããå Žåã移è¡æã«äºææ§ã®åé¡ãçºçããå¯èœæ§ããããŸãã
-- æåã»ããã®å€æŽäŸ
ALTER TABLE my_table CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ããŒã¿ããã¯ã¢ããã®éèŠæ§
移è¡äœæ¥äžã«ããŒã¿ã®æ倱ãç Žæãçºçãããªã¹ã¯ããããŸãããã®ãããå¿ ãäºåã«ããã¯ã¢ãããååŸããŠãã ããã
æšå¥šãããããã¯ã¢ããæ¹æ³:
- mysqldumpã䜿çšããæ¹æ³
mysqldump -u root -p --all-databases > backup.sql
- ç©çããã¯ã¢ããïŒPercona XtraBackupãªã©ãå©çšïŒã
ããã¯ã¢ãããååŸããåŸã¯ã移è¡å ã®ç°å¢ã§ãªã¹ãã¢ããŠãã¹ããè¡ããããŒã¿ãæ£ãã移è¡ã§ããããšã確èªããŠãã ããã
ãã¹ãç°å¢ã§ã®æ€èšŒ
移è¡äœæ¥ã¯ãå¿ ãæ¬çªç°å¢ã§ã¯ãªããã¹ãç°å¢ã§äºåã«å®æœããŠãã ããããã¹ãç°å¢ã§ã¯ã次ã®ã¹ããããå®è¡ããŠåé¡ç¹ãæŽãåºããŸãã
- ããŒã¿ã®ãªã¹ãã¢
ãã¹ãç°å¢ã«ããã¯ã¢ããããªã¹ãã¢ãã移è¡äœæ¥ãã·ãã¥ã¬ãŒã·ã§ã³ããŸãã - ã¢ããªã±ãŒã·ã§ã³ã®åäœç¢ºèª
移è¡åŸãã¢ããªã±ãŒã·ã§ã³ãMySQL 8.0ã§æ£åžžã«åäœãããã確èªããŸããç¹ã«ãSQLã¯ãšãªã®äºææ§ãããã©ãŒãã³ã¹ã«æ³šæããŸãã - è² è·ãã¹ã
移è¡åŸã®ããŒã¿ããŒã¹ã§ãå®éã®ãã©ãã£ãã¯ãæš¡å£ããè² è·ãã¹ããè¡ããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããŸãã
移è¡èšç»ã®ç«æ¡
æåãã移è¡ã«ã¯ã詳现ãªèšç»ãäžå¯æ¬ ã§ãã以äžã®ç§»è¡ã¹ããããåèã«èšç»ãç«ãŠãŠãã ããã
- çŸç¶åæ
- çŸåšã®MySQLç°å¢ã®èšå®ã䜿çšç¶æ³ãææ¡ããŸãã
- éæšå¥šæ©èœãäºçŽèªã®ç«¶åããã§ãã¯ããŸãã
- 移è¡ããŒã«ã®æºå
- MySQLå
¬åŒãæäŸãã
mysql_upgrade
ããŒã«ã䜿çšããŠãããŒã¿ããŒã¹ã®ã¢ããã°ã¬ãŒããã¹ã ãŒãºã«è¡ããŸãã
- 段éçãªç§»è¡
- ãŸãéçºç°å¢ã§ç§»è¡äœæ¥ãè¡ãã次ã«ã¹ããŒãžã³ã°ç°å¢ãæ¬çªç°å¢ã®é ã«é²ããŸãã
- 移è¡åŸã®æé©å
- ã€ã³ããã¯ã¹ã®åæ§ç¯ãããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ãå®æœããŸãã
ANALYZE TABLE my_table;
OPTIMIZE TABLE my_table;
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
移è¡äžã«åé¡ãçºçããå Žåã¯ã以äžã®æ¹æ³ã§ãã©ãã«ã解æ¶ããŸãã
- ãšã©ãŒãã°ã®ç¢ºèª
MySQLã®ãã°ã確èªãããšã©ãŒã®åå ãç¹å®ããŸãã
tail -f /var/log/mysql/error.log
- äºææ§èšå®ã®å©çš
MySQL 8.0ã§ã¯ãsql_mode
ãäžæçã«å€æŽããŠäºææ§ã確ä¿ã§ããŸãã
SET sql_mode='NO_ENGINE_SUBSTITUTION';
- å
¬åŒããã¥ã¡ã³ãã掻çš
MySQLå ¬åŒã®ã¢ããã°ã¬ãŒãã¬ã€ããFAQãåèã«è§£æ±ºçãæ¢ããŸãã

5. 移è¡æé ã¬ã€ã
移è¡æºå
- çŸåšã®ããŒãžã§ã³ã確èª
移è¡åã«MySQLã®çŸåšã®ããŒãžã§ã³ã確èªããŸããããã¯ãmysql_upgrade
ããŒã«ã®äœ¿çšãäºææ§ã®æ€èšŒã«åœ¹ç«ã¡ãŸãã
mysql --version
- éæšå¥šæ©èœã®ç¢ºèª
移è¡ã«åœ±é¿ãäžããéæšå¥šæ©èœãèšå®ã確èªããŸãã
å ¬åŒããã¥ã¡ã³ãã®ãMySQL 8.0ãžã®ã¢ããã°ã¬ãŒãã¬ã€ãããåèã«ãªã¹ããäœæããŸãã - ããŒã¿ããã¯ã¢ãã
ããŒã¿ãå®å šã«ä¿ã€ãããå®å šãªããã¯ã¢ãããååŸããŸãã
æšå¥šãããæ¹æ³ã¯æ¬¡ã®éãã§ãïŒ
- mysqldumpã³ãã³ãã䜿çšïŒ
bash mysqldump -u root -p --all-databases > backup.sql
- ç©çããã¯ã¢ããïŒPercona XtraBackupãªã©ãå©çšïŒã
ããã¯ã¢ãããååŸããåŸã¯ã移è¡å ã®ç°å¢ã§ãªã¹ãã¢ããŠãã¹ããè¡ããããŒã¿ãæ£ãã移è¡ã§ããããšã確èªããŠãã ããã
移è¡ã¹ããã
- MySQL 8.0ã®ã€ã³ã¹ããŒã«
移è¡å ãµãŒããŒã«MySQL 8.0ãã€ã³ã¹ããŒã«ããŸãã
ã€ã³ã¹ããŒã«æé ã¯OSã«ããç°ãªããŸããã以äžã¯Ubuntuã§ã®äŸã§ãïŒ
sudo apt update
sudo apt install mysql-server
- èšå®ãã¡ã€ã«ã®ç¢ºèª
my.cnf
ïŒãŸãã¯my.ini
ïŒãã¡ã€ã«ã確èªããèšå®ãæŽæ°ããŸãã
- éæšå¥šãªãã·ã§ã³ãåé€
- æ°ããæåã»ããïŒ
utf8mb4
ïŒãèšå®
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
- ããŒã¿ã®ã€ã³ããŒã
ååŸããããã¯ã¢ãããã¡ã€ã«ãå©çšããŠããŒã¿ãã€ã³ããŒãããŸãã
mysql -u root -p < backup.sql
- mysql_upgradeããŒã«ã®å®è¡
MySQL 8.0ã«ã¢ããã°ã¬ãŒãåŸãmysql_upgrade
ããŒã«ãå®è¡ããŠããŒã¿ããŒã¹ãææ°ã®åœ¢åŒã«æŽæ°ããŸãã
mysql_upgrade -u root -p
移è¡åŸã®æé©å
- ã€ã³ããã¯ã¹ã®åæ§ç¯
æ°ããInnoDBãšã³ãžã³ã«æé©åãããããã€ã³ããã¯ã¹ãåæ§ç¯ããŸãã
ALTER TABLE table_name ENGINE=InnoDB;
- ã¯ãšãªã®ããã©ãŒãã³ã¹ç¢ºèª
移è¡åŸãã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããäž»èŠãªã¯ãšãªããã¹ãããå¿ èŠã«å¿ããŠã€ã³ããã¯ã¹ãèšå®ã調æŽããŸãã
EXPLAIN SELECT * FROM table_name WHERE column_name = 'value';
- ãã°ã®ç£èŠ
移è¡åŸæ°æ¥éã¯ãšã©ãŒãã°ãã¹ããŒã¯ãšãªãã°ãç£èŠããåé¡ãæ©æã«çºèŠããŸãã
tail -f /var/log/mysql/error.log
ãã¹ããšæ€èšŒ
移è¡åŸã¯ã以äžã®ãã¹ããè¡ã£ãŠåäœç¢ºèªãããŸãã
- ã¢ããªã±ãŒã·ã§ã³ã®åäœç¢ºèª
ã¢ããªã±ãŒã·ã§ã³ãæ£åžžã«åäœãããã¹ãŠã®ã¯ãšãªãæåŸ éãã«åããŠããã確èªããŸãã - è² è·ãã¹ã
å®éã®ãã©ãã£ãã¯ãæš¡å£ããè² è·ãã¹ããè¡ããããã©ãŒãã³ã¹ãå®å®æ§ãæ€èšŒããŸãã - ããŒã¿æŽåæ§ã®ç¢ºèª
5.7ãã8.0ã«ç§»è¡åŸãããŒã¿ãæ£ããä¿æãããŠããã確èªããŸãã
ç¹ã«æåã»ãããç §åé åºã«é¢é£ããåé¡ã«æ³šæããŠãã ããã
ãã©ãã«çºçæã®å¯Ÿå¿ç
移è¡äžãŸãã¯ç§»è¡åŸã«åé¡ãçºçããå Žåã以äžã®å¯Ÿå¿çãæ€èšããŠãã ããã
- ããã¯ã¢ããããã®ãªã¹ãã¢
åé¡ã解決ã§ããªãå Žåã¯ãããã¯ã¢ãããçšããŠæ§ç°å¢ã«æ»ãããšãæ€èšããŸãã - å
¬åŒãµããŒããåç
§
MySQLå ¬åŒã®ã¢ããã°ã¬ãŒãã¬ã€ãããµããŒãã掻çšããŠãåé¡è§£æ±ºã®æããããæ¢ããŸãã - ãšã©ãŒå
容ã®å
±æ
ãã©ãŒã©ã ãæè¡è ã³ãã¥ããã£ã«ãšã©ãŒå 容ãå ±æããããšã§ã解決çãåŸãããå¯èœæ§ããããŸãã
6. FAQïŒãããã質åïŒ
Q1: MySQL 5.7ã®ãµããŒãæéã¯ãã€ãŸã§ã§ããïŒ
A1: MySQL 5.7ã®å ¬åŒãµããŒãã¯2023幎10ææ«ã«çµäºããŸããã以éã¯ã»ãã¥ãªãã£ã¢ããããŒãããã°ä¿®æ£ãæäŸãããªããããå¯èœãªéãæ©ãã«MySQL 8.0ãžã®ç§»è¡ãæ€èšããããšããå§ãããŸãã
Q2: MySQL 8.0ãžã®ç§»è¡ã¯å¿ é ã§ããïŒ
A2: 移è¡ã¯å¿ é ã§ã¯ãããŸãããã以äžã®çç±ã§æšå¥šãããŸãã
- MySQL 8.0ã§ã¯ã»ãã¥ãªãã£ãšããã©ãŒãã³ã¹ãåäžããŠããŸãã
- æ°ããæ©èœïŒäŸ: JSONæ©èœã®åŒ·åããŠã£ã³ããŠé¢æ°ïŒãéçºå¹çãåäžãããŸãã
- MySQL 5.7ã®ãµããŒãçµäºã«äŒŽããã»ãã¥ãªãã£ãªã¹ã¯ã軜æžã§ããŸãã
Q3: 移è¡æã«ããŒã¿ã®äºææ§ã¯ä¿ãããŸããïŒ
A3: åºæ¬çã«ã¯ããŒã¿ã®äºææ§ã¯ä¿ãããŸãããã ãã以äžã®ã±ãŒã¹ã§ã¯æ³šæãå¿ èŠã§ãïŒ
- æåã»ããã
latin1
ãå€ãç §åé åºã䜿çšããŠããå Žåã移è¡åŸã«æååãã®ãªã¹ã¯ããããŸãã - éæšå¥šæ©èœãå»æ¢ãããæ©èœã䜿çšããŠããå Žåã¯ããšã©ãŒãäºæããªãåäœãçºçããå¯èœæ§ããããŸãã
移è¡åã«ãã¹ãç°å¢ã§åé¡ããªããã確èªããããšã匷ãæšå¥šããŸãã
Q4: 移è¡åŸã«å ã®ããŒãžã§ã³ã«æ»ãããšã¯ã§ããŸããïŒ
A4: äžåºŠMySQL 8.0ã«ç§»è¡ããããŒã¿ãMySQL 5.7ã«æ»ãããšã¯éåžžã«é£ããã§ããMySQL 8.0ã§ã¯ããŒã¿ã®å éšæ§é ãå€æŽãããŠãããããç°¡åã«ã¯äºææ§ãä¿ãããŸããããã®ããã移è¡åã«å¿ ãããã¯ã¢ãããååŸããåé¡ãçºçããå Žåã«åããå¿ èŠããããŸãã
Q5: 移è¡ã«å¿ èŠãªæéã¯ã©ã®ãããã§ããïŒ
A5: 移è¡ã«ãããæéã¯ãããŒã¿ããŒã¹ã®èŠæš¡ãç°å¢ã«ãã£ãŠç°ãªããŸããã以äžã®èŠå ã圱é¿ããŸãïŒ
- ããŒã¿ããŒã¹ãµã€ãºïŒããŒã¿éãå€ãã»ã©æéãããããŸãïŒã
- ãµãŒããŒæ§èœãšãããã¯ãŒã¯é床ã
- ãã¹ãç°å¢ã§ã®æ€èšŒãšãã©ãã«å¯Ÿå¿æéã
å°èŠæš¡ãªããŒã¿ããŒã¹ã§ã¯æ°æéã倧èŠæš¡ãªã·ã¹ãã ã§ã¯æ°æ¥éãããããšããããŸãã
Q6: MySQL 8.0ã§ç¹ã«æ³šæãã¹ãå€æŽç¹ã¯äœã§ããïŒ
A6: ããã€ãã®éèŠãªå€æŽç¹ããããŸãïŒ
- ããã©ã«ãæåã»ããã
utf8mb4
ã«å€æŽãããããã移è¡æã«æåã»ããé¢é£ã®åé¡ãçºçããå¯èœæ§ããããŸãã query_cache
ãå»æ¢ããããã£ãã·ã¥ã®èšå®æ¹æ³ãå€ãããŸããã- æ°ããäºçŽèªïŒäŸ:
GROUPS
ãWINDOW
ïŒãè¿œå ããããããæ¢åã®ããŒãã«ãã¯ãšãªã§ç«¶åãçºçããå¯èœæ§ããããŸãã
Q7: 移è¡åŸãããã©ãŒãã³ã¹ãäœäžããããšã¯ãããŸããïŒ
A7: æ£ããæé ã§ç§»è¡ãè¡ãã°ãMySQL 8.0ã®æ§èœã¯éåžžåäžããŸãããã ãã以äžã®ã±ãŒã¹ã§ã¯äžæçã«ããã©ãŒãã³ã¹ãäœäžããå¯èœæ§ããããŸãïŒ
- äžé©åãªã€ã³ããã¯ã¹èšå®ã
- éå¹çãªã¯ãšãªã移è¡åŸã«é²åããå Žåã
- æ°ããèšå®ãæé©åãããŠããªãå Žåã
移è¡åŸã«ã€ã³ããã¯ã¹ãåæ§ç¯ããã¯ãšãªã®ããã©ãŒãã³ã¹ã確èªããããšããå§ãããŸãã
Q8: MySQL 8.0ã®ã»ãã¥ãªãã£åŒ·åç¹ã¯äœã§ããïŒ
A8: MySQL 8.0ã§ã¯ä»¥äžã®ã»ãã¥ãªãã£æ©èœã匷åãããŠããŸãïŒ
- 匷åãããèªèšŒæ¹åŒ:
caching_sha2_password
ãããã©ã«ããšãªããã»ãã¥ãªãã£ã¬ãã«ãåäžã - ããŒã¿æå·åã®æ¡åŒµ: InnoDBããŒãã«ã¹ããŒã¹æå·åãå°å ¥ãããŸããã
- ãã°ã€ã³è©Šè¡åæ°ã®å¶é: ãã°ã€ã³å€±æåæ°ãèšå®ããäžæ£ã¢ã¯ã»ã¹ãé²ãä»çµã¿ãè¿œå ãããŠããŸãã
Q9: MySQL 8.0ãžã®ç§»è¡ãå€éšã«äŸé Œããã¹ãã§ããïŒ
A9: ããŒã¿ããŒã¹ã®èŠæš¡ã瀟å ã®æè¡åã«å¿ããŠå€æããŠãã ãããå°èŠæš¡ãªç°å¢ã§ã¯ç€Ÿå ã§å¯Ÿå¿å¯èœãªå Žåãå€ãã§ããã倧èŠæš¡ãªã·ã¹ãã ãé«ãå¯çšæ§ãæ±ããããç°å¢ã§ã¯ãå°é家ã«äŸé Œããæ¹ããªã¹ã¯ã軜æžã§ããŸãã
7. ãŸãšã
MySQL 8.0ãžã®ç§»è¡ã®ã¡ãªãã
- ããã©ãŒãã³ã¹ã®åäž
- æ°ããInnoDBãšã³ãžã³ã®æé©åã«ããããã©ã³ã¶ã¯ã·ã§ã³åŠçãã¯ãšãªå®è¡é床ãå€§å¹ ã«æ¹åãããŠããŸãã
- æ°æ©èœã®è¿œå
- JSONæ©èœã®åŒ·åããŠã£ã³ããŠé¢æ°ã®å°å ¥ã«ãããããŒã¿æäœãåæãå¹çåãããŸãã
- ããã©ã«ãæåã»ããã
utf8mb4
ã«å€æŽãããããšã§ãåœéå察å¿ã容æã«ãªããŸããã
- ã»ãã¥ãªãã£ã®åŒ·å
- 匷åãããèªèšŒæ¹åŒãæå·åæ©èœã«ãããå®å šæ§ãåäžããŠããŸãã
移è¡æã®æ³šæç¹
- éæšå¥šã»å»æ¢æ©èœã®ç¢ºèª
query_cache
ãå€ãèªèšŒæ¹åŒãªã©ã移è¡ã«åœ±é¿ãäžããç¹ãäºåã«ç¢ºèªããŠãã ããã- æåã»ããã®åé¡
latin1
ãä»ã®æåã»ããã䜿çšããŠããå Žåã移è¡åŸã«æååããçºçããå¯èœæ§ããããŸããé©åãªæåã»ãããžã®å€æŽãå¿ èŠã§ãã- ãã¹ãç°å¢ã§ã®æ€èšŒ
- æ¬çªç°å¢ã«é©çšããåã«ããã¹ãç°å¢ã§ç§»è¡äœæ¥ãã·ãã¥ã¬ãŒã·ã§ã³ããæœåšçãªåé¡ãäºåã«è§£æ±ºããŠãã ããã
æåãã移è¡ã®ãã€ã³ã
- äºåæºåã培åºãã
- çŸåšã®ããŒã¿ããŒã¹ã®ç¶æ ãåæããéäºææ§ãæœåšçãªåé¡ãææ¡ããŸãã
- ããã¯ã¢ãããååŸãããªã¹ãã¢æé ã確èªããŠãã ããã
- 段éçã«ç§»è¡ãé²ãã
- ãã¹ãç°å¢âã¹ããŒãžã³ã°ç°å¢âæ¬çªç°å¢ã®é ã§ç§»è¡ãé²ããå段éã§åé¡ç¹ã解æ¶ããŸãã
- 移è¡åŸã®æé©åãè¡ã
- ã€ã³ããã¯ã¹ã®åæ§ç¯ãèšå®ã®èª¿æŽãè¡ãã移è¡åŸã®ããŒã¿ããŒã¹æ§èœãæ倧åããŸãã
ä»åŸã®å±æ
MySQL 8.0ã¯ç¶ç¶çã«æ¹åãé²ããããŠãããææ°æ©èœã掻çšããããšã§ãéçºå¹çãéçšã®å®å®æ§ãããã«åäžãããããšãå¯èœã§ããç¹ã«ãJSONããŒã¿åããŠã£ã³ããŠé¢æ°ã®å©çšã¯ãå€ãã®ã¢ããªã±ãŒã·ã§ã³ã§é©æ°çãªå€åãããããã§ãããã
æ¬èšäºãéããŠãMySQL 5.7ãã8.0ãžã®ç§»è¡ã«ã€ããŠã®ç解ãæ·±ãŸããå ·äœçãªæé ã泚æç¹ãææ¡ã§ããããšãšæããŸããèšç»çãªç§»è¡ãå®æœããMySQL 8.0ã®æ°ããå¯èœæ§ãæ倧é掻çšããŠãã ããã