LINUX.ORG.RU

Проблема с русской раскладкой UTF8 в mysql 5.0.81, slackware 12.2


0

0

Система руссифицирована под utf8, mysql тоже.
Проблема: когда перехожу на русскую раскладку в консоли mysql, начинаються глюки.

Например ввожу:

mysql> ыыыыы, провожу курсором (с помощью стрелок) до упора в лево,
курсор останавливаеться на s, теперь веду до упора в право получаетсья:

myыыыыыыыыыы

В bash русский работает отлично, и данный глюк проявляеться
только в консоли mysql.
На латинице этих проблемм нет. Нагуглить удалось разве что

http://www.linux.org.ru/view-message.jsp?msgid=3600179, но lilo не трогал.

Много раз ковырял rc.font и rc.keymap, на данный момент они выглядят так:

rc.font:

#!/bin/sh
#
# This selects your default screen font from among the ones in
# /usr/share/kbd/consolefonts.
#

unicode_start LatArCyrHeb-16
for i in 1 2 3 4 5 6;do
echo -ne "\033%G" >/dev/tty$i
done
#setfont -v

rc.keymap:

#!/bin/sh
# Load the keyboard map. More maps are in /usr/share/kbd/keymaps.
if [ -x /usr/bin/loadkeys ]; then
/usr/bin/loadkeys /usr/share/kbd/keymaps/i386/qwerty/ru-utf.map.gz

# /usr/bin/loadkeys ru4.map
# /usr/bin/dumpkeys -c koi8-r | loadkeys --unicode
fi


От этой проблемы, мой мозг на полимеры распадаеться :-)
Как-то так. Заранее спасибо.

★★★★

Ответ на: комментарий от ZloySergant

Вот вывод locale -a:
http://text20.ru/1369948

locale.alias:
http://text20.ru/1370040


my.cnf:

[client]
#password = your_password
port = 3306
socket = /var/run/mysql/mysql.sock
default-character-set= utf8



# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port = 3306
socket = /var/run/mysql/mysql.sock
skip-locking
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
character-set-server=utf8
collation-server=utf8_general_ci
init-connect = "set names utf8"

server-id = 1



skip-federated


[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[isamchk]
key_buffer = 8M
sort_buffer_size = 8M

[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout


fero ★★★★
() автор топика

аналогичный глюк, ноги у него растут от того, что mysql считает один юникодный символ - двумя неюникодными. почему - хз. подозреваю что mysql-client неюникодный сам по себе.

Komintern ★★★★★
()
Ответ на: комментарий от Lumi

ldd /usr/bin/mysql | grep readline //ничего не вывел, поэтому
ldd /usr/bin/mysql:
linux-gate.so.1 => (0xffffe000)
libncurses.so.5 => /lib/libncurses.so.5 (0xb807d000)
libmysqlclient.so.15 => /usr/lib/mysql/libmysqlclient.so.15 (0xb7f3a000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0xb7f08000)
libnsl.so.1 => /lib/libnsl.so.1 (0xb7ef0000)
libm.so.6 => /lib/libm.so.6 (0xb7eca000)
libssl.so.0 => /usr/lib/libssl.so.0 (0xb7e88000)
libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0xb7d4b000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7d37000)
libc.so.6 => /lib/libc.so.6 (0xb7beb000)
libdl.so.2 => /lib/libdl.so.2 (0xb7be7000)
/lib/ld-linux.so.2 (0xb80dd000)


И еще, кой что обнаружил, не знаю поможит ли это:
/usr/bin/mysql_client_test: unknown variable 'default-character-set=utf8'

тоже говорит если вписать в my.cnf:

default-character-set= koi8r или
default-character-set= cp1251 или
default-character-set= latin1...

Выходит я my.cnf не правильно оформил? Если да, то как
правильно?


fero ★★★★
() автор топика
Ответ на: комментарий от fero

Правильно строчку будет default-character-set=utf8
записать в [mysql] раздел файла my.cnf

fero ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.