2
좀 DBS 혼자 MySQL 버젼 스탠드에 포트에 있습니다 5.0.18는 는 Windows7 64 비트에서 실행하고 나는 붙어하고 문제가있어. 여기데이터 너무 오래는
ERROR 1406 (22001): Data too long for column 'nam' at row 1
MCVE의 SQL 스크립트 :
SET NAMES utf8;
DROP TABLE IF EXISTS `tab`;
CREATE TABLE `tab` (`ix` INT default 0,`nam` VARCHAR(1024) default '') DEFAULT CHARSET=utf8;
INSERT INTO `tab` VALUES (1,'motorček');
INSERT INTO `tab` VALUES (2,'motorcek');
SELECT * FROM `tab`;
그리고 여기 출력 :
mysql> SET NAMES utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> DROP TABLE IF EXISTS `tab`;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE `tab` (`ix` INT default 0,`nam` VARCHAR(1024) default '') DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO `tab` VALUES (1,'motorček');
ERROR 1406 (22001): Data too long for column 'nam' at row 1
mysql> INSERT INTO `tab` VALUES (2,'motorcek');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM `tab`;
+------+----------+
| ix | nam |
+------+----------+
| 2 | motorcek |
+------+----------+
1 row in set (0.00 sec)
내가 varchar
에 어떤 국가/유니 코드 문자를 삽입하려고하면 나는 오류가 발생했습니다 보시다시피, 국가 별 문자 č
E8h
이 없습니다.
- How to make MySQL handle UTF-8 properly
- “Data too long for column” - why?
- Error Code: 1406. Data too long for column - MySQL
하지만 그들은을 위해 그 일의에서이 문제를 (해결책을 해결하지 않습니다
나는 이러한 품질 관리을 알고있다 이).
이 문제는 단일 문자 열에 대해서도 존재합니다. 크기는 상관없이 VARCHAR
입니다. 이제 유일한 해결책은 국가 별 문자를 ASCII으로 변경하는 것입니다.하지만 그렇게하지 않으면 정보를 잃어 버릴 수 있습니다.
아무런 효과없이 다양한 문자 세트 utf8, ucs2, latin1
을 사용해 보았습니다.
나는 다른 답변의 일부로 제안한 STRICT_TRANS_TABLES
을 삭제하려고했지만 그 중 하나에도 영향을 미치지 않으며 문자열 크기는 필요한 것보다 몇 배 더 큽니다.
누구에게도 단서가 있습니까?
@echo off
bin\mysqld --defaults-file=bin\my.ini --standalone --console --wait_timeout=2147483 --interactive_timeout=2147483
if errorlevel 1 goto error
goto finish
:error
echo.
echo MySQL could not be started
pause
:finish
쿼리는 콘솔 내부에서 수행되는이 cmd를 같이 시작 :이 MySQL의 서버 (설치되지 않은)가 cmd를이 시작되는 독립 것을 사실 함께 할 수있는 뭔가가있을 수 있습니다 :
잘@echo off
bin\mysql.exe -uroot -h127.0.0.1 -P3306
rem bin\mysql.exe -uroot -proot -h127.0.0.1 -P3306
당신은 업그레이드해야이 다른 문제가 그러나 나는 새로운 질문을하기로 결정! 5.0.18은 거의 12 세입니다. 5.1, 5.5, 5.6, 5.7 및 8.0에서 비 ASCII 문자 처리가 변경되었습니다. 이번에는 총알을 피한 자답을 보았습니다. –