๋์ปค๋ฅผ ํตํด MySQL ์ปจํ ์ด๋๋ฅผ ์คํํ๊ณ ๋ก๊ทธ์ธ์ ํ๋ ค๊ณ ํ๋ 'Access denied for user'๋ผ๋ ์๋ฌ๊ฐ ๋จ๋ฉฐ ์คํจํ๋ ๋ฌธ์ ๋ฅผ ๊ฒช๊ฒ ๋์๋ค.
์ฒ์ ์ ์์ ์๋ํ ๋ localhost๋ฅผ ํตํด ์ ๊ทผ์ ํ์๋๋ฐ, ์๊ณ ๋ณด๋ ์ด๋ฌํ ๋ถ๋ถ์์ ๋ฌธ์ ๊ฐ ์์๋ค.
์ผ๋ฐ์ ์ผ๋ก ๋์ปค๋ ์ปจํ ์ด๋๋ฅผ ์ํ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ์ค์ ํ๊ณ , ๊ฐ ์ปจํ ์ด๋์๋ ๊ณ ์ ํ IP ์ฃผ์๊ฐ ํ ๋น๋๊ธฐ ๋๋ฌธ์ ๋จ์ํ localhost๋ฅผ ํตํ ์ ๊ทผ์ผ๋ก๋ ๋์ปค ๋ด ์ปจํ ์ด๋์ ์ ์ํ ์ ์๊ณ ๋์ปค๊ฐ ๋ถ์ฌํ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ํ์ฌ์ผ ํ๋ค.
์ด๋ฅผ ์ํด์๋ ๋์ปค ์ปจํ
์ด๋์ ํ ๋น๋ IP ์ฃผ์๋ฅผ ํ์ธํ์ฌ์ผ ํ๋๋ฐ, ์ผ๋ฐ์ ์ผ๋ก MySQL ์ปจํ
์ด๋์๋ 172.17.0.1
์ด๋ผ๋ ์ฃผ์๊ฐ ๋ถ์ฌ๋๋ ๊ฒ ๊ฐ์ง๋ง ์๋ ๋ช
๋ น์ด๋ฅผ ํตํด์ ์ฃผ์๋ฅผ ํ์ธํ ์ ์๋ค.
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' [์ปจํ
์ด๋ ์ด๋ฆ ๋๋ ID]
์ค์ ๋ก ํฐ๋ฏธ๋์์ ์คํํด๋ณด๋ 172.17.0.2
๋ผ๋ ๊ฒฐ๊ณผ๊ฐ ๋์์ง๋ง, ์๋ธ๋ท์ด ๋ฌ๋ผ๋ ๋์ปค์์ ์ปจํ
์ด๋ ๊ฐ ํต์ ์ ์ํ ๋ผ์ฐํ
์ ์์ฒด์ ์ผ๋ก ์ํํ๋ค๊ณ ํ๋ ๋ฌธ์ ์์ด ์ปจํ
์ด๋์ ์ ์ํ ์ ์๋ค.
# MySQL ์ปจํ
์ด๋์ root ์ฌ์ฉ์๋ก ์ ์
docker exec -it <CONTAINER_ID> mysql -uroot -p
# ์๋ก์ด ๊ณ์ ์์ฑ๊ณผ ๋์์ ์ ์์ ํ์ฉํ IP ์ฃผ์ ๋ช
์
mysql> CREATE USER 'account_name'@'172.17.0.1' IDENTIFIED BY 'password';
# ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ
์ด๋ธ์ ๋ํ ๋ชจ๋ ๊ถํ ๋ถ์ฌ
mysql> GRANT ALL PRIVILEGES ON *.* TO 'account_name'@'172.17.0.1' WITH GRANT OPTION;
# ์ฌ์ฉ์ ๋ฐ ๊ถํ ๊ด๋ฆฌ์ ๊ด๋ จ๋ ๋ด๋ถ ์บ์๋ฅผ ์๋ก ๊ณ ์นจ์ผ๋ก์จ, ์ฌ์ฉ์ ๊ถํ ๋ณ๊ฒฝ์ ์ฆ์ ๋ฐ์
mysql> flush privileges;
MySQL ์ปจํ ์ด๋์ ์ฝ์์ ์ ์ํ ๋ค ์์ ๋ช ๋ น์ด๋ฅผ ์์๋๋ก ์ ๋ ฅํจ์ผ๋ก์จ ๊ณ์ ์์ฑ ๋ฐ ๊ถํ ๋ถ์ฌ๋ฅผ ์๋ฃํด์ฃผ๋ฉด ์์ฑํ ๊ณ์ ์ ํตํด ์ปจํ ์ด๋์ ์ ์์ ์ผ๋ก ์ ์์ด ๊ฐ๋ฅํด์ง๋ค.