MySQL Database에 이모티콘을 넣으려고 하자 입력이 되지 않는 문제가 발생했다.
//해당 문장을 입력
INSERT INTO `guest` VALUES (3, 'Hello','😇💙',NOW(),'박우현');
//아래와 같이 출력되며 정상적으로 입력이 실핼 X
mysql> INSERT INTO `guest` VALUES (3, 'Hello','��',NOW(),'박우현');
'>
blob
으로 바꾸어 보았으나 정상적으로 동작하지 않았다.//기존
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| title | varchar(30) | NO | | NULL | |
| description | text | YES | | NULL | |
| created | datetime | NO | | NULL | |
| author | varchar(30) | YES | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
ALTER TABLE guest MODIFY description blob;
//변경 후
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| title | varchar(30) | NO | | NULL | |
| description | blob | YES | | NULL | |
| created | datetime | NO | | NULL | |
| author | varchar(30) | YES | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
ALTER DATABASE guest CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
my.cnf
, 또는 my.ini
의 설정을 변경하라고 해서 찾아보았지만 해당 파일들이 존재하지 않았다.//cmd창에 입력
mysqld --help --verbose
//결과
...
Default options are read from the following files in the given order:
C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf C:\Program Files\MySQL\MySQL Server 8.0\my.ini C:\Program Files\MySQL\MySQL Server 8.0\my.cnf
...
//해당 디렉토리를 모두 찾아보았으나 아무런 파일도 존재하지 않았다.
show variables like 'c%'
를 이용해 utf8임을 확인하였다.mysql> show variables like 'c%';
+----------------------------------------------+---------------------------------------------------------+
| Variable_name | Value |
+----------------------------------------------+---------------------------------------------------------+
| caching_sha2_password_auto_generate_rsa_keys | ON |
| caching_sha2_password_private_key_path | private_key.pem |
| caching_sha2_password_public_key_path | public_key.pem |
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 8.0\share\charsets\ |
| check_proxy_users | OFF |
| collation_connection | utf8mb4_0900_ai_ci |
| collation_database | utf8mb4_unicode_ci |
| collation_server | utf8mb4_0900_ai_ci |
| completion_type | NO_CHAIN |
| concurrent_insert | AUTO |
| connect_timeout | 10 |
| core_file | OFF |
| create_admin_listener_thread | OFF |
| cte_max_recursion_depth | 1000 |
+----------------------------------------------+---------------------------------------------------------+
콘솔에 ��와 같이 출력되는 것으로 보아 콘솔의 문제인가 싶다.
mysql> INSERT INTO `guest` VALUES (3, 'Hello','��',NOW(),'박우현');
아시는 고수님들 도와주세요...ㅠㅠ