我跑了
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
输出是
+--------------------------+-------------------+
| 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 |
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+--------------------------+-------------------+
有人可以解释这些设置的确切用法吗?我的理解如下:
- character_set_client:告诉客户端用于查询编码的编码
- character_set_connection:服务器用于将查询转换为的编码
- character_set_database:用于在表中存储数据的编码
- character_set_server:如果未指定 character_set_connection,则默认编码
- character_set_results:结果以这种格式编码并返回。
为什么需要这么多配置?客户端和服务器配置不能始终保持相同吗?
我正在尝试执行由于字符串中存在 ' 而失败的插入查询。是否建议对其进行转义或对查询进行编码?另外,如何在golang中对其进行编码?