Laravel 中正确字符和排序规则的 MySQL 设置
Posted
技术标签:
【中文标题】Laravel 中正确字符和排序规则的 MySQL 设置【英文标题】:MySQL setting for correct character and collation in Laravel 【发布时间】:2018-03-20 19:17:16 【问题描述】:我正在使用外部数据库(只读)和本地数据库(测试系统)。
所以每次从外部数据库获取数据时,我都会收到以下异常警告,默认为“�”这样的空字符。
在我的情况下我应该如何修改数据库设置?谢谢。
(3/3) 查询异常
SQLSTATE[HY000]: 一般错误: 1366 不正确的字符串值: '\xF8peri ...' for column 'customer_name' at row 1 (SQL: insert into customers
(id
, customer_name
, @987654325 @) 值 (10008, Ol**n N***n K***t�pe AS, n***n@k***t.no))
外部数据库
character_set_client = utf8
character_set_connection = latin1
character_set_database = utf8
character_set_filesystem = 二进制
character_set_results = latin1
character_set_server = utf8
character_set_system = utf8
collation_connection = utf8_general_ci
collation_database = latin1_swedish_ci
collation_server = latin1_swedish_ci
服务器mysql 5.1版。
内部数据库
character_set_client = utf8mb4
character_set_connection = utf8mb4
character_set_database = utf8mb4
character_set_filesystem = 二进制
character_set_results = utf8mb4
character_set_server = latin1
character_set_system = utf8
collation_connection = utf8mb4_general_ci
collation_database = utf8mb4_unicode_ci
collation_server = latin1_swedish_ci
服务器 MySQL 版本 5.7.19
测试系统环境: Win10, WAMPSERVER(MySQL v5.7.19, php v7.1.9)
【问题讨论】:
复制***.com/questions/46640891/… 【参考方案1】:\xF8 是一种 unicode,它不适用于 latin 和 latin_swedish 字符集。您必须将字符集更新为 UTF8 或 UTF8mb4 并将排序规则更新为 utf8_general_ci 或 utf8mb4_general_ci
【讨论】:
谢谢.. 我可以在哪里更新服务器?只是外部数据库还是两者兼而有之?在我的情况下,我无法更新外部数据库,它只能读取。 最好两个都更新,但你可以先尝试配置内部数据库。在 my.cnf 中配置它。 dev.mysql.com/doc/refman/5.7/en/option-files.html以上是关于Laravel 中正确字符和排序规则的 MySQL 设置的主要内容,如果未能解决你的问题,请参考以下文章