• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Решено Проблема с БД

korino

Новичок
День добрый. Помогите пожалуйста решить проблему.
На хостинге текущий сайт требовалось заменить с локалки. Он по сути идентичный, но есть нюансы требующие замену.
Хостинг нджинкс , локальный -ксамп (мариядб вроде)

Проблема состоит в подключении новой БД.
Создал новую БД, пытаюсь импортировать... ничего не выходит.

У текущего, требующего замены - MyISAM utf8mb4_unicode_520_c

С какими параметрами тогда необходимо сделать экспорт с локалки и какие ещё заменять в блокноте?


Делал импорт с предварительной заменой utf8mb4_unicode_ci на utf8mb4_unicode_520_ci
импортирвоалось без проблем. НО!
Сайта по сути нет.... ни фона, ни картинок, кое-где текст и всё...
Так-же в сипанели, разделе отображения баз, показывает текущию с 0.00мб Тогда как в phpmyadmin она весит 9.8МБ!

значится эта правленая база как InnoDB. Ладно,экспортировал с поддержкой MYSQL40, импортировал. Результат на экране тот же, да ещё и кракозябры вместо русского.
В phpmyadmin на уже импортируемой БД вижу следующее - MyISAM latin1_swedish_ci
мне же нужно если я правильно понимаю, добиться MyISAM utf8mb4_unicode_520_ci

Пробовал экспортировать ту, что показываед шведский, дабы заменить через блокнот. да вот нет там его!
 

korino

Новичок
Нашёл решение для отображения картинок. Да вот кракозябры остались вместо текста((


Как в базе можно заменить
latin1_swedish_ci


так, чтобы читался русский??


PhpMyadmin в настройках ПЕРЕД созданием базы ставлю -utf8mb4_unicode_520_ci
Кодировка сервера - UTF-8 Unicode, при импорте выбираю конечно же UTF

Создаю БД, импортирую и получаю шведский о_О
 
Последнее редактирование:

qwer

Специалист
Местный
Нашёл решение для отображения картинок. Да вот кракозябры остались вместо текста((

Как в базе можно заменить
latin1_swedish_ci
так, чтобы читался русский??
PhpMyadmin в настройках ПЕРЕД созданием базы ставлю -utf8mb4_unicode_520_ci
Кодировка сервера - UTF-8 Unicode, при импорте выбираю конечно же UTF
Создаю БД, импортирую и получаю шведский о_О
А зачем вы создаёте utf8mb4_unicode_520_ci вместо utf8_general_ci ?
 

qwer

Специалист
Местный
Исходя из аналогии с первой версией сайта по БД. Она именно такая.
экспортировал с поддержкой MYSQL40, импортировал. Результат на экране тот же, да ещё и кракозябры вместо русского.
Правильным решением было бы обновить версию базы данных MySQL на текущую актуальную версию.
Так же, можно открыть дамп базы данных текстовым документом и массово поменять следующие значения:
utf8mb4_unicode_520_ci заменить на utf8_general_ci
utf8mb4
заменить на utf8
Как минимум, это должно исправить ваши кракозябры.

Когда создадите таблицу с utf8_general_ci, отпишитесь, осталась ли проблема.
 

korino

Новичок
Проблема не исчезнет если не изменить - latin1_swedish_ci
А блокноте его нет....


Хорошо.

Заменил utf8mb4 на utf8

кракозябры остались. Загвоздка видимо в latin1_swedish_ci


В Блокноте есть строчка - ENGINE=MyISAM DEFAULT CHARSET=latin1
Может что-то подставить под latin1 ? Вот только что? Ни general, ни general_ci не подходят. Ругаеться при импорте
 
Последнее редактирование:

qwer

Специалист
Местный
Проблема не исчезнет если не изменить - latin1_swedish_ci
А блокноте его нет....
Вы, вероятно, неправильно прочитали моё сообщение, объясню более подробно.
У текущего, требующего замены - MyISAM utf8mb4_unicode_520_c
С какими параметрами тогда необходимо сделать экспорт с локалки и какие ещё заменять в блокноте?
Делал импорт с предварительной заменой utf8mb4_unicode_ci на utf8mb4_unicode_520_ci
Экспортировал с поддержкой MYSQL40, импортировал. Результат на экране тот же, да ещё и кракозябры вместо русского.
В phpmyadmin на уже импортируемой БД вижу следующее - MyISAM latin1_swedish_ci
мне же нужно если я правильно понимаю, добиться MyISAM utf8mb4_unicode_520_ci
Что вам нужно:
Добиться кодировки utf8_general_ci вместо utf8mb4_unicode_520_ci
Обновить версию MySQL (текущая 5.5.23)


Какие шаги стоит предпринять:
Сохраните таблицу в текущей кодировке сервера utf8mb4_unicode_520_ci > Исправьте её на utf8_general_ci > Обновите версию MySQL
Далее, в phpMyAdmin импортируйте базу данных с кодировкой utf8_general_ci.
(Или можно работать напрямую в phpMyAdmin, но обязательно сделать бэкап!!!)

Это всё должно избавить от кракозябр и гемора с таблицей.
После проделанной работы, вы должны будете получить таблицу в кодировке MyISAM utf8_general_ci
После того как вы получите правильную таблицу, загружайте на локальный сервер.

К слову, существует легенда, что таблицы MyISAM на ровном месте отказываются работать....

Как выставить корректную кодировку
Запрос для конвертации базы:
Код:
ALTER TABLE `db_name`.`table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Запрос для конвертации таблиц базы данных:
Код:
SELECT CONCAT(  'ALTER TABLE `', t.`TABLE_SCHEMA` ,  '`.`', t.`TABLE_NAME` ,  '` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;' ) AS sqlcode

FROM  `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` =  'My_DB_for_convert'
ORDER BY 1
LIMIT 0 , 90
1. Вместо My_DB_for_convert вам необходимо указать имя своей базы данных.
2. Данный запрос будет работать в MySQL начиная с версии 5 и выше.
3. В случае с использованием утилиты phpMyAdmin всё проще простого, остается только скопировать данный запрос и вставить в форму SQL запроса.
 

korino

Новичок
Спасибо за совет. На всякий случай уточню.
Версия сервера: 10.0.29-MariaDB-cll-lve - MariaDB Server
Версия клиента базы данных: libmysql - 5.1.73
 

qwer

Специалист
Местный
Спасибо за совет. На всякий случай уточню.
Версия сервера: 10.0.29-MariaDB-cll-lve - MariaDB Server
Версия клиента базы данных: libmysql - 5.1.73
Насколько я помню, актуальная версия для MariaDB это 10.1
По-поводу библиотеки не подскажу, нужно понимать какое ПО установлено.

Так же, если не изменяет память, после выхода MySQL 5,6?, MariaDB больше не будет поддерживать все функции MySQL
Не знаю на сколько вам эта информация будет полезной. Просто решила проинформировать.

Вообще, если честно, очень странное положение, у вас и MySQL и MariaDB... Как-то многовато среды для создания и работы с базой данных всего лишь для работы с одним сайтом.
Вам стоит работать либо с MySQL, либо с MariaDB
Пользуйтесь MySQL, если он установлен на вашем сервере. Иначе, не зная особенностей работы с MySQL и особенности работы с MariaDB, у вас может возникнуть множество трудностей.
Возможно проблемы в таблицах возникают из-за этого.
Или из-за того, что сайт может быть старым и имел средненькую тех.поддержку.
В общем, нужно разбираться и смотреть.
Больше вряд ли смогу вам подсказать.
 
Последнее редактирование:

korino

Новичок
Пользуйтесь MySQL, если он установлен на вашем сервере. Иначе, не зная особенностей работы с MySQL и особенности работы с MariaDB, у вас может возникнуть множество трудностей.
Как я могу это реализовать? Указанная мною информация - это с того. что показывает phpmyadmin на хостинге.
Возможностей выбора я как-то не видел(
Дополнительно отписал тикеты в поддержку. но они как обычно, часа полтора на ответ тратят
В любом случае, qwer, спасибо!
 

qwer

Специалист
Местный

korino

Новичок
На локалке была доработка, проделанная не мной. Там был использован xamp.
Я правильно понимаю. Что тогда, необходимо проверить вид и версию базы ксама.
Если был там mysql, каким-то образом если возможно произвести миграцию на mariaDB.
С последующим экспортом
 

qwer

Специалист
Местный
На локалке была доработка, проделанная не мной. Там был использован xamp.
Я правильно понимаю. Что тогда, необходимо проверить вид и версию базы ксама.
Если был там mysql, каким-то образом если возможно произвести миграцию на mariaDB.
С последующим экспортом
Для простого экспорта-импорта таблиц - не обязательно менять, главное чтобы версии MySQL и MariaBD были совместимыми друг с другом.
Если нужно, почитайте тут. Вы увидите что может не работать в MySQL.
А вообще, пробуйте.
Надеюсь, всё получится.
 

korino

Новичок
Открыл экпортируемый файл из ксампа
Там - Версия сервера: 10.1.13-MariaDB
На хостинге- Версия сервера: 10.0.29-MariaDB-cll-lve - MariaDB Server

исходя из информации по - https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-compatibility/

Между 10.0 и 10.1 нет совместимости ? о_0

Может есть костыли какие-то?
 

qwer

Специалист
Местный
Открыл экпортируемый файл из ксампа
Там - Версия сервера: 10.1.13-MariaDB
На хостинге- Версия сервера: 10.0.29-MariaDB-cll-lve - MariaDB Server

исходя из информации по - https://mariadb.com/kb/en/mariadb/mariadb-vs-mysql-compatibility/

Между 10.0 и 10.1 нет совместимости ? о_0

Может есть костыли какие-то?
Зачем костыли, когда есть рабочее обновление? Обновите версию на хостинге и всё.
В данной статье представлена разница между MariaDB и MySQL, я об этом писала.
Да и там же написано: Also see Incompatibilities between MariaDB 10.0 and MySQL 5.6.
То есть, то что не работает в 10.0, так же остается в 10.1, только дополняется ещё некоторыми пунктами.
 

korino

Новичок
Тогда видимо это уже вопрос к хостингу. так-как в сипанели кроме выбора версии пчп я не вижу возможность выбора версии марии.
 

qwer

Специалист
Местный
Тогда видимо это уже вопрос к хостингу. так-как в сипанели кроме выбора версии пчп я не вижу возможность выбора версии марии.
Попробуйте поработать с разными версиями, если не получится, тогда уже обратитесь в тех.поддержку хостинга.
 
Сверху Снизу