MySQL중국어잘못된 코드 문제(저는 Ubuntu입니다) System), 인터넷에서 많은 솔루션을 읽고 그 과정에서 많은 우회를 했기 때문에 필요한 친구들과 공유하기 위해 나만의 솔루션을 기반으로 기사를 작성하려고 생각했기 때문에 이 기사에서는 Ubuntu 다운로드 해결 방법을 주로 소개합니다. MySQL 중국어 왜곡 코드 문제 관련 정보가 필요하신 분들은
문제 발견
Django 최근에 MySQL 데이터와 함께 데이터 삽입을 사용할 때 다음과 같은 문제가 발생했습니다.
/usr/local/lib/python2.7/dist-packages/Django-1.11.dev20170117002028-py2.7.egg /django/db/backends/mysql/base.py:109: Warning: Incorrect string value: '\xE6\x88\x90\xE5\x8A\x9F...' for column 'json' at row 1 return self.cursor.execute(query, args) [07/Feb/2017 12:15:21] "GET /index/ HTTP/1.1" 200 250MySQL 데이터베이스에 중국어를 삽입할 수 없습니다~! 🎜>
데이터베이스 인코딩 보기
mysql> show create database bangjob; +----------+--------------------------------------------------------------------+ | Database | Create Database | +----------+--------------------------------------------------------------------+ | bangjob | CREATE DATABASE `bangjob` /*!40100 DEFAULT CHARACTER SET latin1 */ | +----------+--------------------------------------------------------------------+ 1 row in set (0.00 sec)
mysql> show variables like'%char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)데이터베이스 인코딩 수정
mysql> set character_set_database=utf8; Query OK, 0 rows affected (0.00 sec) mysql> set character_set_server=utf8; Query OK, 0 rows affected (0.00 sec)수정된 결과 보기
mysql> show variables like'%char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)이때 계속 삽입하면 작동하지 않습니다.
작성자가 이렇게 변경했는데 MySQL을 다시 시작한 후 설정이 실패하면 좋을 것 같습니다! 🎜>
계속해서 다른 항목을 찾습니다.
sudo gedit /etc/mysql/my.cnfmy.cnf 파일의 해당 노드에 정보를 추가합니다.
[client] default-character-set=utf8 [mysqld] default-character-set=utf8 [mysql] default-character-set=utf8그런 다음 MySQL을 다시 시작합니다.
/etc/init.d/mysql start다시 시작할 수 있으면 데이터베이스 인코딩을 다시 확인하세요.
mysql> show variables like "%char%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.01 sec)
이런 경우라면 좋을 것 같습니다.
MySQL 서비스를 다시 시작할 때 발견되었습니다. 대기 상태였습니다(PS: 교착 상태 또는 문제가 발생한 것으로 추측). 이때 다음을 실행하면:
mysql -u root -p
, 예외는 발생합니다 :
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)인코딩을 변경하고 싶은데 왜 이렇게 어려운가요->->- >->->!!!이 문제를 해결하면서 시도해 봤습니다. 방법(재시작, 복구)이 많습니다...
sudo /etc/init.d/mysql statusmysql 상태 확인:
이러한 방법으로는 문제를 해결할 수 없습니다. 로그부터 시작하겠습니다... >
mysql respawn/post-start, (post-start) process 55665
/var/log/mysql/error.log 파일을 찾으세요
에 대한 솔루션을 찾으세요.
답변:
[ mysqld ] 변경 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
에서
드디어 MySQL을 다시 시작할 수 있으며 다시 시작한 후에도 설정된 인코딩이 계속 적용됩니다.
물론 이전에 생성된 데이터베이스를 다시 생성해야 합니다 T_Tdefault-character-set=utf8'
character_set_server=utf8
위 내용은 Ubuntu에서 MySQL의 중국어 왜곡 문자 문제에 대한 솔루션 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!