Софт-Архив

Mysql Русский Язык img-1

Mysql Русский Язык

Рейтинг: 5.0/5.0 (1830 проголосовавших)

Категория: Windows: Базы данных

Описание

Mysql - русский язык

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору При сортировке данных не выводятся русские слова, а выводится всякая фигня. Изменил my.ini но всё равно ничего не происходит

basedir=C:/server/mysql

#set-variable=key_buffer=16M

character-sets-dir=C:/server/mysql/share/charsets

language=C:/server/mysql/share/russian

default-character-set=cp1251

[WinMySQLadmin]

Server=C:/server/mysql/bin/mysqld-nt.exe

password=password

При попытке что либо сделать появляется это.

c:\server\mysql\bin\mysqladmin: File 'C:\mysql\\share\charsets\?.conf' not found

(Errcode: 2)

c:\server\mysql\bin\mysqladmin: Character set '#14' is not a compiled character

set and is not specified in the 'C:\mysql\\share\charsets\Index' file

Странно то что у мя Mysql установлен в папке C:\server\mysql а он ищет в папке C:\mysql

Подскажите мош я что то неправильно сделал.

Другие статьи, обзоры программ, новости

Re: MySQL - Java (проблема с русским языком) - Базы данных

Здравствуйте fidget, Вы писали:

F>Здравствуйте theswordfish, Вы писали:

T>>Не знаете почему при сохранении строковой переменной String (Java) в переменную VARCHAR(100) (MySQL) русский язык не сохраняеться, вместо этого какая-то билиберда. Что делать?

F>MySQL ничего не меняет, что ты в базу положил, тоу тебя и будет храниться.

F>проверь что ты добавляешь и как это потом выводишь (и чем).

Спасибо за столь "обстоятельный" ответ.

Может он и старается хранить, то что в него "кладут", да не очень понятно получается. К примеру когда добавляешь стручку к таблице через mysql.exe как то:

а потом делаешь SELECT все в полном порядке, но когда выбираешь эту строчку програмно, через jdbc:mysql, то русский текст теряеться. Странность вся в том, что если добавляешь русский через тот же jdbc (а он кстати взят с сайта mysql) он в БД не храниться как русский, а как билиберда, как я и говорил, пытаюсь прочитать — опять чушь. Только драйвер ODBC работает. Записывает русский в БД. mysql.exe на SELECT выводит разную чушь (точно на русский не похоже), а когда прочитываешь эту чушь через jdbc:mysql опять получаешь русский язык.

Так, что говорить, что с MySQL все ОК, что-то рановато, пока уважаемые коллеги не решим, что все-таки происходит.

Может попытаться взять MySQL с русского зеркала? А то я сцапал с английского, русский не работал. Но, что-то я сомневаюсь, что какая-нибудь разница будет.

Re[3]: MySQL & Java (проблема с русским языком)

Вопросы по MySQL

MySQL - многопользовательский, многопоточный сервер базы данных SQL. SQL (Structured Query Language) - наиболее популярный и стандартизированный язык баз данных в мире, который упрощает доступ к данным. Например, Вы можете использовать SQL для хранения и быстрого доступа к информации о клиенте Вашего сайта. MySQL также быстр и достаточно гибок при использовании его для хранения файлов и изображений. Главные цели MySQL - скорость, устойчивость и легкость в использовании.

Для начала работы с базой данных, Вам необходимо заказать логин и пароль доступа к сервер MySQL, заказать можно по e-mail

Проверьте правильно ли Вы ввели те данные что Вам выслали

PHP - это удобный язык программирования, предназначенный для встраивания в web-страницы. На Вашем сервере PHP собран с поддержкой соединений с MySQL. Ниже приводится фрагмент php-документа.

Дополнительную информацию по использованию функций для работы с MySQL из php можно получить по следующему URL:

Да, можно. Для этого Вам необходимо написать письмо на тех отдел и попросить открыть доступ для Вас с других машин

Вопрос с поддержкой русского возникает при попытке сортировать данные на русском языке в базе. Для того чтобы сортировка работала корректно необходимо помещать данные в базу в кодировке koi8-u

Для этого Вы можете воспользоваться phpMyAdmin.

Это - некоммерческое приложение, написанное на языке PHP, реализующее довольно удобный и функциональный Web-интерфейс к базе данных Mysql.

Скачать phpMyAdmin можно двумя путями:

  • С сайта разработчика. При этом учтите, что версии данного продукта постоянно обновляются. Поэтому в различных дистрибутивах возможно наличие некоторого числа ошибок.
Мы рассмотрим вариант установки:
  • создайте подкаталог в каталоге www и закройте доступ к нему паролем
  • Распакуйте архив в какой либо каталог (елси не выходит распаковать попробуйте 7-Zip )
  • отредактируйте файл config.inc.php:

ОБЯЗАТЕЛЬНО ОПРЕДЕЛИТЕ ПЕРЕМЕННУЮ $cfg['Servers'][$i]['only_db']. Туда поместите название Вашей базы данных, которое соответствует Вашему техническому логину! Если это не будет сделано, программа phpMyAdmin будет пытаться выполнить команду show databases, а у Вас нет для этого прав, так как Вы можете работать только со своей базой данных, а получать доступ к списку чужих баз данных, соответственно, не можете.

Ниже приводится список полезных ссылок на сайты посвященные MySQL.

Проблема с кодировкой

Проблема с кодировкой. Вместо русских букв кракозябры. Проблема с кодировкой. Вместо русских букв кракозябры.

Данная "проблема" ждёт пользователей MySQL версии 4.1 и выше, которые никогда не пытались читать документацию.

Первым делом нужно проверить, что установлено нужное сопоставление (collation) для текстовых полей в таблице. Именно в установленной кодировке хранятся данные. Если для полей выставлена "неправильная" кодировка, то измените её. В phpMyAdmin это можно сделать при редактировании столбца таблицы, выбрав нужное значение из списка Сравнений. Для русский символов это может быть, например, cp1251_general_ci (основная регистронезависимая cp1251). Для UTF-8 - utf8_general_ci.

Теперь нужно выставить кодировку соединения с сервером. В MySQL есть выражение SET NAMES, предназначенное специально для этого:

[sql]SET NAMES 'cp1251';[/sql]

Выполнить данный запрос нужно сразу после подключения к серверу.

[php]<?php

mysql_connect('server','user', 'pasw') or die('Connection error.');

mysql_query("SET NAMES 'cp1251'");[/php]

После этого все данные будут приходить в установленной кодировке. Кодировку соединения можно менять:

[sql]SET NAMES 'utf8';[/sql]

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

База mysql не признает русский язык

База mysql не признает русский язык

Никита Радионов

Переименовываю "название" в wordpress с английского в русский - появляются вопросы (только то, что связно с майскл, в другом все ок)

так вот, если в майскл переименовать то тоже появляются вопросы. Что делать?

поменял базы майскла на утф8 - ничего не поменялось

С кодировкой определись в базе

Лайт Ягами

При подключении к MySQL первым запросом выполняй SET NAMES 'utf8'

Если у тебя готовый какой-то движок - поищи в исходниках вызов функции mysql_connect и после него сунь mysql_query("SET NAMES 'utf8'");

Кодировку надо поменять, на поддерживающую кириллицу UTF-8

иностранцам кириллица не нужна, поэтому и кодировка стоит для них)

Павел Ихалайнен

Еще хорошо помогает index шаблон в utf-8 перевести и в мета указать utf-8 кодировку для браузера да и база в utf-8 должна быть. Можно конечно в htaccess добавить строчку AddDefaultCharset utf-8 первой строкой например

Владислав Бирюков

Скрнфигурируй базу через MySQL Server Instance Config Wizard. Он устанавливается вместе с СУБД. Укажи там кодировку вместо latin1 либо cp1251 либо utf8

Проблема с utf8

Pusichka Новичок

Всем доброго времени суток!

Отчаялся искать в интернете ответ, поэтому пишу здесь)

Создана utf8 таблица в бд:

require_once $_SERVER['DOCUMENT_ROOT']."/php/mysql_connect_private.php";

@mysql_connect_private();

`password` VARCHAR(40),

`name` VARCHAR(30),

`surname` VARCHAR(40),

`avatar` VARCHAR(50),

PRIMARY KEY (`user_id`)) ENGINE=MyISAM CHARACTER SET=utf8";

mysql_query($string) or die(mysql_error());

mysql_query("ALTER TABLE `users` ADD INDEX (`user_id`)") or die(mysql_error());

mysql_query("ALTER TABLE `users` ADD INDEX (`email`)") or die(mysql_error());

В таблицу делаем инъекцию при регистрации пользователя:

$string = "INSERT INTO `users` (`user_id`, `email`, `password`, `name`, `surname`) VALUES ('0', ";

$string .= "'".mysql_real_escape_string($_REQUEST['email'])."', ";

$string .= "'".mysql_real_escape_string(md5($_REQUEST['password']))."', ";

$string .= "'".mysql_real_escape_string($_REQUEST['name'])."', ";

$string .= "'".mysql_real_escape_string($_REQUEST['surname'])."')";

echo $string;

mysql_query($string) or die(mysql_error());

INSERT INTO `users` (`user_id`, `email`, `password`, `name`, `surname`) VALUES ('0', 'test10@test.com ', '098f6bcd4621d373cade4e832627b4f6', 'Mihail', 'Баженов')

- Проверял и русский и английский языки.

В итоге в БД фамилия на русском языке не заносится - пусто.

Если вручную через phpmyadmin заношу фамилию, то все нормально.

В итоге, что делать?) Понимаю, что ответ, скорее всего, прост, но уже убил час на поиск решения и тщетно.

Кстати, комментарии по правильному оформлению тоже приветствуются) Может что не так написано с точки черния защиты/правильно оформления. Спасибо!

П.С. Подключение к базе:

function mysql_connect_private()

$addr = "localhost";

$user = "____";

$pass = "____";

$db = "____";

mysql_query ("set character_set_client='utf8'");

mysql_query ("set character_set_connection='utf8'");

mysql_query ("set character_set_results='utf8'");

mysql_query ("set character_set_database='utf8'");

mysql_query ("set collation_connection='utf8_bin'");

Отображается при вытаскивании из базы вручную внесенная фамилия на русском тоже иероглифами.

Также, в процессе передачи данных к скриптам везде проверил работающую с mysql кодировку:

$z = mysql_fetch_array(mysql_query("SHOW VARIABLES LIKE 'character_set_database'"));

<meta http-equiv="Content-Type" content="text/html"; charset="utf8">

Почему вместо русских букв выводятся знаки вопроса, данные из mysql через odbc?

Почему вместо русских букв выводятся знаки вопроса, данные из mysql через odbc?

Ситуация в следующем, в диалплан хочу вывести данные на русском языке из базы mysql через odbc.

Asterisk 1.8.12.2 на debian 6, mysql 5.5.35-0+wheezy1 кодировка UTF-8 Unicode (utf8). База данных из которой тяну данные сравнение с utf8_general_ci, в таблице аналогичная кодировка. В debian установлена так же utf8.

С настройками проблем нет:

/etc/odbc.ini:

/etc/asterisk/res_odbc.conf:

Сама функция в /etc/asterisk/func_odbc.conf:

При использовании функции в диалплане:

Вместо русского слова появляются знаки вопроса. Английский текс выдает корректно.

Решил, что это проблема идет в связки сервера, астериска. Попробовал решить.

Самое интересное, что на этом сервере, был сайт на русском языке, как я загрузил его на сервер вместо русского так же были знаки вопроса. Решил эту проблемы подавлением следующих строк в код php подсоединения к базе mysql:

Естественно и в этот раз копать в эту сторону.

В результате поиска в гугле добавил в файл /etc/mysql/my.cnf следующие строки:

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

Сейчас на сервере по кодировкам, после редактирования настроек mysql имею следующую картину:

Но текст из БД по odbc по прежнему идет знаками вопроса.

В файле /etc/locale.gen:

/etc/asterisk/extensions.conf:

Проблемы с русской кодировкой в MySQL

Проблема с русским в MySQL

Проблемы с кодировкой в MySQL

phpMyAdmin: вопросики в базе MySQL

Не отображается русский язык в MySQL

Рассмотрим ситуацию, когда вам нужно восстановить сайт из дампа MySQL .

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

Для начала проверим кодировку файла.

Для этого откроем его в любом HTML редакторе (или notepad) и в меню выберем «Сохранить как» (Save as).

Посмотрите в нижнюю строчку – там указанна текущая кодировка фала. Если MySQL должен работать с другой кодировкой или на сайте, например, используется UTF-8, то просто пересохраните файл в нужной кодировке и все. Не делайте это с использованием Word'а .

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

Если в дампе только вопросики и русского там не видно, то продолжать нет смысла – дамп битый. И нужно сделать еще один, возможно, с другими настройками в phpMyAdmin.

После создания базы MySQL (см. демо ролик, как создать базу MySQL ) переходим в phpMyAdmin, вкладка «Операции» (цифра 1 на картинке) и первым делом меняем дефольтную кодировку базы latin1_swedish (цифра 2) на подходящую нам. Например, на русскую - cp1251_general_cs.

Получаем подтверждение, что «MySQL запрос был выполнен», желающие могут выполнить это с помощью запроса ALERT DATABASE (он виден на экране) и переходим к следующему этапу – вкладке «Импорт» (3).

Но прежде чем импортировать файл с дампом в MySQL нам нужно объяснить базе, на каком языке с ним работать. Поэтому мы выбираем (4) cp1251 (это Кириллица) и только после этого переходим непосредственно к импорту (5).

Если все в порядке и не произошел, например, обрыв связи или ваш дамп не содержит запрещенной к использованию в MySQL последовательности символов, то мы получаем очередное подтверждение, что «Импорт успешно завершен» и теперь в нашей базе есть русский.

При этом вас не должно смущать, если после завершения операции в phpMyAdmin'е в окошке появится другая кодировка. Она не имеет отношения к делу, т.к. она появляется после .

Существует правда еще одна причина, по которой, даже если у вас в базе есть русский, то на сайте вы все равно получите вопросики: Нужно объяснить коду php что в БД русский.

Для этого найдите, где в вашем коде где происходит подключение к БД и перед коннектом добавьте строчку mysql_query('SET NAMES cp1251');

Ну, или mysql_query("SET NAMES utf8 COLATE utf8_general_ci"); если вы собираетесь использовать UTF-8. В этом случае на всех предыдущих этапах вы тоже должны были указать UTF-8.

Если результат коннекта к БД записывается в переменную, например, $result, то перед самим коннектом в эту же переменную запишите:

$result = mysql_query('SET NAMES cp1251');

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