๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅDEV/์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ! TIP

[Tip] MySQL ํŒจ์Šค์›Œ๋“œ ์—†์ด ์„ค์น˜ํ•˜๊ธฐ

by bdd 2022. 7. 26.

๋„์ปค๋ฅผ ํ†ตํ•ด mysql์„ ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ ์—†์ด mysql์ด ์„ค์น˜๋˜๋Š”๋ฐ์š”, ๋ฌผ๋ก  ์ฒ˜์Œ mysql์„ ์„ค์น˜ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ด๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋œน๋‹ˆ๋‹ค. ์ด๋Š” ๊ถŒํ•œ์„ ์ฃผ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.  

 

# ์„ค์น˜
$ docker container run -d --name {name} -e MYSQL_ALLOW_EMPTY_PASSWORD={password} mysql

 

 

 

 

 

์ด ๊ฒฝ์šฐ ํ˜„์žฌ ์‚ฌ์šฉ์ž๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ๋กœ์šด ์‚ฌ์šฉ์ž๋ฅผ ๋“ฑ๋ก, ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”, ์ด์— ๋Œ€ํ•œ ๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šฐ์„  ์•„๋ž˜์™€ ๊ฐ™์ด use mysql์„ ํ†ตํ•ด ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ ํƒํ•˜๊ณ  ์‚ฌ์šฉ์ž๋ฅผ ์กฐํšŒํ•ด๋ด…๋‹ˆ๋‹ค. ์ด๋•Œ ๋ชฉ๋ก ๊ฐ€์žฅ ์œ„์— ์žˆ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋‚ด๊ฐ€ ์ตœ์ดˆ์— ๋“ฑ๋กํ•œ ์•„์ด๋””์ž…๋‹ˆ๋‹ค.

 

# mysql ์„ ํƒ 
mysql> use mysql

# ์‚ฌ์šฉ์ž ๋ชฉ๋ก ์กฐํšŒ
mysql> select user, host from user;

 

 

 

 

 

์ด์ œ ํ•ด๋‹น ์‚ฌ์šฉ์ž๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ๋กœ์šด ์œ ์ €๋ฅผ ์ƒ์„ฑํ•œ ํ›„ ๋ชจ๋“  ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ „์ฒด ๊ถŒํ•œ์ด ์•„๋‹Œ ์ผ๋ถ€ ๊ถŒํ•œ๋งŒ ์ค„ ๊ฒฝ์šฐ ์„ค์ •์„ ๋‹ค๋ฅด๊ฒŒ ์„ธํŒ…ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

 

mysql> drop user 'root'@'%';
Query OK, 0 rows affected (0.01 sec)

mysql> create user 'jun'@'%' identified by '1234';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on lnshare.* to 'jun'@'%' with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 

 

 

 

 

์ดํ›„ ์ด๋ฅผ ์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ž˜ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

 

 

 

๊ถŒํ•œ ์˜ค๋ฅ˜


๋งŒ์•ฝ ์„ค์น˜๊ณผ์ •์—์„œ ๊ถŒํ•œ๊ด€๋ จ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ ˆ์ฐจ๋กœ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

# ๊ถŒํ•œ ์˜ค๋ฅ˜
ERROR 1044 (42000): Access denied for user 'test'@'localhost' to database 'testdb' 


# ๋ฃจํŠธ๊ณ„์ • ์ ‘์†
 sudo mysql -u root;
 
 
 # ๊ถŒํ•œ ๋ถ€์—ฌ
 grant all privileges on *.* to 'root'@'%' identified by '1234';

 

 

 

 

 

2. CentOS7


# mysql 5.7 ๋ฒ„์ „ ๋‹ค์šด๋กœ๋“œ
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar 


# ์••์ถ• ํ•ด์ œ
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar 


# ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฒ„์ „ ์„ค์น˜
sudo yum localinstall mysql-community-*


# ์„œ๋น„์Šค ์‹คํ–‰
sudo systemctl start mysqld 
sudo systemctl status mysqld 
 
 
# ๋ฌด์ œ์•ฝ ๋ชจ๋“œ๋กœ ์„ค์ •
sudo systemctl stop mysqld
sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" 
sudo systemctl start mysqld 


# ์ ‘์†ํ–ˆ๋‹ค๋ฉด flush๋กœ ์ดˆ๊ธฐํ™”
flush privileges;

๋Œ“๊ธ€