Ошибка установки MySQL
Пытаюсь установить на OpenServer 6, ручная установка, делаю по инструкции, Дамп базы заливается, но при попытке открыть сайт одна и та же ошибка:
Exception: SQLSTATE[42000]: Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER' in line 118 of file ~D:\OSPanel\home\mv.loc\core\database.class.php
114 if(!$sql_mode && self::$registry -> getInitialVersion() < 2.4) 115 $sql_mode = "NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"; 116 117 if($sql_mode) 118 self::$pdo -> query("SET `sql_mode`='".$sql_mode."'"); 119 } 120 121 //Sets local time zone if defined 122 if(self::$engine == "mysql" && $time_zone = self::$registry -> getSetting("TimeZone"))
Попробуйте в файле config/setup.php изменить настройку DbMode, уберите значение NO_AUTO_CREATE_USER
'DbMode' => 'NO_ENGINE_SUBSTITUTION'
Спасибо, да это помогло, правда вход в админку, сразу не попал, в .env ввел предложеный ключ и попал в админку
Да, первая ошибка устраняется, с помощью удаления NO_AUTO_CREATE_USER, хотя не понимаю, почему это нельзя было пофиксить в новой версии, далее чредом вываливается следующая ошибка, в базе ни одной таблицы php 8.2
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mv_loc.pages' doesn't exist
Дело в том что опция NO_AUTO_CREATE_USER нужна не для всех серверов и вынесена в настройки, поэтому она вместе с ядром не обновляется, а устанавливается в конфигах индивидуально.
Вторая ошибка говорит о том, что у вас нет в БД таблицы pages, которая идет с изначальной установкой. Загрузите MySQL дамп из папки userfiles/database и ошибка должна исчезнуть.
Здравствуйте, да базу загрузил, ошибка исчезла, но опять же при импорте выводит предупреждения о сопоставлении, я создал базу utf8mb4_unicode_ci, как понимаю сама база имеет отличия, про которые у вас ни слова
_https://postimg.cc/8J7WwzvJ
делал вроде все по инструкции, установил через композер, прописал настройки базы в .env, перезагрузил сервер, но нигде при этом не сказано, что при таком способе надо ещё и базу импортировать, в ручном способе там да. Второй момент, в админке, в профиле указан русский язык, а на сайте, ссылки Models-Routes-Views ведут на документацию на английском языке mv-framework.com а не на mv-framework.ru, в профиле вроде же указан нужный язык...
Да, сделал ещё раз через композер, вроде все нормально ссылки на документацию по-русски, там есть свои особенности установки на OpenServer 6, там нужна папка .osp, без неё не будет работать домен, т.к. к нему привязывается версия PHP, с другой стороны композер не будет устанавливать, если папка не пустая, в итоге приходиться заходить через консоль в папку проекту, перемещать папку .osp, запускать композер, возвращать папку, править .env и setup.php, после этих танцев, инициализировать базу composer mv:database и после этого устанавливать язык composer mv:region -- ru и только тогда требует уже установить пароль на админку. Но вопрос по базе остается, перед всеми этими действиями база была создана, вопрос кодировки и сопоставления? А также самой базы(MySql-8.2(сейчас на ней), MariaDB-11.2)?
Кодировку MySQL ставьте более универсальную: utf8mb4_unicode_ci
Вот тут подробно об этом написано https://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci
Дык ее и ставлю, вопрос, та база ваша, которая импортируется она имеет utf8mb3_general_ci. Пока не добрался до миграций, но нельзя импортировать базы через миграции, как это сделано в ларавел?
Миграции в MV представлены в упрощенном виде, на добавление таблиц и полей их не надо создавать, только исполнять.
База в кодировке utf-8 так что сервер ее примет.