- 1 1. MySQLãªãã·ã§ã³ãšã¯ïŒ
- 2 2. MySQLãªãã·ã§ã³ã®åºæ¬ãšèšå®æ¹æ³
- 3 3. ãã䜿ãããMySQLãªãã·ã§ã³ãšã«ããŽãªå¥è§£èª¬
- 4 4. ãªãã·ã§ã³èšå®ã®åªå é äœãšæ³šæç¹
- 5 5. ãªãã·ã§ã³èšå®ã®ãã¹ããã©ã¯ãã£ã¹
- 6 6. ãã©ãã«ã·ã¥ãŒãã£ã³ã°ïŒãšã©ãŒè§£æ±ºã¬ã€ã
- 7 7. ãããã質åïŒFAQïŒ
- 8 8. ãŸãšã
1. MySQLãªãã·ã§ã³ãšã¯ïŒ
MySQLã¯ãå€ãã®ãŠã§ããµã€ããã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšããã匷åãªããŒã¿ããŒã¹ç®¡çã·ã¹ãã ã§ãããã®äžã§ãããªãã·ã§ã³èšå®ãã¯ãããã©ãŒãã³ã¹ã®æé©åãã»ãã¥ãªãã£ã®åŒ·åã«æ¬ ãããªãéèŠãªèŠçŽ ã§ããæ¬èšäºã§ã¯ãMySQLãªãã·ã§ã³ã®åºç€ããå¿çšãŸã§ã段éçã«è§£èª¬ããŠãããŸãã
MySQLãªãã·ã§ã³ãšã¯ïŒ
MySQLãªãã·ã§ã³ã¯ãMySQLãµãŒããŒãã¯ã©ã€ã¢ã³ãã®åäœã现ããå¶åŸ¡ããããã®èšå®é ç®ã§ããããšãã°ãæ¥ç¶å ãã¹ãããŠãŒã¶ãŒåãæå®ãããªãã·ã§ã³ãããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ãåäžãããããã®ãã£ãã·ã¥ãµã€ãºèšå®ãªã©ãå€å²ã«ããããŸãããããã®ãªãã·ã§ã³ãé©åã«èšå®ããããšã§ã以äžã®ãããªã¡ãªãããåŸãããŸãã
- ããã©ãŒãã³ã¹åäž: ãµãŒããŒã®ãªãœãŒã¹ãå¹çãã掻çšã
- ã»ãã¥ãªãã£åŒ·å: äžæ£ã¢ã¯ã»ã¹ãé²æ¢ã
- ãã©ãã«ã·ã¥ãŒãã£ã³ã°: ãšã©ãŒã®åå ãè¿ éã«ç¹å®ã
MySQLãªãã·ã§ã³ã®èšå®æ¹æ³
MySQLã®ãªãã·ã§ã³ã¯ãäž»ã«ä»¥äžã®æ¹æ³ã§èšå®ãããŸãã
- ã³ãã³ãã©ã€ã³ã§ã®æå®
ãªãã·ã§ã³ãçŽæ¥ã³ãã³ãã©ã€ã³ã§æå®ããæ¹æ³ã§ããããšãã°ã以äžã®ã³ãã³ãã§ç¹å®ã®ãã¹ãã«æ¥ç¶ã§ããŸãã
mysql --host=127.0.0.1 --user=root --password=yourpassword
- ãªãã·ã§ã³ãã¡ã€ã«ïŒmy.cnfïŒã§ã®æå®
ãªãã·ã§ã³ããã¡ã€ã«ã«ä¿åããMySQLãèµ·åæã«ãã®èšå®ãèªã¿èŸŒãæ¹æ³ã§ããããã«ãããè€æ°ã®ã³ãã³ãã©ã€ã³ãªãã·ã§ã³ãæ¯åå ¥åããå¿ èŠããªããªããŸãã
æ¬èšäºã®æ§æ
ãã®èšäºã§ã¯ã次ã®ãããªæµãã§MySQLãªãã·ã§ã³ã詳ãã解説ããŸãã
- åºæ¬çãªãªãã·ã§ã³ã®èšå®æ¹æ³
- å®çšçãªãªãã·ã§ã³ã®çŽ¹ä»
- ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãšFAQ
ãã®èšäºãèªãã°ãMySQLãªãã·ã§ã³ã«ã€ããŠã®åºç€ç¥èãšå¿çšåã身ã«ã€ããããã§ãããã

2. MySQLãªãã·ã§ã³ã®åºæ¬ãšèšå®æ¹æ³
MySQLã®ãªãã·ã§ã³ã¯ãã·ã¹ãã ã®æåãããã©ãŒãã³ã¹ãæé©åããããã®éèŠãªèŠçŽ ã§ãããã®ã»ã¯ã·ã§ã³ã§ã¯ãåºæ¬çãªèšå®æ¹æ³ãå ·äœäŸã玹ä»ããªãããå®éã®å©çšã·ãŒã³ã«åœ¹ç«ã€æ å ±ã解説ããŸãã
MySQLãªãã·ã§ã³ã®åœ¹å²ãšç¹åŸŽ
MySQLã®ãªãã·ã§ã³ã¯ããµãŒããŒãã¯ã©ã€ã¢ã³ãã®åäœãã«ã¹ã¿ãã€ãºããããã«äœ¿çšãããŸããããã«ããã以äžã®ãããªç®çãéæã§ããŸãã
- æ¥ç¶ç®¡ç: ãŠãŒã¶ãŒåããã¹ã¯ãŒãããã¹ããªã©ã®æ¥ç¶æ å ±ãæå®ã
- ããã©ãŒãã³ã¹èª¿æŽ: ã¯ãšãªãã£ãã·ã¥ãµã€ãºããããã¡ããŒã«ãµã€ãºãæé©åã
- ã»ãã¥ãªãã£åäž: SSLèšå®ããªã¢ãŒãæ¥ç¶ã®å¶éã
ãªãã·ã§ã³ã¯ãçšéã«å¿ããŠæè»ã«å€æŽã§ãããããç°å¢ãéçšããŒãºã«å¿ããŠæé©ãªèšå®ãè¡ãããšãéèŠã§ãã
èšå®æ¹æ³ã®è§£èª¬
MySQLã®ãªãã·ã§ã³ã¯ã以äžã®2ã€ã®äž»èŠãªæ¹æ³ã§èšå®ã§ããŸãã
1. ã³ãã³ãã©ã€ã³ã§ã®æå®æ¹æ³
ã³ãã³ãã©ã€ã³ã§ã¯ãäžæçã«ãªãã·ã§ã³ãæå®ããŠMySQLã¯ã©ã€ã¢ã³ããèµ·åã§ããŸãã以äžã¯ãäžè¬çãªäœ¿çšäŸã§ãã
mysql --host=127.0.0.1 --user=root --password=yourpassword
ãã®ã³ãã³ãã§ã¯ã
--host
ïŒæ¥ç¶å ã®ãã¹ããæå®--user
ïŒãŠãŒã¶ãŒåãæå®--password
ïŒãã¹ã¯ãŒããæå®
泚æç¹: ãã¹ã¯ãŒãã¯ã³ãã³ãã©ã€ã³ã§çŽæ¥å ¥åãããšã»ãã¥ãªãã£ãªã¹ã¯ãé«ãããã察話圢åŒã§å ¥åãæ±ããããã«ããããšãæšå¥šããŸãã
mysql --host=127.0.0.1 --user=root -p
ãã®åœ¢åŒã§ã¯ããã¹ã¯ãŒãå ¥åãæ±ããããŸãã
2. ãªãã·ã§ã³ãã¡ã€ã«ïŒmy.cnfïŒã®äœ¿çšæ¹æ³
ãªãã·ã§ã³ããã¡ã€ã«ã«ä¿åãããšãæ¯ååãèšå®ãå ¥åããæéãçããŸãã
my.cnfãã¡ã€ã«ã®å Žæ
- Linux/Unix:
/etc/my.cnf
ãŸãã¯~/.my.cnf
- Windows:
%PROGRAMDATA%\MySQL\MySQL Server x.x\my.ini
ãã¡ã€ã«æ§æäŸ
[client]
host=127.0.0.1
user=root
password=yourpassword
[mysqld]
port=3306 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock innodb_buffer_pool_size=128M query_cache_size=16M
ãã®äŸã§ã¯ã
[client]
ã»ã¯ã·ã§ã³ã§ã¯ã©ã€ã¢ã³ãèšå®ãå®çŸ©ã[mysqld]
ã»ã¯ã·ã§ã³ã§ãµãŒããŒåŽã®èšå®ãå®çŸ©ã
èšå®ãã¡ã€ã«ãç·šéããåŸã¯ãMySQLãµãŒãã¹ãåèµ·åããŠåæ ãããŸãã
sudo systemctl restart mysql
å ·äœçãªãµã³ãã«ã³ãŒããšèª¬æ
äŸ1: æ¥ç¶å ãæå®ããå Žå
mysql --host=192.168.1.100 --port=3306 --user=testuser --password=testpass
ç¹å®ã®ãã¹ããšããŒãã«æ¥ç¶ããäŸã§ããè€æ°ã®ãµãŒããŒç°å¢ã§åœ¹ç«ã¡ãŸãã
äŸ2: ã¡ã¢ãªèšå®ãå€æŽããå Žå
[mysqld]
innodb_buffer_pool_size=256M
InnoDBã®ãããã¡ããŒã«ãµã€ãºã256MBã«èšå®ããããšã§ã倧èŠæš¡ãªã¯ãšãªåŠçã«å¯Ÿå¿ããŸãã
èšå®åŸã®ç¢ºèªæ¹æ³
èšå®ãæ£ããåæ ãããŠãããã©ããã確èªããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãã
ã¯ã©ã€ã¢ã³ãèšå®ã®ç¢ºèª
mysql --print-defaults
ãµãŒããŒèšå®ã®ç¢ºèª
mysqladmin variables
ããã«ãããçŸåšã®èšå®å 容ãäžèŠ§è¡šç€ºã§ããŸãã

3. ãã䜿ãããMySQLãªãã·ã§ã³ãšã«ããŽãªå¥è§£èª¬
MySQLã«ã¯å€ãã®ãªãã·ã§ã³ãçšæãããŠããŸããããã®äžã§ããã䜿ããããªãã·ã§ã³ãã«ããŽãªå¥ã«æŽçããŠè§£èª¬ããŸãããããã®èšå®ã掻çšããããšã§ãæ¥ç¶ç®¡çãããã©ãŒãã³ã¹ã®æé©åãã»ãã¥ãªãã£åŒ·åãªã©ãå®çŸã§ããŸãã
1. æ¥ç¶é¢é£ãªãã·ã§ã³
MySQLã«æ¥ç¶ããéã«æå®ãããªãã·ã§ã³ã¯ãåºæ¬èšå®ãšããŠæããã䜿çšãããŸãã
ãªãã·ã§ã³ | 説æ | 䜿çšäŸ |
---|---|---|
--host (-h) | æ¥ç¶ãããã¹ãåãŸãã¯IPã¢ãã¬ã¹ãæå®ããŸãã | mysql -h 127.0.0.1 |
--port (-P) | æ¥ç¶ã«äœ¿çšããããŒãçªå·ãæå®ããŸãã | mysql -P 3306 |
--user (-u) | æ¥ç¶æã®ãŠãŒã¶ãŒåãæå®ããŸãã | mysql -u root |
--password (-p) | ãã¹ã¯ãŒããæå®ããŸãïŒå®å šæ§ã«æ³šæïŒã | mysql -p yourpassword |
--database (-D) | åæããŒã¿ããŒã¹ãæå®ããŠæ¥ç¶ããŸãã | mysql -D testdb |
--socket | UNIXãã¡ã€ã³ãœã±ãããã¡ã€ã«ãæå®ããŸãã | mysql --socket=/tmp/mysql.sock |
ãã€ã³ã:
- éçºç°å¢ã§ã¯IPã¢ãã¬ã¹ããã¹ãåãæå®ããããšã§ãè€æ°ã®ãµãŒããŒç°å¢ã§ã®ãã¹ããããŒã¿ç§»åãã¹ã ãŒãºã«ãªããŸãã
- ã»ãã¥ãªãã£é¢ã§ã¯ããã¹ã¯ãŒããã³ãã³ãã«çŽæ¥èšè¿°ããã察話圢åŒã§å ¥åããã®ãæãŸããã§ãã
2. ããã©ãŒãã³ã¹èª¿æŽãªãã·ã§ã³
MySQLã®ããã©ãŒãã³ã¹ãæé©åããããã®ãªãã·ã§ã³ã§ããç¹ã«é«è² è·ãªã·ã¹ãã ã§ã¯ãé©åãªãã¥ãŒãã³ã°ãæ±ããããŸãã
ãªãã·ã§ã³ | 説æ | 䜿çšäŸ |
---|---|---|
innodb_buffer_pool_size | ããŒã¿ããŒã¹ãã£ãã·ã¥ã«äœ¿çšããã¡ã¢ãªãµã€ãºãæå®ããŸãã | innodb_buffer_pool_size=256M |
query_cache_size | ã¯ãšãªãã£ãã·ã¥ã®ãµã€ãºãèšå®ããŸããMySQL 8.0ã§ã¯å»æ¢ãããŸããã | query_cache_size=16M ïŒMySQL 5.7以åã®ã¿ïŒ |
max_connections | åææ¥ç¶å¯èœãªæ倧ã¯ã©ã€ã¢ã³ãæ°ãæå®ããŸãã | max_connections=200 |
thread_cache_size | ã¹ã¬ãããã£ãã·ã¥ã®ãµã€ãºãæå®ããŸãã | thread_cache_size=16 |
sort_buffer_size | ãœãŒãåŠçæã«äœ¿çšãããããã¡ãµã€ãºãæå®ããŸãã | sort_buffer_size=1M |
ãã€ã³ã:
- ããã©ã«ãèšå®ã§ã¯ãªãœãŒã¹ãååã«æŽ»çšãããªãå¯èœæ§ããããããè² è·ãã¹ããå®æœããŠæé©ãªå€ãèšå®ããŸãããã
innodb_buffer_pool_size
ã¯ãInnoDBããŒãã«ã®ããã©ãŒãã³ã¹åäžã«æãéèŠãªãªãã·ã§ã³ã§ãã
3. ã»ãã¥ãªãã£é¢é£ãªãã·ã§ã³
ããŒã¿ããŒã¹ã®ã»ãã¥ãªãã£ã匷åããããã«äœ¿çšããããªãã·ã§ã³ã§ããå®å šæ§ãé«ããããã«å¿ ã確èªããŸãããã
ãªãã·ã§ã³ | 説æ | 䜿çšäŸ |
---|---|---|
skip-networking | ãããã¯ãŒã¯çµç±ã®æ¥ç¶ãç¡å¹ã«ããŸãïŒããŒã«ã«æ¥ç¶ã®ã¿èš±å¯ïŒã | skip-networking |
bind-address | æ¥ç¶ãèš±å¯ããIPã¢ãã¬ã¹ãæå®ããŸãã | bind-address=127.0.0.1 |
ssl-ca | SSL蚌ææžã®CAãã¡ã€ã«ãæå®ããŸãã | ssl-ca=/etc/mysql/ca.pem |
require_secure_transport | æå·åãããæ¥ç¶ã®ã¿ãèš±å¯ããŸãã | require_secure_transport=ON |
default_authentication_plugin | èªèšŒãã©ã°ã€ã³ãæå®ããŸãã | default_authentication_plugin=caching_sha2_password |
ãã€ã³ã:
- ã€ã³ã¿ãŒãããçµç±ã§ã®æ¥ç¶ãäžèŠãªå Žåã¯ã
skip-networking
ãæå¹ã«ããŠå€éšããã®äžæ£ã¢ã¯ã»ã¹ãé²ããŸãã - SSLæ¥ç¶ãå¿ é ã«èšå®ããããšã§ãéä¿¡çµè·¯ã®æå·åã匷åã§ããŸãã
4. ãã®ä»ã®äŸ¿å©ãªãªãã·ã§ã³
ãã®ä»ã®äŸ¿å©ãªãªãã·ã§ã³ã以äžã«çŽ¹ä»ããŸãã
ãªãã·ã§ã³ | 説æ | 䜿çšäŸ |
---|---|---|
log-error | ãšã©ãŒãã°ãã¡ã€ã«ãæå®ããŸãã | log-error=/var/log/mysql/error.log |
slow_query_log | ã¹ããŒã¯ãšãªãèšé²ãããã°ãæå¹ã«ããŸãã | slow_query_log=1 |
long_query_time | ã¹ããŒã¯ãšãªãšå€æããéŸå€ãç§åäœã§èšå®ããŸãã | long_query_time=2 |
general_log | ãã¹ãŠã®ã¯ãšãªããã°ã«èšé²ããŸãïŒéçºçšã«æšå¥šïŒã | general_log=1 |
expire_logs_days | ãã€ããªãã°ã®ä¿åæ¥æ°ãæå®ããŸãã | expire_logs_days=7 |
ãã€ã³ã:
- éçºããããã°ã§ã¯
general_log
ãæå¹ã«ããŠã¯ãšãªã®èšé²ã確èªã§ããŸãããæ¬çªç°å¢ã§ã¯ããã©ãŒãã³ã¹ãžã®åœ±é¿ã«æ³šæããŠãã ããã - ãã°ç®¡çã¯ããã©ãã«ã·ã¥ãŒãã£ã³ã°ãç£æ»èšŒè·¡ãšããŠéåžžã«æçšã§ãã

4. ãªãã·ã§ã³èšå®ã®åªå é äœãšæ³šæç¹
MySQLã§ã¯è€æ°ã®æ¹æ³ã§ãªãã·ã§ã³ãèšå®ã§ãããããã©ã®èšå®ãæåªå ãããã®ããç解ããŠããããšãéèŠã§ãããã®ã»ã¯ã·ã§ã³ã§ã¯ããªãã·ã§ã³ã®é©çšé åºã競åæã®æåã«ã€ããŠè§£èª¬ãããã©ãã«ãé²ãããã®æ³šæç¹ã玹ä»ããŸãã
1. ãªãã·ã§ã³èšå®ã®é©çšé åº
MySQLã¯èµ·åæã«è€æ°ã®å Žæããèšå®ãèªã¿èŸŒã¿ãŸãããã®ãããåããªãã·ã§ã³ãç°ãªãå Žæã§å®çŸ©ãããŠããå Žåã¯ãã©ã®èšå®ãåªå ãããããææ¡ããŠããå¿ èŠããããŸãã
èšå®é©çšã®åªå é äœ
- ã³ãã³ãã©ã€ã³ãªãã·ã§ã³
- MySQLãèµ·åããéã«çŽæ¥æå®ãããªãã·ã§ã³ãæãåªå ãããŸãã
- äŸïŒ
bash mysql --host=127.0.0.1 --user=root --port=3306
- ãŠãŒã¶ãŒå°çšã®èšå®ãã¡ã€ã«ïŒ~/.my.cnfïŒ
- åãŠãŒã¶ãŒããšã«èšå®ã§ããåå¥ãã¡ã€ã«ã§ãã
- ããŒã«ã«ç°å¢ãå人çšéã§ã®èšå®ã«äŸ¿å©ã§ãã
- ã·ã¹ãã å šäœã®èšå®ãã¡ã€ã«ïŒ/etc/my.cnf ãŸã㯠/etc/mysql/my.cnfïŒ
- ã·ã¹ãã å šäœã«é©çšãããããã©ã«ãèšå®ã管çããŸãã
- ãµãŒããŒéçšæã«ã°ããŒãã«ãªèšå®ã管çããéã«äœ¿çšãããŸãã
- ããã©ã«ãèšå®
- æ瀺çã«èšå®ãããŠããªãå Žåã¯ãMySQLã®ãã«ãã€ã³ããã©ã«ãå€ãé©çšãããŸãã
äŸ:/etc/my.cnf
ã§ããŒãã3307ã«èšå®ããã³ãã³ãã©ã€ã³ã§3306ãæå®ããå Žåã¯ãã³ãã³ãã©ã€ã³ã®3306ãåªå
ãããŸãã
2. èšå®ç«¶åæã®æåãšæ³šæç¹
è€æ°ã®å Žæã«åããªãã·ã§ã³ãèšå®ãããŠããå Žåãåªå é äœã«åŸã£ãŠèšå®ãäžæžããããŸããããããèšå®ç«¶åã¯äºæãã¬åäœãåŒãèµ·ããå¯èœæ§ãããããã以äžã®ç¹ã«æ³šæãå¿ èŠã§ãã
泚æç¹1: ã³ãã³ãã©ã€ã³ã®åªå 床ãç解ãã
ã³ãã³ãã©ã€ã³ã¯èšå®ãã¡ã€ã«ããåªå ããããããäžæçãªå€æŽã«ã¯äŸ¿å©ã§ãããé·æéçšã§ã¯ç®¡çãç ©éã«ãªãå¯èœæ§ããããŸããéçšã«ãŒã«ãå®ããŠãããŸãããã
泚æç¹2: èšå®ãã¡ã€ã«ã®ç®¡ç
- èšå®ãã¡ã€ã«ã¯äžå 管çããè€æ°ãã¡ã€ã«ã«èšå®ãåæ£ãããªãããã«ããŸãã
- èšå®å€æŽæã¯ããã¯ã¢ãããåãããªã¹ãã¢ã§ããç¶æ ãä¿ã€ããšãéèŠã§ãã
泚æç¹3: èšå®ãšã©ãŒã®ãã§ãã¯
èšå®ãã¡ã€ã«ã«èšè¿°ãã¹ããããšãMySQLãèµ·åããªãå ŽåããããŸãã以äžã®ã³ãã³ãã§äºåãã§ãã¯ãè¡ããŸãããã
mysqld --verbose --help | grep -A 1 "Default options"
ãã®ã³ãã³ãã§èšå®ãæ£ããèªã¿èŸŒãŸãããã確èªã§ããŸãã
3. èšå®é©çšæã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
èšå®é©çšåŸã«åé¡ãçºçããå Žåã®å¯ŸåŠæ³ã玹ä»ããŸãã
1. èšå®åæ ã®ç¢ºèª
ãªãã·ã§ã³ãæ£ããé©çšãããŠãããã確èªããŸãã
mysqladmin variables
åºåçµæã«èšå®å€ãåæ ãããŠãããããã§ãã¯ããŠãã ããã
2. ãšã©ãŒãã°ã®ç¢ºèª
èšå®ãšã©ãŒãçºçããå Žåã¯ããšã©ãŒãã°ã確èªããŸãã
cat /var/log/mysql/error.log
ãã®ãã°ã«ã¯ãèµ·åãšã©ãŒãèšå®ãã¹ã®åå ãèšé²ãããŠããŸãã
3. åæç¶æ ãžã®åŸ©å
èšå®ãã¹ã§MySQLãèµ·åã§ããªããªã£ãå Žåã¯ã以äžã®æé ã§ããã©ã«ãç¶æ ã«æ»ããŸãã
- èšå®ãã¡ã€ã«ãããã¯ã¢ãããã埩å ã
- ãµãŒããŒãåèµ·åã
sudo systemctl restart mysql
4. èšå®ã®ãã¹ããã©ã¯ãã£ã¹
1. ãã¹ãç°å¢ã§ã®äºåæ€èšŒ
èšå®ãå€æŽããåã«ãå¿ ããã¹ãç°å¢ã§åäœç¢ºèªãè¡ããŸããããç¹ã«æ¬çªç°å¢ã§ã¯ãçŽæ¥èšå®å€æŽãå ããã®ã¯é¿ããã¹ãã§ãã
2. ããã¯ã¢ããã®åŸ¹åº
èšå®ãã¡ã€ã«ãç·šéããåã«ã¯ãå¿ ãããã¯ã¢ãããåããŸãã
cp /etc/my.cnf /etc/my.cnf.backup
3. èšå®ç®¡çããŒã«ã®æŽ»çš
èšå®ãã¡ã€ã«ãè€æ°ååšããå Žåã¯ãããŒãžã§ã³ç®¡çããŒã«ïŒGitãªã©ïŒã䜿çšããŠå±¥æŽã管çãããšãå€æŽç¹ã®è¿œè·¡ã容æã«ãªããŸãã

5. ãªãã·ã§ã³èšå®ã®ãã¹ããã©ã¯ãã£ã¹
MySQLã®ãªãã·ã§ã³èšå®ãæé©åããããšã§ãããã©ãŒãã³ã¹ãã»ãã¥ãªãã£ãå€§å¹ ã«åäžãããããšãã§ããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãç°å¢ããšã®èšå®äŸãå ·äœçãªéçšæé ã«ã€ããŠè§£èª¬ããå®è·µçãªãã¹ããã©ã¯ãã£ã¹ã玹ä»ããŸãã
1. ç°å¢å¥ã®èšå®äŸ
MySQLã®èšå®ã¯ã䜿çšããç°å¢ã«ãã£ãŠç°ãªãããŒãºã«å¯Ÿå¿ããå¿ èŠããããŸããããã§ã¯ãéçºç°å¢ãšæ¬çªç°å¢ã§ã®æšå¥šèšå®ã玹ä»ããŸãã
éçºç°å¢åãã®èšå®
éçºç°å¢ã§ã¯ããã¹ãããããã°äœæ¥ãå¹ççã«é²ãããã«æè»ãªèšå®ãæ±ããããŸãã
ãªãã·ã§ã³ | èšå®äŸ | 説æ |
---|---|---|
general_log | general_log=1 | ãã¹ãŠã®ã¯ãšãªããã°ã«èšé²ããããã°ã«äŸ¿å©ã |
slow_query_log | slow_query_log=1 | ã¹ããŒã¯ãšãªãèšé²ããããã©ãŒãã³ã¹ã®åé¡ãç¹å®ã |
long_query_time | long_query_time=1 | ã¹ããŒã¯ãšãªã®åºæºæéã1ç§ã«èšå®ãçæéã®ã¯ãšãªãèšé²ã |
max_connections | max_connections=50 | æ倧æ¥ç¶æ°ãäœãèšå®ããŠããªãœãŒã¹æ¶è²»ãå¶éã |
innodb_buffer_pool_size | innodb_buffer_pool_size=64M | ã¡ã¢ãªäœ¿çšéãå°èŠæš¡ã«èšå®ã |
ãã€ã³ã: éçºç°å¢ã§ã¯ããŒã¿ãã¹ã®ãªã¹ã¯ãæããããã«ããã¯ã¢ãããå®æçã«åãããã«ããŸãããŸãããã°ã¯ãã£ã¹ã¯å®¹éãå§è¿«ãããããå®æçãªã¯ãªãŒã³ã¢ãããè¡ããŸãããã
æ¬çªç°å¢åãã®èšå®
æ¬çªç°å¢ã§ã¯ãå®å®æ§ãšããã©ãŒãã³ã¹ãæåªå ã«èšå®ããŸãã
ãªãã·ã§ã³ | èšå®äŸ | 説æ |
---|---|---|
innodb_buffer_pool_size | innodb_buffer_pool_size=1G | 倧èŠæš¡ããŒã¿åŠçåãã«ãããã¡ãµã€ãºã倧ãã確ä¿ã |
max_connections | max_connections=200 | é«ãã©ãã£ãã¯å¯Ÿå¿ã®ããã«æ¥ç¶æ°ãå¢å ã |
thread_cache_size | thread_cache_size=32 | ã¹ã¬ãããã£ãã·ã¥ãèšå®ããŠæ¥ç¶å¹çãåäžã |
query_cache_size | query_cache_size=0 ïŒæšå¥šOFFïŒ | MySQL 8.0ã§ã¯éæšå¥šã代æ¿ãšããŠInnoDBãããã¡ãæé©åã |
log_bin | log_bin=mysql-bin | ãã€ããªãã°ãæå¹åããé害çºçæã®åŸ©å ã容æã«ããã |
expire_logs_days | expire_logs_days=7 | ãã€ããªãã°ã®ä¿ææéãçãããŠãã£ã¹ã¯äœ¿çšéãå¶éã |
ãã€ã³ã: æ¬çªç°å¢ã§ã¯ã»ãã¥ãªãã£èšå®ãå³æ Œã«ããå®æçã«ããã©ãŒãã³ã¹ã¢ãã¿ãªã³ã°ãå®æœããããšãéèŠã§ãããŸãããã€ããªãã°ãæå¹ã«ããããšã§ãé害çºçæã«è¿ éãªåŸ©æ§ãå¯èœã«ãªããŸãã
2. èšå®å€æŽæã®å®å šæé
1. å€æŽåã®æºå
- ããã¯ã¢ããã®ååŸ
èšå®ãã¡ã€ã«ãšããŒã¿ããŒã¹ã®å®å šããã¯ã¢ãããååŸããŸãã
mysqldump -u root -p --all-databases > backup.sql
cp /etc/my.cnf /etc/my.cnf.bak
- ãã¹ãç°å¢ã§ã®æ€èšŒ
æ°ããèšå®ãæ¬çªç°å¢ã«é©çšããåã«ããã¹ãç°å¢ã§åäœç¢ºèªãè¡ããŸãã
2. èšå®ã®é©çšæé
- èšå®ãã¡ã€ã«ãç·šéããŸãã
sudo nano /etc/my.cnf
- ãµãŒããŒãåèµ·åããŠå€æŽãåæ ãããŸãã
sudo systemctl restart mysql
- èšå®ãåæ ãããŠãããã確èªããŸãã
mysqladmin variables
3. ãã©ãã«ãé²ãããã®ãã¹ããã©ã¯ãã£ã¹
- ãã°ç®¡çã培åºãã
ãšã©ãŒãã°ãã¹ããŒã¯ãšãªãã°ãå®æçã«ãã§ãã¯ããŠãåé¡ã®å åãæ©æçºèŠããŸãã - ã¢ã¯ã»ã¹å¶åŸ¡ã匷åãã
- ç¹å®ã®IPã¢ãã¬ã¹ã®ã¿æ¥ç¶ãèš±å¯ã
- äžèŠãªãªã¢ãŒãã¢ã¯ã»ã¹ã¯ãããã¯ã
- ç£èŠããŒã«ã掻çšãã
Percona Monitoring and ManagementïŒPMMïŒãªã©ã®ããŒã«ã䜿çšããŠãããã©ãŒãã³ã¹ãšè² è·ããªã¢ã«ã¿ã€ã ã§ç£èŠããŸãã - å®æçãªã¡ã³ããã³ã¹ãå®æœãã
- äžèŠãªããŒã¿ããŒã¹ããŠãŒã¶ãŒã®åé€ã
- å€ããã°ããã£ãã·ã¥ã®ã¯ãªã¢ã
- ã€ã³ããã¯ã¹ã®æé©åã

6. ãã©ãã«ã·ã¥ãŒãã£ã³ã°ïŒãšã©ãŒè§£æ±ºã¬ã€ã
MySQLã®ãªãã·ã§ã³èšå®ã§ã¯ã誀ã£ãèšå®ãç°å¢äŸåã®åé¡ãåå ã§ãšã©ãŒãçºçããããšããããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãMySQLã®ãããããšã©ãŒãšãã®è§£æ±ºæ¹æ³ã«ã€ããŠè§£èª¬ããŸããå®è·µçãªãã©ãã«ã·ã¥ãŒãã£ã³ã°æé ã玹ä»ããã®ã§ãåé¡çºçæã®åèã«ããŠãã ããã
1. æ¥ç¶ãšã©ãŒã«é¢ãããã©ãã«ã·ã¥ãŒãã£ã³ã°
ãšã©ãŒ1: Access denied for user ‘root’@’localhost’
ãšã©ãŒã¡ãã»ãŒãžäŸ
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
åå
- ãŠãŒã¶ãŒåããã¹ã¯ãŒãã®å ¥åãã¹ã
- æš©éèšå®ã«åé¡ãããã
解決ç
- ãã¹ã¯ãŒãã®ç¢ºèªãšåèšå®
mysql -u root -p
ãã¹ã¯ãŒããäžæãªå Žåã¯ã以äžã®æé ã§ãªã»ããããŸãã
- ãã¹ã¯ãŒããªã»ããæé
- MySQLãã»ãŒãã¢ãŒãã§èµ·åã
bash sudo systemctl stop mysql sudo mysqld_safe --skip-grant-tables &
- æ°ãããã¹ã¯ãŒããèšå®ã
sql UPDATE mysql.user SET authentication_string=PASSWORD('newpassword') WHERE User='root'; FLUSH PRIVILEGES;
- ãµãŒããŒãåèµ·åã
bash sudo systemctl restart mysql
ãšã©ãŒ2: Can’t connect to MySQL server on ‘localhost’ (10061)
åå
- MySQLãµãŒãã¹ãèµ·åããŠããªãã
- ããŒãçªå·ããœã±ããèšå®ãæ£ãããªãã
解決ç
- ãµãŒãã¹ã®èµ·åç¶æ³ã確èª
sudo systemctl status mysql
- ãµãŒãã¹ã®åèµ·å
sudo systemctl restart mysql
- ãœã±ãããã¡ã€ã«ã®ãã¹ã確èª
èšå®ãã¡ã€ã«ã§ãœã±ãããã¡ã€ã«ã®å Žæããã§ãã¯ããŸãã
grep socket /etc/my.cnf
2. ããã©ãŒãã³ã¹é¢é£ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ãšã©ãŒ3: Too many connections
ãšã©ãŒã¡ãã»ãŒãžäŸ
ERROR 1040 (08004): Too many connections
åå
- åææ¥ç¶æ°ãäžéãè¶ ããŠããã
解決ç
- çŸåšã®æ¥ç¶æ°ã確èª
SHOW STATUS LIKE 'Threads_connected';
- æ倧æ¥ç¶æ°ã®å¢å
èšå®ãã¡ã€ã«ã§ä»¥äžã®ãªãã·ã§ã³ãå€æŽããŸãã
[mysqld]
max_connections=500
èšå®ãå€æŽãããMySQLãåèµ·åããŸãã
sudo systemctl restart mysql
ãšã©ãŒ4: Query execution time is too slow
åå
- ã¯ãšãªã®æé©åäžè¶³ã
- ã¡ã¢ãªããã£ãã·ã¥èšå®ãäžé©åã
解決ç
- ã¹ããŒã¯ãšãªãã°ã®ç¢ºèª
ã¹ããŒã¯ãšãªãã°ãæå¹åããŠãé ãã¯ãšãªãç¹å®ããŸãã
[mysqld]
slow_query_log=1
long_query_time=2
slow_query_log_file=/var/log/mysql-slow.log
- å®è¡èšç»ã®ç¢ºèª
ã¯ãšãªã®å®è¡èšç»ã確èªããŠã€ã³ããã¯ã¹ãæé©åããŸãã
EXPLAIN SELECT * FROM orders WHERE customer_id = 1;
3. èšå®ãã¡ã€ã«é¢é£ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°
ãšã©ãŒ5: Unknown variable ‘query_cache_size’
ãšã©ãŒã¡ãã»ãŒãžäŸ
ERROR 1193 (HY000): Unknown system variable 'query_cache_size'
åå
- 䜿çšããŠããMySQLããŒãžã§ã³ã§å»æ¢ããããªãã·ã§ã³ãèšå®ãããŠããïŒMySQL 8.0ã§ã¯
query_cache_size
ãå»æ¢ïŒã
解決ç
- ããŒãžã§ã³ã確èª
mysql --version
- èšå®ãªãã·ã§ã³ãæŽæ°
- å»æ¢ããããªãã·ã§ã³ã¯åé€ãã代æ¿èšå®ãå©çšããŸãã
- äŸïŒ
query_cache_size
ã®ä»£ããã«InnoDBãããã¡ãæ¡åŒµã
innodb_buffer_pool_size=512M
4. ããŒã¿ããŒã¹ç Žææã®åŸ©æ§æé
ãšã©ãŒ6: Table ‘tablename’ is marked as crashed and should be repaired
ãšã©ãŒã¡ãã»ãŒãžäŸ
ERROR 145 (HY000): Table './dbname/tablename' is marked as crashed and should be repaired
åå
- ãµãŒããŒåæ¢äžã«ããŒãã«ãç Žæããã
解決ç
- ããŒãã«ã®ä¿®åŸ©ã³ãã³ããå®è¡
REPAIR TABLE tablename;
- MyISAMãã§ãã¯ããŒã«ã䜿çš
myisamchk /var/lib/mysql/dbname/tablename.MYI
- InnoDBã®å Žåã®ä¿®åŸ©æé
InnoDBã§ã¯ä»¥äžã®æé ã§åŸ©æ§ããŸãã
sudo systemctl stop mysql
sudo mysqld_safe --innodb_force_recovery=1 &
ã

7. ãããã質åïŒFAQïŒ
MySQLã®ãªãã·ã§ã³èšå®ã«ã€ããŠã¯ãå®éã®éçšäžã«ããŸããŸãªçåããã©ãã«ãçºçããããšããããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãèªè ãããæ±ã質åãšãã®è§£æ±ºçãFAQ圢åŒã§ãŸãšããŸããã
1. èšå®ãã¡ã€ã«ã«é¢ãã質å
Q1. MySQLã®èšå®ãã¡ã€ã«ïŒmy.cnfïŒã®å ŽæãåãããŸããã
A. èšå®ãã¡ã€ã«ã®å Žæã¯ç°å¢ã«ãã£ãŠç°ãªããŸããã以äžã®ã³ãã³ãã§ç¢ºèªã§ããŸãã
mysql --help | grep my.cnf
äžè¬çãªèšå®ãã¡ã€ã«ã®å Žæã¯ä»¥äžã®éãã§ãïŒ
- Linux:
/etc/my.cnf
ãŸãã¯/etc/mysql/my.cnf
- Windows:
%PROGRAMDATA%\MySQL\MySQL Server X.X\my.ini
- macOS:
/usr/local/etc/my.cnf
Q2. èšå®ãã¡ã€ã«ãç·šéããåŸã«åæ ãããªãã®ã§ããïŒ
A. èšå®ãã¡ã€ã«ãç·šéããåŸã¯ãMySQLãµãŒããŒãåèµ·åããå¿
èŠããããŸãã以äžã®ã³ãã³ãã䜿çšããŠãã ããã
sudo systemctl restart mysql
åæ ãããèšå®ã確èªããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
mysqladmin variables
2. ã»ãã¥ãªãã£ãšèªèšŒã«é¢ãã質å
Q3. ãã¹ã¯ãŒãèªèšŒã§ãšã©ãŒãçºçããŸããã©ãããã°ããã§ããïŒ
A. ãã¹ã¯ãŒãèªèšŒãšã©ãŒã¯ãæš©éèšå®ããã¹ã¯ãŒã圢åŒã®éããåå ã§çºçããããšããããŸãã以äžã®æé ã§ç¢ºèªããŠãã ããã
- ãŠãŒã¶ãŒæš©éã®ç¢ºèª
SELECT user, host FROM mysql.user;
- ãã¹ã¯ãŒããªã»ãã
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;
- MySQL 8.0以éã§ã¯ãèªèšŒãã©ã°ã€ã³ã
caching_sha2_password
ã«å€æŽãããŠãããããå€ãã¯ã©ã€ã¢ã³ãã䜿çšããŠããå Žåã¯äºææ§ã®åé¡ãçºçããŸãããã®å Žåã¯ã以äžã®èšå®ã§èªèšŒæ¹åŒãå€æŽã§ããŸãã
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'newpassword';
FLUSH PRIVILEGES;
Q4. å€éšããã®æ¥ç¶ãå¶éãããå Žåã¯ã©ãããã°ããã§ããïŒ
A. èšå®ãã¡ã€ã«ã§ä»¥äžã®ãªãã·ã§ã³ãè¿œå ããããšã§ãå€éšããã®æ¥ç¶ãå¶éã§ããŸãã
[mysqld]
bind-address=127.0.0.1
ããã«ãããããŒã«ã«ãã¹ã以å€ããã®æ¥ç¶ãçŠæ¢ãããŸãããŸãããããã¯ãŒã¯æ¥ç¶ãå®å šã«ç¡å¹ã«ããå Žåã¯ä»¥äžãèšå®ããŸãã
skip-networking
èšå®åŸã«åèµ·åããŠãã ããã
sudo systemctl restart mysql
3. ããã©ãŒãã³ã¹ã«é¢ãã質å
Q5. ããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ãæ¹åããããã®èšå®ã¯ïŒ
A. ããã©ãŒãã³ã¹åäžã®ããã®äž»ãªèšå®ã¯ä»¥äžã®éãã§ãã
èšå®é ç® | æšå¥šèšå®äŸ | 説æ |
---|---|---|
innodb_buffer_pool_size | innodb_buffer_pool_size=1G | ã¡ã¢ãªäœ¿çšéãå¢ãããŠã¯ãšãªåŠçãé«éåã |
query_cache_size | query_cache_size=0 (å»æ¢) | MySQL 8.0ã§ã¯å»æ¢ã代æ¿ãšããŠInnoDBã匷åã |
thread_cache_size | thread_cache_size=16 | ã¹ã¬ããåå©çšãæå¹åããŠæ¥ç¶å¹çãåäžã |
tmp_table_size | tmp_table_size=64M | äžæããŒãã«ã®ãµã€ãºãæ¡åŒµã |
max_connections | max_connections=200 | åææ¥ç¶æ°ãå¢å ãããŠè² è·åæ£ãæ¹åã |
Q6. ã¹ããŒã¯ãšãªãç¹å®ããŠå¯ŸåŠãããã®ã§ããïŒ
A. ã¹ããŒã¯ãšãªãã°ãæå¹åããåé¡ã®ããã¯ãšãªãç¹å®ã§ããŸãã
- èšå®ãã¡ã€ã«ãç·šéããŸãã
[mysqld]
slow_query_log=1
long_query_time=2
slow_query_log_file=/var/log/mysql/slow.log
- ãµãŒããŒãåèµ·åããŠèšå®ãåæ ããŸãã
sudo systemctl restart mysql
- ã¹ããŒã¯ãšãªãã°ã確èªããŸãã
cat /var/log/mysql/slow.log
4. ãã®ä»ã®äžè¬çãªè³ªå
Q7. èšå®ãåæåããæ¹æ³ã¯ãããŸããïŒ
A. èšå®ãåæåããã«ã¯ãèšå®ãã¡ã€ã«ãããã©ã«ãç¶æ
ã«æ»ãããæ°ããèšå®ãã¡ã€ã«ãäœæããŸãã以äžã¯åæåæé ã®äŸã§ãã
- çŸåšã®èšå®ãããã¯ã¢ããããŸãã
cp /etc/my.cnf /etc/my.cnf.bak
- ããã©ã«ãèšå®ãã¡ã€ã«ã埩å ããŸãã
sudo cp /usr/share/mysql/my-default.cnf /etc/my.cnf
- ãµãŒããŒãåèµ·åããŸãã
sudo systemctl restart mysql
ã

8. ãŸãšã
ãã®èšäºã§ã¯ãMySQLã®ãªãã·ã§ã³èšå®ã«ã€ããŠåºç€ããå¿çšãŸã§ãç¶²çŸ çã«è§£èª¬ããŸãããèšå®æ¹æ³ãå ·äœçãªãªãã·ã§ã³ããã©ãã«ã·ã¥ãŒãã£ã³ã°ãŸã§ãå®è·µçãªç¥èã身ã«ã€ããããã®å 容ãé ãè¿œã£ãŠçŽ¹ä»ããŸãããããã§ã¯ãèšäºã®èŠç¹ãæ¯ãè¿ãã€ã€ãMySQLãªãã·ã§ã³èšå®ã®éèŠæ§ãå確èªããŸãã
1. èšäºã®èŠç¹ãæ¯ãè¿ã
åºç€ç·š
- MySQLãªãã·ã§ã³ã®æŠèŠãšåœ¹å²ãç解ããã³ãã³ãã©ã€ã³ãèšå®ãã¡ã€ã«ã䜿ã£ãåºæ¬çãªèšå®æ¹æ³ãåŠã³ãŸããã
å®è·µç·š
- ãã䜿ããããªãã·ã§ã³ã®ã«ããŽãªå¥è§£èª¬ã§ã¯ãæ¥ç¶ç®¡çãããã©ãŒãã³ã¹èª¿æŽãã»ãã¥ãªãã£åŒ·åã«åœ¹ç«ã€èšå®äŸã玹ä»ããŸããã
- åªå é äœãšç«¶åæã®æ³šæç¹ãç解ããããšã§ãèšå®ãã¹ãé²ããªããå¹ççã«éçšããæé ã解説ããŸããã
å¿çšç·š
- ç°å¢å¥ã®èšå®äŸãšãã¹ããã©ã¯ãã£ã¹ã§ã¯ãéçºç°å¢ãšæ¬çªç°å¢ã§æé©ãªèšå®äŸãå ·äœçã«ç€ºããå®å šã«èšå®ãé©çšããæé ãåŠã³ãŸããã
- ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãšFAQã§ã¯ãå®éã®éçšäžã«çºçããããåé¡ãšãã®è§£æ±ºæ¹æ³ã«ã€ããŠè©³ãã解説ããŸããã
2. MySQLãªãã·ã§ã³èšå®ã®éèŠæ§
ããã©ãŒãã³ã¹æé©å
é©åãªãªãã·ã§ã³èšå®ã«ããããªãœãŒã¹ã®æå¹æŽ»çšãšã¯ãšãªåŠçé床ã®åäžãæåŸ ã§ããŸããç¹ã«å€§èŠæš¡ããŒã¿ããŒã¹ãé«è² è·ç°å¢ã§ã¯ãããã©ãŒãã³ã¹ãã¥ãŒãã³ã°ãã·ã¹ãã å šäœã®å¹çåã«çŽçµããŸãã
ã»ãã¥ãªãã£åŒ·å
å€éšã¢ã¯ã»ã¹ã®å¶éãSSLèšå®ãªã©ãé©åã«è¡ãããšã§ãäžæ£ã¢ã¯ã»ã¹ãããŒã¿æŒæŽ©ãé²ãããšãã§ããŸããéçšç°å¢ã«å¿ããã»ãã¥ãªãã£èšå®ã¯æ¬ ãããŸããã
ãã©ãã«å¯Ÿå¿åã®åäž
ãã°ç®¡çããšã©ãŒã¡ãã»ãŒãžã®åæãéããŠããã©ãã«çºçæã®è¿ éãªå¯Ÿå¿ãå¯èœã«ãªããŸããäºåã«é©åãªèšå®ãè¡ããåé¡çºçãæªç¶ã«é²ãããšãéèŠã§ãã
3. ä»åŸã®ã¢ã¯ã·ã§ã³ãã©ã³
èšå®ã®ç¢ºèªãšæé©å
- çŸåšäœ¿çšããŠããMySQLã®èšå®ãèŠçŽãããã®èšäºã§çŽ¹ä»ãããã¹ããã©ã¯ãã£ã¹ãåèã«æé©åãè¡ããŸãããã
ãã¹ãç°å¢ã®æŽ»çš
- æ°ããèšå®ãå€æŽã¯ãå¿ ããã¹ãç°å¢ã§æ€èšŒããŠããæ¬çªç°å¢ã«é©çšããããšã§ããªã¹ã¯ãæå°éã«æããããšãã§ããŸãã
ããã¥ã¡ã³ããšèšé²ã®äœæ
- èšå®å€æŽããã©ãã«ã·ã¥ãŒãã£ã³ã°ã®æé ã¯èšé²ããŠãããä»åŸã®éçšãããŒã å ã®ãã¬ããžã·ã§ã¢ã«åœ¹ç«ãŠãŸãããã
4. æåŸã«
MySQLã®ãªãã·ã§ã³èšå®ã¯ãããŒã¿ããŒã¹ç®¡çã«ãããŠéåžžã«éèŠãªåœ¹å²ãæãããŸããç¹ã«ã·ã¹ãã ã®èŠæš¡ã倧ãããªãã»ã©ãé©åãªèšå®ã管çãããã©ãŒãã³ã¹ãå®å šæ§ã«å€§ããªåœ±é¿ãäžããŸãã
ãã®èšäºãåèã«ããªãããéçšç°å¢ã«åãããèšå®ãè¡ããå®å®ããã·ã¹ãã æ§ç¯ãç®æããŸããããä»åŸãå®æçã«èšå®ãèŠçŽããææ°ã®ãã¹ããã©ã¯ãã£ã¹ãåãå ¥ããããšã§ããã匷åºã§å¹ççãªããŒã¿ããŒã¹éçšãå®çŸã§ããŸãã