Дедик :: Общие сведения | Будь защищен | Сделай сам! | Свой хостинг | Support: Черный список
Панели управления :: WHM/cPanel | Plesk | DirectAdmin | VHCS
Датацентры :: Черный список
Дружественные ресурсы :: Заходы по словам
О проекте Дедик.ру
Обсуждение статей
Панели управления :: WHM/cPanel | Plesk | DirectAdmin | VHCS
Датацентры :: Черный список
Дружественные ресурсы :: Заходы по словам
О проекте Дедик.ру
Обсуждение статей

Довольно больно
Довольно больной вопрос особенно при переезде с 4.0 на 4.1+. A как быть если пользователю нужна кодировка отличная от utf8 и не лучше ли по дефолту хранить данные в базе в utf8, а отдавать в utf8?
Если пользовате
Если пользователю нужна другая кодировка, то он ее может указать явно.
Хранить данные в UTF8, а отдавать в другой кодировке - лишняя трата ресурсов на перекодировку.
utf8
Этот сайт на utf8, что произойдет с ним, если добавить эти строчки "init-connect="SET NAMES utf8"
skip-character-set-client-handshake" в конфиги mysql? Я думаю вместо русских букв появятся одни вопросы. Ошибаюсь?
Ошибаетесь, это
Ошибаетесь, этот сайт на самом деле в utf8, точнее, его база данных.
Кодировку в utf выполняет движок, это его особенность.
Ошибаетесь...
При использовании init-connect и выполнении запросов юзеров с провами ALL либо рутом... все равно выдаются одни вопросы...
Так что однозначного решения не нашлось пока...
До этого времени пока в скрипте после коннекта базы надо сделать
SET @@local.character_set_client=utf8
SET @@local.character_set_results=utf8
SET @@local.character_set_connection=utf8
SET @@local.character_set_results=utf8
и всё... это альтернатива init-connect
Если в точности
Если в точности следовать инструкциям - вопросов небудет. Возможно Вы что-то упустили.
Установил муску
Установил мускул 5.0.18_win...yj тут нет файла my.cnf! Есть my.ini в которые я внес эти изменения - опять вопросики! Что не так
Сервер с Windows? Эт
Сервер с Windows? Эти инструкции для *nix серверов.
1
ну все просто. тебе нужно просто копировать файл с /usr/ports/databases/mysql51-server/work/mysql-5.1.16-beta/support-files/my-medium.cnf(my-small.cnf, lagre на твой выбор) в папку /etc с переименуя в my.cnf
потом перезапускам сервер
/usr/local/etc/rc.d/mysql-server stop
и включаем
/usr/local/etc/rc.d/mysql-server start
все, можно работать.
Решено... все про
Решено... все проблемы решены... если что обращайтесь... расскажу...
Проблема было в следубщем... Мускл был поставлен изначально с латин1... со старого сервера все данные залиты туда... соответственно получилось что все данные в латин1... при переходе на нормальныую русскую сп1251 возникли трудности с перекодировкой нескольких десятков ГБ БД... есть скрипт... сырой... но рабочий... по созданию бекапов для тех кто не может забекапить в правильно кодировке...
iconv в помощь
iconv в помощь
skip-character-set-client-handshake - mysqldump
в принципе
skip-character-set-client-handshake=yes
default-character-set=utf8
решает почти все проблеммы - но в ситуации когда у вас есть хосты в отличной от сз1251 кодировке пользователи не могут юзать mysqldump - потому как он кодировку устанавливает именно через client-handshake так что указание в параметрах кодировки не помогает - конечно можно "полечить" mysqldump - но ведь все затевалось только затем чтобы не компилить клиентские либы - вот такая бяка. Надо бы написать авторам чтобы кодировка указаная как параметр mysqldump устанавливалась не через "рукопожатие" а командой mysql. Но я на вражеском переписываться не умею.
что-б было все п
что-б было все правильно и не лезть в настройки mysqld достаточно после коннекта с базой сделать такие запросы:
mysqli_query($active_db,'SET NAMES "UTF8"');
mysqli_query($active_db,"SET collation_connection='utf8_general_ci'");
mysqli_query($active_db,"SET collation_server='utf8_general_ci'");
mysqli_query($active_db,"SET character_set_client='utf8'");
mysqli_query($active_db,"SET character_set_connection='utf8'");
mysqli_query($active_db,"SET character_set_results='utf8'");
mysqli_query($active_db,"SET character_set_server='utf8'");
если utf8 то ее подставить
MySQL и русская кодировка WINDOWS-1251
Зачем все эти сложности.MYSQL установлен со стандартной кодировкой latin1,стандартная установка.А базы создаются уже в какой потребуется.Раньше тоже мучался а после двух месяцев мучений нашел оптимальный вариант.И больше вопросиков не возникает.Правда все сайты а их 5 штук в локальной сети,на одном апаче и одном mysql.
Это если создав
Это если создавать, а если базы уже существуют?
re
latin1 самая неверная кодировка для национальных баз данных. В будущем будет море проблем.
Всё работает ка
Всё работает как часы
РЕСПЕКТ!!!
Очень благодарен!!!
У меня Windows-хостинг, причем БД с UTF-8.
Ничего не помогало, пока не попробовал вот это:
mysqli_query($active_db,'SET NAMES "UTF8"');
mysqli_query($active_db,"SET collation_connection='utf8_general_ci'");
mysqli_query($active_db,"SET collation_server='utf8_general_ci'");
mysqli_query($active_db,"SET character_set_client='utf8'");
mysqli_query($active_db,"SET character_set_connection='utf8'");
mysqli_query($active_db,"SET character_set_results='utf8'");
mysqli_query($active_db,"SET character_set_server='utf8'");
Еще раз большое спасибо!
Спасибо, челове
Спасибо, человеку!!!
mysqli_query($active_db,'SET NAMES "UTF8"');
mysqli_query($active_db,"SET collation_connection='utf8_general_ci'");
mysqli_query($active_db,"SET collation_server='utf8_general_ci'");
mysqli_query($active_db,"SET character_set_client='utf8'");
mysqli_query($active_db,"SET character_set_connection='utf8'");
mysqli_query($active_db,"SET character_set_results='utf8'");
mysqli_query($active_db,"SET character_set_server='utf8'");
Воркает!
Спасибо, челове
БОЛЬШОЕ СПАСИБО
снова вопросики
а как быть, если дамп в 1251, а всеравно вопросики?
Кодировка дампа
Кодировка дампа должна быть равной кодировки mysql. Или переведите mysql в 1251 или дамп в нужную кодировку.
Кодировка БД
Я извиняюсь .. может я чего то упустил ... но у меня вопрос всё по той же теме ...
При заносе информации в БД у меня в самой БД высвечиваются вопросики ... и при изъятии их оттуда тоже вопросики... подскажите пожалуйста ещё раз ЧТО ДЕЛАТЬ???
Кодировки на БД и таблицы и поля ставил одни и те же ... WINdows-1251 или KOI8R ничего не помогает ...
Если ничего не
Если ничего не помогает - обращайтесь к нашим экспертам
на mysqli_query($active_db,
на
mysqli_query($active_db,'SET NAMES "UTF8"');
выдаёт Warning: mysqli_query() expects parameter 1 to be mysqli, string given in /home/embedder/public_html/megajohn/myprojects/xls2php2sql-upload.php on line 24
А чего он ожидает то ?
Выдаёт
Выдаёт следущее Ж:(((
Fatal error: Call to undefined function: mysqli_query() in z:\home\forum\www\forum\con.php on line 18
Кодировка
1. Внес все как написано:
В раздел [mysqld] необходимо добавить следующее:
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
init-connect="SET NAMES utf8"
skip-character-set-client-handshake
2. перезапустил mysql сервер.
И всё РАБОТАЕТ!!!
Спасибо ОГРОМНОЕ!!!
P.S. не забывайте перезапускать mysql сервер
На linux-е работает без строки skip-character-set-client-handshake
На Windows-e проблема была только в ней
Огромное
Огромное спасибо- кратко и точно!
Вах... Работает.. под Win.
Отлично. Спокойно перешёл с 4.0.12 на 5.0.41 под WinXP. Причём даже базы (а их у меня 30штук, MyISAM и InnoDB) не пришлось дампить. Просто базы с папками (за исключением mysql) переложил в /data/. И главное не забыть переложить ibdata1 в корень /data/. Всё работает наура. Совет всем, переходить на 5-ку, вроде и работает побыстрее. У меня с 4-кой были большие проблемы с полнотекстным поиском (MATCH() AGAINST ()>X ), работал через раз, поставил 5-ку, всё как рукой сняло.
Спасибо
Спасибо
Супер!!!
Супер!!!
Пааасиииибааа!!!!!!
Раааботает!!!!!! Ураааа..... спасиб вам ребята - всех вас люблю =) заходите на avtozebra.ru
Была проблема
Была проблема на 4 версии под виндой, в пакете денвер
утилита mysql чихала на my.conf. Запускал с ключами
\usr\local\mysql4\bin>mysql -u user_name --character-sets-dir=../share/c
harsets --default-character-set=utf8 -D database < database.sql
Этот параметер обязателен
--character-sets-dir, иначае сылается на корень c:\mysql
Что-то не получается...
Почитал эту тему. Сделал так как тут предлагают - не работает. :( Теперь по порядку. БД создана с дефолтами utf8. Таблицы соответственно тоже. После коннекта в скрипте прописал вот это:
$this->query ( "SET NAMES 'utf8'" );
$this->query ( "SET character_set_client = 'utf8'");
$this->query ( "SET character_set_connection = 'utf8'");
$this->query ( "SET character_set_database = 'utf8'");
$this->query ( "SET character_set_results = 'utf8'");
$this->query ( "SET character_set_server = 'utf8'");
Изменяю какое-то поле в веб-приложении, нажимаю сохранить. В результате в базу пишется абракадабра и, естественно, она же и отображается.
Пример: тест
Подскажите, где я не прав и как это можно победить?
Обращайтесь к
Обращайтесь к нашим экспертам
Помогите пожалуйста с правами
Здравствуйте уважаемая администрация
"Сегодня мы рассмотрим, что нужно написать в конфигурационном файле /etc/my.cnf для того, чтобы настроить mysql стандартной сборки на работу с кодировкой utf8 по умолчанию без всякой перекомпиляции."
А как получить права на изменение этого файла?
Панель управления Plesk
через ssh не изменяются
Вам нужно иметь
Вам нужно иметь права root для изменения этого файла