Какую кодировку выбрать в phpmyadmin
Перейти к содержимому

Какую кодировку выбрать в phpmyadmin

  • автор:

Laragon и phpMyAdmin – Как заставить использовать utf8generalci место latin1swedishci

Для того чтобы наша база данных по умолчанию имела кодировку utf8_general_ci, необходимо не много подправить файл my.ini. Для этого перейти в Laragon-> Menu > MySQL > my.ini как указано ниже:

как открыть файл my.ini в Laragon

Далее добавляем в конец параметров [mysqld] данные строки:

collation_server = utf8_general_ci character_set_server = utf8

Обновление от 2019-12-03

С не давнего времени правильно использовать кодировку utf8mb4_unicode_ci.

По этому правильно будет добавить:

collation_server = utf8mb4_unicode_ci character_set_server = utf8mb4

С кодировкой utf8mb4_unicode_ci будет таким:

[client] #password=your_password port=3306 socket=/tmp/mysql.sock [mysqld] collation_server = utf8mb4_unicode_ci character_set_server = utf8mb4 port=3306 socket=/tmp/mysql.sock key_buffer_size=256M max_allowed_packet=512M table_open_cache=256 sort_buffer_size=1M read_buffer_size=1M read_rnd_buffer_size=4M myisam_sort_buffer_size=64M thread_cache_size=8 secure-file-priv="" explicit_defaults_for_timestamp=1 datadir= "C:/__Laragon/data/mysql" [mysqldump] quick max_allowed_packet=512M

С кодировкой utf8_general_ci файл my.ini должен быть таким:

[client] #password=your_password port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 socket=/tmp/mysql.sock key_buffer_size=256M max_allowed_packet=512M table_open_cache=256 sort_buffer_size=1M read_buffer_size=1M read_rnd_buffer_size=4M myisam_sort_buffer_size=64M thread_cache_size=8 collation_server = utf8_general_ci character_set_server = utf8 secure-file-priv="" explicit_defaults_for_timestamp=1 datadir= "E:/laragon/data/mysql" [mysqldump] quick max_allowed_packet=512M

Теперь сохраняем файл, и перезапускаем Laragon.

Стоит отметить что теперь и при создании баз данных в phpMyAdmin, кодировка по умолчанию будет так же utf8_general_ci:

Делаем phpMyAdmin удобнее

Все мы прекрасно узнаем стандартный вид окна PMA выборки из таблицы:

Внимательному взгляду будет заметно, что значительную часть строки с данными занимают кнопки с действиями «изменить», «копировать», «удалить». Что в общем-то довольно неудобно и расточительно.

Хотя PMA в стандартной комплектации дает нам совсем немного возможностей для кастомизации, однако, как мы знаем, мы можем вовсе отключить эти кнопки.

А для тех кто не знает — в корне PMA есть файл «config.inc.php», а если его нет, то точно должен быть «config.sample.inc.php», который надо скопировать или переименовать в «config.inc.php». В этом файле надо где-нибудь вставить строчку

Теперь выглядит вроде лучше:

Но. Все-таки эти кнопочки бывают нужны, особенно галочка и кнопочка «удалить». И тут опять мы можем воспользоваться родными настройками PMA и вместо «RowActionsLinks» поменять другой параметр в «config.inc.php» (точнее добавить строку, потому что в стандартном «config.inc.php» такой параметр отсутствует:

Теперь есть кнопочки-иконки без текста^

Места они стали занимать меньше, но все равно как-то много для таких небольших иконок. К тому же вместо того чтобы жаться к левому краю при любом размере окна браузера, они норовят расползаться вслед за шириной таблицы. Это не очень правильно.

И вот после многих лет бездумного взирания на это безобразие, я решил его поправить. И поделиться тут как это сделать. Придется совсем немного покопаться в коде PMA, но совсем чуть-чуть. Сразу предупреждаю, что все исправления тестировались только на PMA версии 5.1.0.

Так как указанные кнопочки по умолчанию не имеют никакого специфического css-класса, нам надо его добавить. Кнопочки эти создаются в файле «\templates\display\results\checkbox_and_links.twig». Просто добавляем наш класс (в данном случае «n_chl_width», назовите как угодно) каждому тэгу «» в этом файле — не ошибетесь. Например строку

Класс мы добавили. Теперь его надо прописать где-нибудь в css-файле. Практически все стили PMA (ну кроме библиотечных) хранятся в файле «\themes\pmahomme\css\theme.css» (вместо «pmahomme» может быть название другой темы, видимо, если используется нестандартная). Но этот файл в версии 5.1 является скомпилированным из очень большого количества всяких scss, причем как PMA, так и сторонних. Разбираться из чего он там собран и собирать его заново, править какой-либо из стандартных scss или сам уже собранный «theme.css» мне показалось неправильным и излишним. Правильнее было бы сделать свой стилевой файл. Я назвал его немудрённо «custom.css» и положил в корень PMA. Осталось его подключить и ключи у нас в кармане. Сделаем это в файле «\templates\header.twig», где подключаются все остальные стилевые файлы. Просто вставляем строчку после подключения «printview.css»:

>custom.css?>">

Теперь мы можем настраивать довольно много всего, несмотря на то что PMA не любит добавлять специфические классы к различным элементам. Например, добавив в «custom.css» такой код:

 .n_chl_width

мы делаем наши кнопочки маленькими и со статическим размером в 18px:

Но для лучшего визуального выделения таблицы с данными на довольно плохо читаемом экране PMA я решил добавить вот такой код:

 .n_chl_width < width : 18px; padding-left : 0 !important; padding-right : 0 !important; background-color : #CCCCCC; >.table_results > tbody > tr > td:nth-child(5) < border-left : 2px solid black; >.table_results > tbody > tr > td:last-child < border-right : 2px solid black; >.table_results > tbody > tr:first-child > td:nth-child(n+5) < border-top : 2px solid black; >.table_results > tbody > tr:last-child > td:nth-child(n+5) < border-bottom : 2px solid black; >.table_results > tbody > tr > td:nth-child(n+5):not(:last-child)

И теперь наша табличка читается вполне приемлемо:

При желании в «custom.css» теперь можно менять довольно много во внешнем виде PMA. А при необходимости всегда можно добавить специфические классы к нужным элементам в каком-нибудь twig в папке «template».

Надеюсь, кому-нибудь будет полезна такая небольшая доделка PMA.

Всем хорошего настроения.

Какую кодировку выбрать в phpmyadmin

Какую кодировку выбрать для базы чтобы можно было сохранять строки на любом языке и не парить себе мозг?

Добавил модель, передаю post данные с кириллицей, save() отрабатывает, но латиница в базу попадает, а от кириллицы пустое место. боюсь предположить, что будет если кто-то напишет на арабском, китайском или хинди. Что делать?

  • Вопрос задан более трёх лет назад
  • 2435 просмотров

Простой 8 комментариев

sim3x

a_u_sinitsin

a_u_sinitsin

a_u_sinitsin

a_u_sinitsin

SerafimArts

Стоит везде выставить utf8mb4_unicode_ci (работает точнее при сортироваках и проч.) или utf8mb4_general_ci (чуть быстрее работает, крайне незначительно, так что имеет смысл именно первый вариант).

Основы работы в phpMyAdmin

PhpMyAdmin (PMA) — это программа для работы с базами данных. Подробно о всех возможностях PMA можно почитать в официальной документации проекта.

Ниже мы рассмотрим наиболее частые операции, выполняемые с помощью phpMyAdmin.

Зайти в PMA можно тремя способами:

  • По ссылке вида servername.timeweb.ru/pma/, где servername — имя сервера, на котором расположен ваш аккаунт. Посмотреть имя сервера можно на главной странице панели управления в блоке «Информация о сервере». Для авторизации понадобится указать имя пользователя базы данных (совпадает с названием базы данных) и пароль доступа к БД.
  • По ссылке phpMyAdmin, расположенной под именем нужной базы данных в разделе панели управления «Базы данных MySQL». При входе нужно ввести пароль для выбранной базы данных.
  • По ссылке phpMyAdmin в блоке «Полный доступ», если этот переключатель включен. В этом случае вы получите доступ сразу ко всем базам данных аккаунта, а не к одной конкретной.

Импорт базы данных

Самые популярные действия с базами данных на хостинге — это импорт и экспорт.

Импортирование базы данных — это загрузка сохраненной на локальном компьютере базы данных на сервер.

Чтобы осуществить импорт базы данных, необходимо выполнить следующие действия:

  1. В области слева выберите необходимую базу данных (должен раскрыться список таблиц базы данных).
  2. Перейдите на закладку «Импорт» в меню PMA.
  3. Загрузите импортируемый файл (дамп базы данных), нажав на кнопку «Выберите файл» и указав файл на локальном компьютере.
  4. Выберите кодировку, формат и проверьте другие настройки импорта (можно оставить по умолчанию).
  5. Нажмите кнопку «Вперед», и дамп будет импортирован в базу данных.

При загрузке дампов баз данных размером более 1000 Мб могут наблюдаться проблемы. В случае, если ваш дамп имеет больший размер, вы можете выполнить импорт через командную строку с помощью подключения по SSH.

Экспорт базы данных

Экспортирование базы данных — это создание резервной копии (дампа) базы данных и ее загрузка на локальный компьютер.

Чтобы осуществить быстрый экспорт базы данных, выполните следующее:

  1. В области слева выберите необходимую базу данных (должен раскрыться список таблиц базы данных).
  2. Перейдите на вкладку «Экспорт» в меню PMA.
  3. Нажмите кнопку «Вперед», и файл дампа базы данных сохранится на локальный компьютер.

Экспорт отдельных таблиц

Если требуется выполнить экспорт только отдельных таблиц, войдите в phpMyAdmin и выполните следующее.

  1. В области слева выберите необходимую базу данных (должен раскрыться список таблиц базы данных).
  2. Отметьте галочками нужные таблицы для экспорта.
  3. Внизу страницы в выпадающем списке «С отмеченными:» выберите пункт «Экспорт».
  4. На следующей странице убедитесь, что выбран формат SQL, и нажмите на кнопку «Вперед». Дамп будет сохранен на ваш компьютер.

Изменение кодировки базы и всех таблиц

Изменить кодировку базы данных можно с помощью инструментов PHPMyAdmin.

Например, чтобы установить по умолчанию кодировку UTF-8, выполните следующее:

1. Перейдите в phpMyAdmin.

2. Выберите нужную базу в списке баз слева.

3. Перейдите в раздел Операции / Operations.

4. В блоке Сравнение / Collation выберите utf8_general_ci.

5. Отметьте галочками оба пункта.

6. Нажмите кнопку Вперед / Go.

Выполнение SQL-запросов

Для выполнения SQL-запроса выберите базу данных из меню слева и перейдите на вкладку «SQL». В поле запроса введите команду и нажмите «Вперед» для ее выполнения.

Определение текущей кодировки

Чтобы узнать кодировку базы данных, выполните следующий SQL-запрос:

Изменение кодировки базы данных

Чтобы изменить кодировку базы данных с помощью SQL-запроса, выполните запрос ниже, заменив «cp1251» на нужную вам кодировку:

Обратите внимание, что данный SQL-запрос не изменит кодировку таблиц базы данных!

Изменение кодировки таблиц

Для смены кодировки таблиц используйте запросы ниже, заменив ‘cp1251’ на нужную вам кодировку:

Настройка MySQL — кодировка utf8 / cp1251 / windows-1251

Установка всего программного обеспечения как MySQL, так и прочих пакетов (PHP, Phpmyadmin) была произведена на самом начальном этапе, — если помните, делали мы это командой: apt-get install apache2 php5 php5-mysql mysql-server phpmyadmin — см. подробнее->>>.

На какую процедуру пришлось убить больше всего времени при настройке MySQL, так это настройка кодировки. При извлечении информации из базы средствами PHP русские слова отображаются как вопросительные знаки — . Здесь существует проблема с кодировкой, так как загружаемая MySQL из репозитория Linux (Ubuntu 13.04) имеет кодировку UTF8 вперемешку с latin1, таким образом, любая из кодировок (cp1251 или utf8) при извлечении из MySQL будет отображаться коряво.

Если вам необходимо настроить кодировку cp1251, то первый способ, который легко отыскать в интернете и дающий решение данной проблемы – это просто в скрипт PHP, который у вас извлекает контент из базы, добавить вот такую строку:

mysql_query(«SET NAMES cp1251»);

Если не устраивает вариант, предусматривающий правку скритов, то необходимо править конфигурационный файл MySQL, в этой связи, прежде чем был найден ответ, была перепробована масса всяких вариантов, большинство из которых, вероятно, подходили для ранних версий Linux Ubuntu, но они не работают для UBUNTU 13.04.

default-character-set=cp1251 – не работает

Будем править конфигурационный файл my.cnf, который находится в каталоге /etc/mysql/my.cnf. Причем, если просто в my.cnf (путь — /etc/mysql/my.cnf ) [mysqld] заменить на такой вариант:
[mysqld]
default-character-set=cp1251

сохраняемся и перегружаемся:
service mysql restart

тогда при подключении к phpmyadmin мы получаем вот такую ошибку:
#2002 Невозможно подключиться к серверу MySQL

Взять за основу вышеописанный вариант и пробовать решить проблему по устранению возникающей ошибки, — скорее всего, такие действия не принесут положительного результата.

Рабочая конфигурация my.cnf MySQL

Выбираем другой алгоритм. Для начала входим в MySQL через phpmyadmin. На домашней странице в phpmyadmin видим заголовок «Основные настройки», в подразделе «Сопоставление кодировки соединения с MySQL» выбираем UTF8_UNICODE_ci.

Далее проверим конфигурацию MySQL. В phpmyadmin выберем вкладку SQL и пошлем туда запрос вида:
SHOW VARIABLES LIKE ‘char%’;
в ответ имеем:

Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database latin1
character_set_filesystem binary
character_set_results utf8
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

Видим в приведенной конфигурации в двух местах значения latin1, которые необходимо исправить в зависимости от того, какая кодировка вам нужна. Допустим, мы будем заменять на cp1251, поэтому в конфигурационном файле my.cnf, который находится в каталоге /etc/mysql/my.cnf, ищем модуль [mysqld] и меняем его на:

[mysqld] skip-character-set-client-handshake character_set_client=cp1251

character_set_server=cp1251

Делаем рестарт MySQL (перезагрузку необходимо делать всегда после внесения каких-либо изменений): service mysql restart

В phpmyadmin снова посылаем SQL — запрос вида:
SHOW VARIABLES LIKE ‘char%’;

Получаем ответ, исходя из которого видим, что наша конфигурация MySQL поменялась:

Variable_name Value
character_set_client utf8
character_set_connection utf8
character_set_database cp1251
character_set_filesystem binary
character_set_results utf8
character_set_server cp1251
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

У нас latin1 поменялись на cp1251, соответственно сразу после приведения конфигурации MySQL к указанному виду, из базы у нас извлекается все корректно, наконец-то видим русские слова. Вот пример нашего текста, извлекаемого из БД MySQL.

От кодировки БД MySQL теперь переходим к настройкам кодировки сообщений, которые у нас с сайта отправляются на электронную почту, см. PHP отправка на e-mail >>>

Какую кодировку выставить таблице?

Всем привет, скажите вот я написал программу которая работает с Базой Данных mySQL, так вот когда тестировал на Денвере всё было нормально и по русски, но когда перебрался на хостинг все русские слова стали . хотя кодировку не менял. Так вот может надо другую кодировку поставить чтобы русский поддерживался? У меня стоит cp1250_general_ci

Кто-то удалил свой ответ, а вместе с ним ушли в горы мои коментарии.

Вы сказали, что в самой базе на хостинге у вас отображаются знаки вопросов. В phpMyAdmin на хостинге у вас, как я понял, доступ есть. Поэтому создаете БД, «Сравнение» выбираете utf8_general_ci. Дамп локальной базы не упаковываете! Заходим на закладку «Экспорт», снимаем внизу, если стоит, галочку «Сохранить как файл» и жмём «Ок». Копируем в появившемся поле весь дамп, идём в phpMyAdmin на хостинге. Выбираем созданную базу, далее на закладку «SQL», вставляем из буфера сохраненный дамп и жмем «Ок». Вот, как бы и всё. Если база на локалке большая, то возможно придётся переносить каждую таблицу по отдельности. И хорошо бы еще до снятия дампа привести все поля в «Сравнение» utf8_general_ci.

Related posts:

  1. Daz studio как экспортировать модель с ригом
  2. Почему процессор не загружается на 100
  3. Как добавить канал в телеграмме на телефоне
  4. Где можно приобрести платежную карту в москве

Как изменить кодировку базы данных MySQL?

Если информация из базы данных на сайте отображается некорректно, то может потребоваться изменить кодировку всех таблиц базы данных, рассмотрим как это сделать. MySQL может содержать сотни таблиц, поэтому рекомендуем для оперативной смены кодировки выполнить следующие действия:

1. Откройте phpMyAdmin и выберите из списка нужную базу данных.

Панель phpMyAdmin

2. Откройте раздел SQL. (В столбце сравнение показана кодировка сопоставления)

Таблицы баз данных

3. Скопируйте запрос, представленный ниже, вставьте его в окно SQL-запроса и измените «нужная_кодировка», «сопоставление» и «имя_базы» на кодировку, которая вам требуется, кодировку сопоставления и имя базы соответственно. Далее нажмите кнопку «Вперед».

SELECT CONCAT(‘ALTER TABLE `’, t.`TABLE_SCHEMA`, ‘`.`’, t.`TABLE_NAME`, ‘` CONVERT TO CHARACTER SET нужная_кодировка COLLATE сопоставление;’) as sqlcode
FROM `information_schema`.`TABLES` t
WHERE 1
AND t.`TABLE_SCHEMA` = ‘имя_базы’
ORDER BY 1

Окно запроса

4. В ответе появится список запросов для смены кодировки каждой таблицы. Во вкладке параметры выберите пункт «Полные тексты» и нажмите «Вперед».

Список запросов для смены кодировки БД

5. Скопируйте запросы, которые появились.

Полный список запросов для смены кодировки БД

6. Вернитесь в раздел SQL и вставьте в окно запроса скопированные данные.

Окно запроса

7. Нажмите кнопку «Вперед». Кодировка во всех таблицах базы данных успешно изменена.

Завершение смены кодировки БД

Ознакомиться с выгодной линейкой тарифов виртуального хостинга можно на нашем сайте.

МИР Visa MasterCard СБП Безналичный платеж

Все способы

© 2009–2024 «HANDYHOST.RU» 8-800-505-68-01

  • Услуги
  • Хостинг сайтов
  • Домены
  • Конструктор сайтов
  • Linux VPS / Windows VPS
  • Выделенные серверы
  • SSL сертификаты
  • Клиентам
  • Контакты
  • О компании
  • Акции
  • Оборудование
  • Партнерская программа
  • Поддержка
  • Способы оплаты
  • Регламент
  • Документы
  • Справка

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *