mysql устанавливает формат кодировки по умолчанию utf-8

база данных MySQL
mysql устанавливает формат кодировки по умолчанию utf-8

предисловие

  • mysql 5.7.20
  • Демо под mac os

После недавнего бездействия я хотел перейти в фоновый режим, поэтому установил базу данных mysql.В начале вход в mysql, создание пользователей, авторизация, создание баз данных, создание таблиц и т. д. шло гладко. вставка таблицы, я обнаружил, что mysql вставляет китайский язык. Было сообщено об ошибке, поэтому я искал решения в Интернете и обнаружил, что все/usr/local/mysql/support-filesнайти в каталогеmy-default.cnfилиmy.cnfфайл, странно ни один из этих файлов,

После некоторых операций я обнаружил, что мне нужно только создатьmy.cnfфайл на нем, затем перейдите к/etcТолько под каталогом

настроить

  • Создал в терминалеmy.cnf

    cd ~
    touch my.cnf
  • редактироватьmy.cnf

    open -a xcode my.cnf

    [client]
    default-character-set=utf8
    [mysqld]
    default-storage-engine=INNODB
    character-set-server=utf8
    collation-server=utf8_general_ci

  • переехатьmy.cnfприбыть/etcПод содержанием

    mv my.cnf /etc

Готово, не забудьте перезапустить службу mysql,系统偏好设置открытое дноMySql, проверьте после перезагрузки

/usr/local/mysql/bin/mysql -uwz -p

# 如果配置了.base_profile,那么输入 mysql -uroot -p 就行了
# 输入你的root账户密码

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.20 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

# 再次输入
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/local/mysql-5.7.20-macos10.12-x86_64/share/charsets/ |
+--------------------------+-----------------------------------------------------------+
8 rows in set (0.01 sec)

# 如果提示这样就说明可以了

если ваш/usr/local/mysql/support-filesесть один в папкеmy-default.cnfфайл, скопируйте его на рабочий стол и переименуйтеmy.cnf, и, наконец, тот же переход к/etcПод содержанием

Изменить формат кодировки текущего поля таблицы

После вышеописанной операции вы обнаружите, что китайский все равно не вставляете, тогда можно посмотреть состояние всех полей в текущей таблице

# 选中数据库
use test;
# 查看表字段状态
SHOW FULL COLUMNS FROM 'you table';

+----------+------------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
| Field    | Type             | Collation       | Null | Key | Default | Extra          | Privileges                      | Comment |
+----------+------------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
| id       | int(10) unsigned | NULL            | NO   | PRI | NULL    | auto_increment | select,insert,update,references |         |
| username | varchar(45)      | utf8_general_ci | NO   |     | NULL    |                | select,insert,update,references |         |
| password | varchar(45)      | utf8_general_ci | NO   |     | NULL    |                | select,insert,update,references |         |
+----------+------------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
3 rows in set (0.01 sec)

# 更改字段的编码格式
ALTER TABLE `test`.`table_user` CHANGE COLUMN `username` `username` VARCHAR(45) CHARACTER SET 'utf8_unicode_ci' NOT NULL ;

ALTER TABLE `test`.`table_user` CHANGE COLUMN `password` `password` VARCHAR(45) CHARACTER SET 'utf8_unicode_ci' NOT NULL ;

# 查看表字段状态
SHOW FULL COLUMNS FROM 'you table';

Если формат кодирования поляutf8_general_ciЕсли есть, не должно быть ошибки вставки, проверьте свой sql