Home > DB > πŸ’Ύ[Database] MySQL DB에 ν•œκΈ€ μ‚½μž….

πŸ’Ύ[Database] MySQL DB에 ν•œκΈ€ μ‚½μž….
Database MySQL

πŸ’Ύ[Database] MySQL DB에 ν•œκΈ€ μ‚½μž….

  • ν•œκΈ€μ„ MySQL λ°μ΄ν„°λ² μ΄μŠ€μ— μ‚½μž…ν•˜λ €κ³  ν•  λ•Œ λ°œμƒν•˜λŠ” 였λ₯˜λŠ” 주둜 λ°μ΄ν„°λ² μ΄μŠ€, ν…Œμ΄λΈ” λ˜λŠ” μ—΄μ˜ 문자 μ„ΈνŠΈμ™€ κ΄€λ ¨ μžˆμŠ΅λ‹ˆλ‹€.
    • 이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ°μ΄ν„°λ² μ΄μŠ€μ™€ ν…Œμ΄λΈ”μ˜ 문자 μ„ΈνŠΈλ₯Ό UTF-8둜 μ„€μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.

πŸ™‹β€β™‚οΈ λ°μ΄ν„°λ² μ΄μŠ€μ™€ ν…Œμ΄λΈ”μ˜ 문자 μ„ΈνŠΈλ₯Ό UTF-8둜 μ„€μ •ν•˜λŠ” 방법.

1️⃣ λ°μ΄ν„°λ² μ΄μŠ€ 생성 μ‹œ 문자 μ„ΈνŠΈ μ„€μ •.

CREATE DATABASE {λ°μ΄ν„°λ² μ΄μŠ€ 이름} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2️⃣ κΈ°μ‘΄ λ°μ΄ν„°λ² μ΄μŠ€μ˜ 문자 μ„ΈνŠΈ λ³€κ²½.

ALTER DATABASE {λ°μ΄ν„°λ² μ΄μŠ€ 이름} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3️⃣ ν…Œμ΄λΈ” 생성 μ‹œ 문자 μ„ΈνŠΈ μ„€μ •.

CREATE TABLE test (
    id INT AUTO_INCREMENT PRIMARY KEY,
    content TEXT
) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

4️⃣ κΈ°μ‘΄ ν…Œμ΄λΈ”μ˜ 문자 μ„ΈνŠΈ λ³€κ²½.

ALTER TABLE test CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

5️⃣ 각 μ—΄μ˜ 문자 μ„ΈνŠΈ 확인 및 λ³€κ²½.

ALTER TABLE test MODIFY content TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

6️⃣ MySQL μ„œλ²„μ˜ κΈ°λ³Έ 문자 μ„ΈνŠΈλ₯Ό λ³€κ²½.

  • my.cnf(λ˜λŠ” my.ini) νŒŒμΌμ„ μˆ˜μ •ν•˜μ—¬ κΈ°λ³Έ 문자 μ„ΈνŠΈλ₯Ό utf8mb4둜 μ„€μ •ν•©λ‹ˆλ‹€.
    • 보톡 이 νŒŒμΌμ€ /etc/my.cnf λ˜λŠ” /etc/mysql/my.cnf 에 μœ„μΉ˜ν•΄ μžˆμŠ΅λ‹ˆλ‹€.
  • my.cnf νŒŒμΌμ— λ‹€μŒ λ‚΄μš©μ„ μΆ”κ°€ν•©λ‹ˆλ‹€.
    ```ini
    [client]
    default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci


### 7️⃣ MySQL μ„œλ²„ μž¬μ‹œμž‘.
```shell
sudo systemctl restart mysqld
  • 이제 ν•œκΈ€μ„ ν¬ν•¨ν•œ 데이터λ₯Ό λ°μ΄ν„°λ² μ΄μŠ€μ— μ‚½μž…ν•  수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.
    • 예λ₯Ό λ“€μ–΄, ν•œκΈ€ 데이터λ₯Ό μ‚½μž…ν•˜λ €λ©΄:
      INSERT INTO test (content) VALUES ('ν…ŒμŠ€νŠΈ 데이터');
      
  • 이 λ°©λ²•μœΌλ‘œ UTF-8 섀정을 μ μš©ν•˜λ©΄ ν•œκΈ€ 데이터λ₯Ό MySQL λ°μ΄ν„°λ² μ΄μŠ€μ— 문제 없이 μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.