Изменить параметры сортировки по умолчанию в WampServer

790
yaylitzis

Я только что установил WampServer (x64), чтобы установить сайт WordPress. В localhost/phpmyadmin/сервере соединение сортировки есть utf8mb4_general_ci.

Когда я создал новую базу данных, я определил, что сортировка будет «utf8_general_ci»

Тем не менее, когда я установил WordPress, я оглянулся в своей БД, и все таблицы в сопоставлении utf8mb4_unicode_520_ci

Почему это произошло?

Я попытался и в C:\wamp64\bin\mysql\mysql5.7.14\my.iniфайле под тегом [mysqld]я добавил:

character-set-server=utf8  collation-server=utf8_general_ci 

Затем я перезапустил Wampserver, я установил WordPress с нуля, и снова все таблицы имеют сортировку utf8mb4_unicode_520_ci

Как я могу решить это?

0
Если это [сопоставление соединения с сервером] (http://dev.mysql.com/doc/refman/5.7/en/charset-connection.html), оно может отличаться от сопоставления, которое фактически используется в фоновом режиме. По какой причине вы хотите сделать это изменение? Что касается вашего подхода, это правильно. Вы можете [проверить] (https://mediatemple.net/community/products/dv/204403914/default-mysql-character-set-and-collation) отдельную БД или таблицу на предмет ее фактической сортировки. [Это] (https://core.trac.wordpress.org/ticket/32105) сделает `utf8mb4_unicode_520_ci` лучшим выбором? Seth 7 лет назад 0
Проблема началась, когда я попытался перенести сайт на сервер, который не поддерживал utf8mb4 .. Поэтому они сказали мне изменить сопоставление на utf8_general .. yaylitzis 7 лет назад 0
Но это совершенно другая проблема, чем вы описали? Если вы выполняли миграцию, проверяли ли вы свои файлы SQL на наличие фиксированной настройки параметров сортировки? Seth 7 лет назад 0
Я новичок, поэтому я боюсь, что не знаю, что именно вы имеете в виду ... что мне делать; yaylitzis 7 лет назад 0
Для вашей миграции вы, вероятно, экспортировали существующую базу данных в какой-либо форме, используя phpMyAdmin или mysqldump? Правильно? В этом случае вы получили файл `.sql`, который является обычным текстовым файлом. Вы можете просто заменить строки, в которых упоминается utf8mb4_unicode_520_ci, на строки с любым набором символов или сопоставлением, которые вы хотите, или отбросить их все вместе, чтобы использовать сервер по умолчанию. Хотя это может повлечь за собой некоторый риск относительно того, что у вас есть в вашей БД, в зависимости от того, что это такое. Seth 7 лет назад 0
ну это точно я сделал! Однако теперь, когда я создаю новый сайт, я хотел избежать этого .. Чтобы экспортировать свою БД, я делаю это из phpmyadmin .. yaylitzis 7 лет назад 0

1 ответ на вопрос

0
Seth

Вы можете определить параметры сортировки в нескольких местах. Как обсуждалось в комментариях, ваша версия сервера MySQL поддерживает настройку сопоставления на уровне соединения.

Чтобы увидеть, когда вы изменили правильную конфигурацию, вы можете запустить простую CREATE TABLEинструкцию, подобную следующей, и проверить, какую кодировку и параметры сортировки она будет использовать.

CREATE TABLE testSettings( Dummy TEXT ); 

Вы не указали версию WP, но вы можете попробовать установить charи collationиспользовать, используя файл конфигурации [ 2 ]. В текущей версии WP (4.7.1) кажется, что по умолчанию установлено charsetзначение, utf8а не определено значение collation. Вам придется проверять всякий раз, когда установка параметров сортировки в конфигурации препятствует изменению.

Но даже если вы сделаете это, я не уверен, что это сохранит вашу шкуру, поскольку ( по крайней мере, начиная с 2015 года ) WP тихо обновляет параметры сортировки utf8mb4. Если этой информации недостаточно, вы также можете посмотреть на эту закрытую ошибку, которая может пролить свет на решение.

Способ обойти обновление будет использовать более старую версию MySQL. Но, глядя на это, я бы предложил просто поменять сервис, на котором работает ваша БД. Если они не поддерживают, utfmb4кажется, что они работают на сервере MySQL, который старше, чем 5.5.3, который был выпущен в марте 2010 года . Что означало бы, что они не обновляли свое программное обеспечение более 6 лет.