๐ ์ด ํฌ์คํ ์์๋ mysql ๋ก๊ทธ์ธ ๋ฌธ์ ๋ก ๋ํ๋๋ ERROR 1045 (28000) ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํด ์ ๋ฆฌํ์์ต๋๋ค.
โ๏ธ Django ์๋ฒ๋ฅผ ๊ตฌ๋ํ๋ค ์ ๋ ๊น์ง ๋ฉ์ฉกํ๋ ์๋ฒ๊ฐ ์ด์ํ Error๋ฅผ ๋ด๋ฑ๊ธฐ ์์ํ๋ค.
โ๏ธ ์ดํด๋ณด๋, Django์์ Mysql ์ธํ ์ ๊ดํ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์๋ค. ๊ทธ๋ฐ๋ฐ ์ฒซ ์ธํ ํ ์ ํ ๊ฑด๋ค์ธ ์ ์ด ์๋ค.
โ๏ธ mysql๋ก ์ ์ํด ๋ณด๋๋ก ํ์. ์๋ ๋ช ๋ น์ด ํ, ๊ณ์ ์ฌ์ฉํ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋๋ฐ, ์๋์ ๊ฐ์ Eroor๊ฐ ๋ฐ์ํ๋ค.
$ > mysql -u root -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
โ๏ธ ์ฐพ์๋ณด๋, ๋น๋ฐ๋ฒํธ๊ฐ ํ๋ ธ๋ค๊ณ ํ๋ค. ๋๋ฌด์ต์ธํ์ง๋ง ๋ฐฉ๋ฒ์ด์๋ค. ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฐ๊ฟ์ผ๊ฒ ๋ค.
โ๏ธ mysql ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ๋ฐฉ๋ฒ์ ๋ํด ์ฐพ์๋ณด๋, ์๋์ ๊ฐ์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ผ ๋์จ๋ค.
โ๏ธ ์ฐ์ ์๋์ ๊ฐ์ด ์ ๋ ฅ ํ, ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ผํ๋ฉด ๊ทธ๋ฅ ๋ฐ๋ก Enter๋ฅผ ๋๋ฌ ์ง์ ํ๋ค.
$ > mysql -u root -p
$ > Enter password:
โ๏ธ mysql์ ์ง์ ํ, root์ ๋น๋ฐ๋ฒ๋ฅผ 1234๋ก ๋ฐ๊พธ๋ ๋ช ๋ น์ด๋ ์๋์ ๊ฐ๋ค๊ณ ํด์ ์๋ํ๋ค.
mysql > use mysql;
mysql > UPDATE user set password=password("1234") where user = 'root';
โ๏ธ ERROR 1064 (42000) ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์๋ฌด๋ฆฌ๋ด๋ ๋ฌธ๋ฒ์ ์ผ๋ก ํ๋ฆฐ ๊ณณ์ ์ฐพ์ ์๊ฐ ์๋๋ฐ ๋ชจ๋ ๋ฌธ๋ฒ์ด ํ๋ ค์ ๋์จ๊ฑฐ๋ผ ํ๋ค.
โ๏ธ near ๋ท๋ถ๋ถ์ ์ฐํ ๊ณณ์ด ๊ทธ ๊ฐ๋ฅ์ฑ์ ๋ํ๋ด๋ ๋ถ๋ถ์ธ๋ฐ,, ๋ค๋ฅธ์ฌ๋๋ค์ ์ด๋ ๊ฒ ๋ซ๋คํด์ ์ด๋์๋ถํฐ ์๋ชป๋์๋์ง ์ฐพ๊ธฐ ์์ํ๋ค.
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '("1234") where user = 'root'' at line 1
โ๏ธ ๊ณ์ ์ฐพ์๋ณด๋, mysql ๋ฒ์ ์ด ๋ฐ๋๋ฉด์ ๋ช ๋ น์ด๊ฐ ์์ ๋์๋ค๊ณ ํ๋ค.
โ๏ธ ์ฐ์ ๋ด ๋ฒ์ ์ ๋ง๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด์ผํ๊ธฐ ๋๋ฌธ์ ๋ฒ์ ๋ถํฐ ํ์ธํ๋ค. 8๋ฒ์ ์ด๋ผ ๋์จ๋ค.
mysql> SELECT VERSION();
โ๏ธ 8.xx ๋ฒ์ ์ผ ๊ฒฝ์ฐ, ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ๋ช ๋ น์ ์๋์ ๊ฐ๋ค. ๋ง์ง๋ง์ flush๋ฅผ ๊ผญ ํด์ฃผ์ด์ผ ๋๋ค.
mysql> use mysql;
Query OK, 0 rows affected (0.00 sec)
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '1234';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)