Pour MySQLchinoisproblème de code tronqué (le mien est Ubuntu System), j'ai lu beaucoup de solutions sur Internet et fait de nombreux détours au cours du processus, j'ai donc pensé à écrire un article basé sur ma propre solution à partager avec des amis dans le besoin, donc cet article présente principalement comment résoudre le téléchargement d'Ubuntu les informations pertinentes sur le problème MySQL chinois tronqué. Les amis qui en ont besoin peuvent s'y référer
Découvrez le problème
J'ai étudié Django récemment lors de l'utilisation de pour insérer des données en conjonction avec des données MySQL, j'ai rencontré le problème suivant :
/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 250
Modifier l'encodage de la base de données
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)
Afficher les résultats modifiés
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)
Il n'y aura aucun problème pour continuer à insérer pour le moment
Ce serait formidable si les paramètres de l'auteur comme celui-ci sont invalides après le redémarrage de MySQL 🎜>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)
Continuez à chercher ! pour les autres méthodes
Puis redémarrez MySQL :
sudo gedit /etc/mysql/my.cnf
Si vous pouvez redémarrer, vérifiez à nouveau l'encodage de la base de données :
[client] default-character-set=utf8 [mysqld] default-character-set=utf8 [mysql] default-character-set=utf8
/etc/init.d/mysql start
<🎜. >
Lorsque j'ai redémarré le service MySQL, j'ai constaté qu'il était dans l'état d'attentemysql> 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)
(PS : je suppose qu'un blocage ou quelque chose s'est produit à ce moment-là, exécutez : <🎜). >
va
mysql -u root -p
J'ai essayé de nombreuses méthodes (redémarrer, restaurer .Vérifiez l'état de mysql :
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
sudo /etc/init.d/mysql status
Trouvez le fichier /var/log/mysql/error.logmysql respawn/post-start, (post-start) process 55665
Continuez à trouver la solution pour
Réponse :
[ mysqld ] Suivant
est modifié. àERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Bien sûr, la base de données précédemment créée doit être recréée. T_T
Parce quel'encodage des données créé avant l'affichage est toujours latin1default-character-set=utf8'
character_set_server=utf8
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!