MySQL 1366 - Incorrect string value:錯誤
- 錯誤
- 如何發生
- 發生原因:
- 解決方法
- 第一種嘗試
- 第二種嘗試
錯誤
如何發生
??在給MySQL添加數據的時候發生了下面的錯誤
insert into sys_dept values(100, 0, '0', '若依科技', 0, '若依', '15888888888', 'ry@qq.com', '0', '0', 'admin', sysdate(), '', null)
> 1366 - Incorrect string value: '\xE8\x8B\xA5\xE4\xBE\x9D...' for column 'dept_name' at row 1
> 時間: 0.002s
發生原因:
??無法正確存儲中文字符,這通常是由于字符集配置不完整導致的
解決方法
第一種嘗試
??直接復制粘貼下面的代碼就行
記得將數據庫名換成你的數據庫名稱
ALTER DATABASE 數據庫名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
set character_set_database = utf8mb4
set character_set_server = utf8mb4
set character_set_results = utf8mb4
set character_set_connection= utf8mb4
set character_set_client = utf8mb4
第二種嘗試
??打開 my.ini配置
我默認的是這樣的:
[mysql]
default-character-set=utf8
[mysqld]
basedir=D:\MySQL\mysql-5.7.18-winx64
datadir=D:\MySQL\mysql-5.7.18-winx64\data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
secure_file_priv=default-time_zone = '+8:00'
后面我改成這樣就成功了:
[client]
#default-character-set=utf8mb4
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[mysql]
default-character-set=utf8mb4[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
basedir=D:\MySQL\mysql-5.7.18-winx64
datadir=D:\MySQL\mysql-5.7.18-winx64\data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
secure_file_priv=
default-time_zone='+8:00'
max_connections=200
innodb_buffer_pool_size=1G
log-error=mysql-error.log