我试图通过my.cnf更改我们的 MySQL 的字符集,但失败了。我添加了下面列出的字符集设置:
# The MySQL server
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
# ------------- MYSQL CHARSETS --------------
character_set_system = utf8
character_set_server = utf8
character_set_results = utf8
character_set_database = utf8
character_set_connection = utf8
character_set_client = utf8
collation_connection = utf8_general_ci
collation_database = utf8_general_ci
collation_server = utf8_general_ci
Run Code Online (Sandbox Code Playgroud)
当我启用这些时,MySQL 无法启动。我怎样才能确保一切都默认为 utf8 - 总是?
更新
仍然有一些地方在成为 …
我突然在我的生产站点上遇到一个查询,没有返回结果但也没有产生错误,它只是返回零行。来发现一个子查询产生了以下错误:
错误代码:1690。BIGINT UNSIGNED 值超出“( s
. subscriber_count
- ( s
. subscribed_count
- s
. unsubscribed_count
))”中的范围
我的数据集看起来像:
我遇到了/sf/answers/824663381/并没有真正尝试过,因为我想了解为什么会产生此错误。一个评论提到了否定表达,但在我的情况下unsubscribed_count
没有小于subscribed_count
.
谁能帮我理解为什么我会看到这个错误?