SETTING

1์žฅ ์†Œ๊ฐœ

1.1 MySQL ์†Œ๊ฐœ

  • ์Šค์›จ๋ด TcXํšŒ์‚ฌ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์‹œ์ž‘

  • => ์ฌ ๋งˆ์ดํฌ๋กœ์‹œ์Šคํ…œ์ฆˆ => ์˜ค๋ผํด๋กœ ์ธ์ˆ˜๋จ

  • ๋ผ์ด์„ผ์Šค ์ •์ฑ…์€ 5.5 ์ด์ „์—๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ ์—๋””์…˜์œผ๋กœ ๋‚˜๋‰˜์ง€๋งŒ ๋‘˜์˜ ์†Œ์Šค์ฝ”๋“œ๋Š” ๋™์ผํ–ˆ์—ˆ๋‹ค.

    • ๊ทธ ํ›„๋ถ€ํ„ฐ๋Š” ๊ธฐ๋Šฅ๊ณผ ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ๋‹ฌ๋ผ์กŒ๋‹ค. ํ•ต์‹ฌ๊ธฐ๋Šฅ์€ ๋™์ผ

  • 5.5, 5.7, 8.0 ๋ฒ„์ „์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ์˜ค๋ผํด์— ์ธ์ˆ˜๋œ์ดํ›„ 10๋…„๊ฐ„ ๋งŽ์€ ๋ณ€ํ™”๊ฐ€ ์žˆ์—ˆ๋‹ค!

1.2 ์™œ MySQL์ธ๊ฐ€?

  • ์˜ค๋ผํด DB์— ๋น„๊ตํ•ด์„œ MySQL์˜ ๊ฒฝ์Ÿ๋ ฅ์€ ๊ฐ€๊ฒฉ๊ณผ ๋น„์šฉ์ด๋‹ค.

  • ์ตœ๊ทผ์—๋Š” ๋Œ€ํ˜• ์€ํ–‰ ์‹œ์Šคํ…œ์—์„œ๋„ MySQL ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์„ ์ •๋„๋กœ MySQL์ด ์•ˆ์ •์„ฑ ์ธก๋ฉด์—์„œ๋„ ๋งŽ์ด ๋ฐœ์ „ํ–ˆ๋‹ค.

    • ํŽ˜์ด์Šค๋ถ์—์„œ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์˜ค๋ผํด DB์— ์ €์žฅํ•˜๋ฉด ํŽ˜์ด์Šค๋ถ์€ ๋งํ• ๊ฒƒ์ด๋‹ค ใ…Žใ…Ž

  • DBMS๋ฅผ ์„ ํƒํ•  ๋•Œ ๊ณ ๋ คํ•  ์‚ฌํ•ญ

    • ์•ˆ์ •์„ฑ

    • ์„ฑ๋Šฅ๊ณผ ๊ธฐ๋Šฅ

    • ์ปค๋ฎค๋‹ˆํ‹ฐ๋‚˜ ์ธ์ง€๋„

2์žฅ ์„ค์น˜์™€ ์„ค์ •

2.1 ์„ค์น˜

  • dmg ํŒŒ์ผ๋กœ ์„ค์น˜ํ•˜๋ฉด ํŽธ๋ฆฌํ•œ ์•ฑ์œผ๋กœ ์‹คํ–‰, ์ข…๋ฃŒ ๋ฐ ํ™˜๊ฒฝํŒŒ์ผ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

2.2 MySQL ์„œ๋ฒ„์˜ ์‹œ์ž‘๊ณผ ์ข…๋ฃŒ

2.2.3 ์„œ๋ฒ„ ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ

mysql -uroot -p --host=localhost --socket=/tmp/mysql.sock
mysql -uroot -p --host=127.0.0.1 --port=3306
mysql -uroot -p

2.3 MySQL ์„œ๋ฒ„ ์—…๊ทธ๋ ˆ์ด๋“œ

  • ์ธํ”Œ๋ ˆ์ด์Šค ์—…๊ทธ๋ ˆ์ด๋“œ : MySQL ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ๋กœ์ง€์ปฌ ์—…๊ทธ๋ ˆ์ด๋“œ : mysqldump ๋„๊ตฌ ๋“ฑ์„ ์ด์šฉํ•ด MySQL ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ SQL ๋ฌธ์žฅ์ด๋‚˜ ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ๋คํ”„ํ•œ ํ›„, ์ƒˆ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ๋ฒ„์ „์˜ MySQL ์„œ๋ฒ„์—์„œ ๋คํ”„๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ ์žฌํ•˜๋Š” ๋ฐฉ๋ฒ•

2.4 ์„œ๋ฒ„ ์„ค์ •

  • ์ผ๋ฐ˜์ ์œผ๋กœ MySQL์€ my.cnf or my.ini ๋ผ๋Š” ์ด๋ฆ„์˜ ๋‹จ ํ•˜๋‚˜์˜ ์„ค์ • ํŒŒ์ผ์„ ์‚ฌ์šฉํ•œ๋‹ค.

mysql --help

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /opt/homebrew/etc/my.cnf ~/.my.cnf
  • mysql --help ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์œ„์™€ ๊ฐ™์€ ๊ฒฝ๋กœ์˜ ์ˆœ์„œ๋กœ my.cnf ํŒŒ์ผ์„ ์ฐพ์•„์„œ ์ฒ˜์Œ ๋ฐœ๊ฒฌ๋œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•œ๋‹ค.

2.4.1 ์„ค์ • ํŒŒ์ผ์˜ ๊ตฌ์„ฑ

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„ค์ • ๊ทธ๋ฃน์„ ๋‹ด์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋Œ€์ฒด๋กœ ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฆ„์„ ๊ทธ๋ฃน๋ช…์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. [mysqld] socket = /usr/local/mysql/tmp/mysql.sock port=3306 [mysql] socket = /usr/local/mysql/tmp/mysql.sock port=3304

2.4.2 MySQL ์‹œ์Šคํ…œ ๋ณ€์ˆ˜์˜ ํŠน์ง•

  • MySQL ์„œ๋ฒ„๋Š” ๊ธฐ๋™ํ•˜๋ฉด์„œ ์„ค์ • ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์ฝ์–ด ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ์ž‘๋™ ๋ฐฉ์‹์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ์ ‘์†๋œ ์‚ฌ์šฉ์ž๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ๊ฐ’์„ ๋ณ„๋„๋กœ ์ €์žฅํ•ด ๋‘”๋‹ค.

  • MySQL ์„œ๋ฒ„์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ์ €์žฅ๋œ ๊ฐ’์„ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜(System Variables)๋ผ๊ณ  ํ•œ๋‹ค.

  • ๊ฐ ์‹œ์Šทํ…œ ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ ์˜ˆ์ œ์™€ ๊ฐ™์ด show variables, show global variables๋ผ๋Š” ๋ช…๋ น์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

  • MySQL ์„œ๋ฒ„์˜ ๋งค๋‰ด์–ผ์—์„œ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๋ฅผ ์„ค๋ช…ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ณด๋ฉด ๋ชจ๋“  ๋ณ€์ˆ˜์˜ ๋ชฉ๋ก๊ณผ ๊ฐ„๋‹จํ•œ ์„ค๋ช…์„ ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€์ง€๋Š” ์†์„ฑ์€ 5๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

    • Cmd-Line: MySQL ์„œ๋ฒ„์˜ ๋ช…๋ นํ–‰ ์ธ์ž๋กœ ์„ค์ •๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ด ๊ฐ’์ด Yes ์ด๋ฉด ๋ช…๋ นํ–‰ ์ธ์ž๋กœ ๋ณ€์ˆ˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

    • Option File: mySQL ์„ค์ • ํŒŒ์ผ์ธ my.cnf๋กœ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

    • System Var: ์‹œ์Šคํ…œ ๋ณ€์ˆ˜์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

    • Var Scope: ์‹œ์Šคํ…œ ๋ณ€์ˆ˜์˜ ์ ์šฉ ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ด ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๊ฐ€ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ณณ์ด ์„œ๋ฒ„ ์ „์ฒด(Global)๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š”์ง€, ์•„๋‹ˆ๋ฉด MySQL ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์ปค๋„ฅ์…˜(Session)๋งŒ์ธ์ง€ ๊ตฌ๋ถ„ํ•œ๋‹ค. ์–ด๋–ค ๋ณ€์ˆ˜๋Š” ์„ธ์…˜๊ณผ ๊ธ€๋กœ๋ฒŒ ๋ชจ๋‘ ์ ์šฉ(Both)๋˜๊ธฐ๋„ ํ•œ๋‹ค.

    • Dynamic: ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๊ฐ€ ๋™์ ์ธ์ง€ ์ •์ ์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๋Š” ๋ณ€์ˆ˜์ด๋‹ค.

2.4.3 ๊ธ€๋กœ๋ฒŒ ๋ณ€์ˆ˜์™€ ์„ธ์…˜ ๋ณ€์ˆ˜

  • ๊ธ€๋กœ๋ฒŒ ๋ฒ”์œ„์˜ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๋Š” MySQL ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค์—์„œ ์ „์ฒด์ ์œผ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

    • ์ฃผ๋กœ MySQL ์„œ๋ฒ„ ์ž์ฒด์— ๋Œ€ํ•œ ์„ค์ •์ผ ๋•Œ๊ฐ€ ๋งŽ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด InnoDB ๋ฒ„ํผ ํ’€ ํฌ๊ธฐ, MyISAM์˜ ํ‚ค ์บ์‹œ ํฌ๊ธฐ ๋“ฑ์ด ๋Œ€ํ‘œ์ ์ธ ๊ธ€๋กœ๋ฒŒ ์˜์—ญ์˜ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๋‹ค.

  • ์„ธ์…˜ ๋ฒ”์œ„์˜ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๋Š” mySQL ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ถ€์—ฌํ•˜๋Š” ์˜ต์…˜์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์ œ์–ดํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.

    • ๋ณ„๋„๋กœ ๊ทธ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋Œ€๋กœ ๊ฐ’์ด ์œ ์ง€๋˜์ง€๋งŒ, ํด๋ผ์ด์–ธํŠธ์˜ ํ•„์š”์— ๋”ฐ๋ผ ๊ฐœ๋ณ„ ์ปค๋„ฅ์…˜ ๋‹จ์œ„๋กœ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์„ธ์…˜ ๋ณ€์ˆ˜๋‹ค. ์—ฌ๊ธฐ์„œ ๊ธฐ๋ณธ ๊ฐ’์€ ๊ธ€๋กœ๋ฒŒ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜์ด๋ฉฐ, ๊ฐ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ€์ง€๋Š” ๊ฐ’์ด ์„ธ์…˜ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๋‹ค.

    • ๊ฐ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ฟผ๋ฆฌ ๋‹จ์œ„๋กœ ์ž๋™ ์ปค๋ฐ‹์„ ์ˆ˜ํ–‰ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” autocommit ๋ณ€์ˆ˜๊ฐ€ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์ด๋‹ค. autocommit์„ ON์œผ๋กœ ์„ค์ •ํ•ด๋‘๋ฉด ํ•ด๋‹น ์„œ๋ฒ„์— ์ ‘์†ํ•˜๋Š” ๋ชจ๋“  ์ปค๋„ฅ์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž๋™ ์ปค๋ฐ‹ ๋ชจ๋“œ๋กœ ์‹œ์ž‘๋˜์ง€๋งŒ ๊ฐ ์ปค๋„ฅ์…˜์—์„œ autocommit ๋ณ€์ˆ˜๋ฅผ OFF๋กœ ๋ณ€๊ฒฝํ•ด ์ž๋™ ์ปค๋ฐ‹ ๋ชจ๋“œ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

2.4.4 ์ •์  ๋ณ€์ˆ˜์™€ ๋™์  ๋ณ€์ˆ˜

  • MySQL ์„œ๋ฒ„๊ฐ€ ๊ธฐ๋™ ์ค‘์ธ ์ƒํƒœ์—์„œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ์ง€์— ๋”ฐ๋ผ ๋™์  ๋ณ€์ˆ˜์™€ ์ •์  ๋ณ€์ˆ˜๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

  • ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ’์ด ๋™์  ๋ณ€์ˆ˜๋ผ๋ฉด SET ๋ช…๋ น์œผ๋กœ ๊ฐ„๋‹จํžˆ ๋ณ€์ˆ˜๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ •์  ๋ณ€์ˆ˜๋ผ๋ฉด my.cnf ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ PERSIST ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

  • MySQL 8.0๋ฒ„์ „๋ถ€ํ„ฐ๋Š” SET PERSIST ๋ช…๋ น์„ ์ด์šฉํ•˜๋ฉด ์‹คํ–‰ ์ค‘์ธ MySQL ์„œ๋ฒ„์˜ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•จ๊ณผ ๋™์‹œ์— ์ž๋™์œผ๋กœ ์„ค์ • ํŒŒ์ผ๋กœ๋„ ๊ธฐ๋ก๋œ๋‹ค.

  • SHOW ๋‚˜ SET ๋ช…๋ น์—์„œ GLOBAL ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธ€๋กœ๋ฒŒ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜์˜ ๋ชฉ๋ก๊ณผ ๋‚ด์šฉ์„ ์ฝ๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋นผ๋ฉด ์„ธ์…˜ ๋ณ€์ˆ˜๋ฅผ ์กฐํšŒํ•˜๊ณ  ๋ณ€๊ฒฝํ•œ๋‹ค.

2.4.5 SET PERSIST

  • MySQL ์„œ๋ฒ„์˜ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๋Š” ๋™์  ๋ณ€์ˆ˜์™€ ์ •์ ๋ณ€์ˆ˜๋กœ ๋‚˜๋‰˜์–ด์ง€๋Š”๋ฐ, ๋™์ ๋ณ€์ˆ˜๋Š” SET GLOBAL ๋ช…๋ น์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ์„œ๋ฒ„์— ์ฆ‰์‹œ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ์ด๋ ‡๊ฒŒ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ MySQL ์„œ๋ฒ„์˜ ์„ค์ • ํŒŒ์ผ์—๋„ ์ด ๋‚ด์šฉ์„ ์ ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ ์ด๋ฅผ ํ›„์— ์ ์šฉํ•˜๋ฉด ์žŠ์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค.

  • ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด MySQL 8.0 ๋ฒ„์ „์—์„œ๋Š” SET PERSIST ๋ช…๋ น์„ ์ง€์›ํ•œ๋‹ค.

    • SET PERSIST ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด MySQL ์„œ๋ฒ„๋Š” ๋ณ€๊ฒฝ๋œ ๊ฐ’์„ ์ฆ‰์‹œ ์ ์šฉํ•จ๊ณผ ๋™์‹œ์— mysqld-auto.cnf์— ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ถ”๊ฐ€๋กœ ๊ธฐ๋กํ•ด ๋‘”๋‹ค.

    • ์„œ๋ฒ„๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋  ๋•Œ ๊ธฐ๋ณธ ์„ค์ • ํŒŒ์ผ my.cnf ํŒŒ์ผ๊ณผ mysqld-auto.cnf ํŒŒ์ผ์„ ๊ฐ™์ด ์ฐธ์กฐํ•ด์„œ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜์— ์ ์šฉํ•œ๋‹ค.

  • SET PERSIST ๋ช…๋ น์€ ์„ธ์…˜ ๋ณ€์ˆ˜์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ, SET PERSIST ๋ช…๋ น์œผ๋กœ ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด MySQL ์„œ๋ฒ„๋Š” ์ž๋™์œผ๋กœ GLOBAL ์‹œ์Šคํ…œ ๋ณ€์ˆ˜์˜ ๋ณ€๊ฒฝ์œผ๋กœ ์ธ์‹ํ•˜๊ณ  ๋ณ€๊ฒฝํ•œ๋‹ค.

  • ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์„œ๋ฒ„์—๋Š” ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ ์šฉํ•˜์ง€ ์•Š๊ณ  ๋‹ค์Œ ์žฌ์‹œ์ž‘์„ ์œ„ํ•ด mysqld-auto.cnf ํŒŒ์ผ์—๋งŒ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๊ธฐ๋กํ•ด๋‘๊ณ ์ž ํ•œ๋‹ค๋ฉด SET PERSIST_ONLY ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

    • ์ •์ ์ธ ๋ณ€์ˆ˜๋Š” ์‹คํ–‰์ค‘์ธ ์„œ๋ฒ„์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— mysqld-auto.cnf ์— ๊ธฐ๋กํ•ด๋‘๊ณ  ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ ํ•ด์•ผํ•œ๋‹ค.

  • mysqld-auto.cnf ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์‚ญ์ œํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” RESET PERSIST ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

2.4.6 my.cnfํŒŒ์ผ

  • MySQL ์„œ๋ฒ„๋ฅผ ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‹œ์Šคํ…œ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์ƒ๋‹นํžˆ ๋งŽ์ด ํ•„์š”ํ•˜๋‹ค.

3์žฅ ์‚ฌ์šฉ์ž ๋ฐ ๊ถŒํ•œ

  • MySQl์˜ ์‚ฌ์šฉ์ž ๊ณ„์ •์€ ๋‹จ์ˆœํžˆ ์‚ฌ์šฉ์ž์˜ ์•„์ด๋”” ๋ฟ ์•„๋‹ˆ๋ผ ํ•ด๋‹น ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋Š IP์—์„œ ์ ‘์†ํ•˜๊ณ  ์žˆ๋Š”์ง€๋„ ํ™•์ธํ•œ๋‹ค

  • MySQL 8.0๋ถ€ํ„ฐ๋Š” ๊ถŒํ•œ์„ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• (Role)์˜ ๊ฐœ๋…์ด ๋„์ž…๋๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ์œผ๋กœ ๋ฏธ๋ฆฌ ์ค€๋น„๋œ ๊ถŒํ•œ ์„ธํŠธ(Role)์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

3.1 ์‚ฌ์šฉ์ž ์‹๋ณ„

  • ์‚ฌ์šฉ์ž์˜ ๊ณ„์ •๋ฟ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž์˜ ์ ‘์† ์ง€์ ๋„ ๊ณ„์ •์˜ ์ผ๋ถ€๊ฐ€ ๋œ๋‹ค.

    • ๋”ฐ๋ผ์„œ MySQL์—์„œ ๊ณ„์ •์„ ์–ธ๊ธ‰ํ•  ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ญ์ƒ ์•„์ด๋””์™€ ํ˜ธ์ŠคํŠธ๋ฅผ ํ•จ๊ป˜ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค.

'svc_id'@'127.0.0.1'

3.2 ์‚ฌ์šฉ์ž ๊ณ„์ • ๊ด€๋ฆฌ

3.2.1 ์‹œ์Šคํ…œ ๊ณ„์ฉก๊ณผ ์ผ๋ฐ˜ ๊ณ„์ •

  • MySQL 8.0๋ถ€ํ„ฐ ๊ณ„์ •์€ SYSTEM_USER ๊ถŒํ•œ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š๋ƒ์— ๋”ฐ๋ผ ์‹œ์Šคํ…œ ๊ณ„์ €๊ณผ ์ผ๋ฐ˜ ๊ณ„์ •์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

  • ์‹œ์Šคํ…œ ๊ณ„์ •์€ ์‹œ์Šคํ…œ ๊ณ„์ •๊ณผ ์ผ๋ฐ˜ ๊ณ„์ •์„ ๊ด€๋ฆฌ(์ƒ์„ฑ ์‚ญ์ œ ๋ฐ ๋ณ€๊ฒฝ)ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜ ๊ณ„์ •์€ ์‹œ์Šคํ…œ ๊ณ„์ •์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค.

  • ์‹œ์Šคํ…œ ๊ณ„์ •๋งŒ ๊ฐ€๋Šฅํ•œ ์ž‘์—…

    • ๊ณ„์ • ๊ด€๋ฆฌ

    • ๋‹ค๋ฅธ ์„ธ์…˜ ๋˜๋Š” ๊ทธ ์„ธ์…˜์—์„œ ์‹คํ–‰ ์ค‘์ธ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ•์ œ์ข…๋ฃŒ

    • ์Šคํ† ์–ด๋“œ ํ”„๋กœ๊ทธ๋žจ ์ƒ์„ฑ ์‹œ DEFINER๋ฅผ ํƒ€ ์‚ฌ์šฉ์ž๋กœ ์„ค์ •

  • ๋‚ด์žฅ๋œ ๊ณ„์ • : ์•„๋ž˜์˜ 3๊ฐœ์˜ ๊ณ„์ •์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž ๊ฒจ(account_locked) ์ƒํƒœ์ด๋‹ค.

    • 'mysql.sys'@'localhost': MySQL 8.0๋ถ€ํ„ฐ ๊ธฐ๋ณธ์œผ๋กœ ๋‚ด์žฅ๋œ sys ์Šคํ‚ค๋งˆ์˜ ๊ฐ์ฒด(๋ทฐ, ํ•จ์ˆ˜, ํ”„๋กœ์‹œ์ €)๋“ค์˜ DEFINER๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ณ„์ •

    • 'mysql.session'@'localhost': MySQL ํ”„๋Ÿฌ๊ทธ์ธ์ด ์„œ๋ฒ„๋กœ ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ณ„์ •

    • 'mysql.infoschema'@'localhost': information_schema์— ์ •์˜๋œ ๋ทฐ์˜ DEFINER๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ณ„์ •

3.2.2 ๊ณ„์ • ์ƒ์„ฑ

  • MySQL 8.0๋ถ€ํ„ฐ๋Š” ๊ณ„์ • ์ƒ์„ฑ์€ CREATE USER ๋ช…๋ น์œผ๋กœ, ๊ถŒํ•œ ๋ถ€์—ฌ๋Š” GRANT ๋ช…๋ น์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์‹คํ–‰ํ•œ๋‹ค.(์ด์ „์—๋Š” ํ•œ ๋ฒˆ์— ๊ฐ€๋Šฅํ–ˆ์Œ)

  • ๊ณ„์ • ์ƒ์„ฑํ•  ๋•Œ๋Š” ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ๊ณ„์ •์˜ ์ธ์ฆ ๋ฐฉ์‹๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ

    • ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ด€๋ จ ์˜ต์…˜(๋น„๋ฐ€๋ฒˆํ˜ธ ์œ ํšจ๊ธฐ๊ฐ„, ๋น„๋ฐ€๋ฒˆํ˜ธ ์ด๋ ฅ ๊ฐœ์ˆ˜, ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์‚ฌ์šฉ ๋ถˆ๊ฐ€ ๊ธฐ๊ฐ„)

    • ๊ธฐ๋ณธ ์—ญํ• 

    • SSL ์˜ต์…˜

    • ๊ณ„์ • ์ž ๊ทธ๋ฏ€ ์—ฌ๋ถ€

3.3 ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ด€๋ฆฌ

  • MySQL ์„œ๋ฒ„์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์œ ํšจ์„ฑ ์ฒดํฌ ๊ทœ์น™์„ ์ ์šฉํ•˜๋ ค๋ฉด validate_password ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค.

    • INSTALL COMPONENT 'file://component_validate_password';

  • ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •์ฑ…์€ ํฌ๊ฒŒ 3๊ฐ€์ง€ ์ค‘์— ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

    • LOW : ๊ธธ์ด๋งŒ ๊ฒ€์ฆ

    • MEDIUM: default

    • STRONG: MEDIUM + ๊ธˆ์น™์–ด ์ง€์ •๊ฐ€๋Šฅ

3.4 ๊ถŒํ•œ

  • ๊ธ€๋กœ๋ฒŒ ๊ถŒํ•œ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํ…Œ์ด๋ธ” ์ด์™ธ์˜ ๊ฐ์ฒด์— ์ ์šฉ๋˜๋Š” ๊ถŒํ•œ

  • ๊ฐ์ฒด ๊ถŒํ•œ: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํ…Œ์ด๋ธ”์„ ์ œ์–ดํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ

    • DB ๊ถŒํ•œ

    • ํ…Œ์ด๋ธ” ๊ถŒํ•œ

  • ์ •์ ๊ถŒํ•œ: MySQL ์„œ๋ฒ„์˜ ์†Œ์Šค์ฝ”๋“œ์— ๊ณ ์ •์ ์œผ๋กœ ๋ช…์‹œ๋ผ ์žˆ๋Š” ๊ถŒํ•œ

  • ๋™์  ๊ถŒํ•œ: MySQL ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋˜๋ฉด์„œ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ถŒํ•œ

3.5 ์—ญํ• 

  • MySQL 8.0๋ฒ„์ „๋ถ€ํ„ฐ ๊ถŒํ•œ์„ ๋ฌถ์–ด์„œ ์—ญํ• ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค.

  • ์‹ค์ œ MySQL ์„œ๋ฒ„ ๋‚ด๋ถ€์ ์œผ๋กœ ์—ญํ• ์€ ๊ณ„์ •๊ณผ ๊ฐ™์€ ๋ชจ์Šต์„ ํ•˜๊ณ  ์žˆ๋‹ค.

  • ์—ญํ• ์„ ์ƒ์„ฑํ•˜๊ณ  ๊ณ„์ •์— ๋ถ€์—ฌ๋ฅผ ํ•œ ํ›„ ์ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ ค๋ฉด SET ROLE ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์„œ ํ•ด๋‹น ์—ญํ• ์„ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•œ๋‹ค.

    • activate_all_roles_on_login ๋ณ€์ˆ˜๊ฐ€ ON์œผ๋กœ ๋˜์–ด์žˆ์œผ๋ฉด ์—ญํ• ์„ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์•„๋„ ๋กœ๊ทธ์ธใ…‡๊ณผ ๋™์‹œ์— ๋ถ€์—ฌ๋œ ์—ญํ• ์ด ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™”๋œ๋‹ค.

Last updated