Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибка при запуске консоли MySQL 5
 
 автор: Slavikrnd   (12.12.2006 в 19:46)   письмо автору
 
 

Установил mysql-5.0.27-win32.zip, ОС WinXP, по пунктам учебника "Самоучитель PHP 5" (при установке выбрал кодировку cp1251). Далее при запуске MySQL Command Line Client системном динамике короткий писк, и окно консоли само закрывается.
Запускаю командную строку Windows, запускаю из C:\mysql5\bin команду mysql -u root, в ответ сообщение:
mysql: character set 'cp1251' is not a compiled character set and is not specified in the 'c:\mysql\\share\charsets\Index.xml' file
Подскажите что делать?

   
 
 автор: cheops   (12.12.2006 в 22:37)   письмо автору
 
   для: Slavikrnd   (12.12.2006 в 19:46)
 

Отредактируйте конфигурационный файл my.ini таким образом, чтобы директива default-character-set присутствовала только в секции [mysqld] в других секциях, особенно в секции [mysql] её быть не должно.

   
 
 автор: Slavikrnd   (14.12.2006 в 12:27)   письмо автору
 
   для: cheops   (12.12.2006 в 22:37)
 

Опять проблемма! Не вводятся русские буквы и не вводится строка таблицы в поле DATETIME

Захожу в консоль MySQL предварительно запустив chcp 1251

Создал базу данных:
CREATE DATABASE forum;
USE forum;

Создал таблицу:
CREATE TABLE authors (
id_author INT(11) NOT NULL AUTO_INCREMENT,
name TINYTEXT,
passw TINYTEXT,
email TINYTEXT,
url TEXT,
icq TINYTEXT,
about TEXT,
photo TINYTEXT,
putdate DATETIME DEFAULT NULL,
lest_time DATETIME DEFAULT NULL,
themes INT (10) DEFAULT NULL,
statususer ENUM ('user','moderator','admin') NOT NULL DEFAULT 'user'
;)

добавляю строку в таблицу:
INSERT INTO authors VALUES (0, 'Maks', '123', 'maks@mail.ru',
'www.softtime.ru', '', 'программист', '', '', '', 0, 'user');

Пишет Ошибку:
ERROR 1406 (22001): Data too long for column 'about' at row 1

Заменяю русские буквы программист->programer:
INSERT INTO authors VALUES (0, 'Maks', '123', 'maks@mail.ru',
'www.softtime.ru', '', 'programer', '', '', '', 0, 'user');

Пишет Ошибку:
ERROR 1292 (22007): Incorrect datetime value: '' for column 'putdate' at row 1

   
 
 автор: cheops   (14.12.2006 в 14:12)   письмо автору
 
   для: Slavikrnd   (14.12.2006 в 12:27)
 

Поле putdate нужно заполнять либо нулевой датой "0000-00-00 0:00:00" или текущую дату, которую можно вставить при помощи функции NOW()
INSERT INTO authors VALUES (0, 'Maks', '123', 'maks@mail.ru', 
'www.softtime.ru', '', 'программист', '', NOW(), '', 0, 'user');

   
 
 автор: cheops   (14.12.2006 в 14:19)   письмо автору
 
   для: Slavikrnd   (14.12.2006 в 12:27)
 

>ERROR 1406 (22001): Data too long for column 'about' at row 1
Обычно так бывает, если не настроена кодировка. Добавьте ключевое слово DEFAULT CHARSET
CREATE TABLE authors (
id_author INT(11) NOT NULL AUTO_INCREMENT,
name TINYTEXT,
passw TINYTEXT,
email TINYTEXT,
url TEXT,
icq TINYTEXT,
about TEXT,
photo TINYTEXT,
putdate DATETIME DEFAULT NULL,
lest_time DATETIME DEFAULT NULL,
themes INT (10) DEFAULT NULL,
statususer ENUM ('user','moderator','admin') NOT NULL DEFAULT 'user'
) DEFAULT CHARSET=cp1251;

А сразу после установки соединения следует настраивать кодировку, выполняя запрос
SET NAMES 'cp1251'

   
 
 автор: Slavikrnd   (14.12.2006 в 18:40)   письмо автору
 
   для: cheops   (14.12.2006 в 14:19)
 

СПАСИБО! Все вроде заработало !
Достаточно прописать в my.ini default-character-set=cp12 в [mysqld] и удолить default-character-set=cp1251из [mysql]

После соединения запустить:
SET NAMES 'cp1251';

PS chcp 1251 запускать не надо.

   
 
 автор: bdron   (12.12.2006 в 23:37)   письмо автору
 
   для: Slavikrnd   (12.12.2006 в 19:46)
 

ОС: Windows

Если в MySQL Command Line Client нужна кодировка cp1251 то в my.ini нужно прописать:

[mysql]
character-sets-dir="С:\charsets"
default-character-set=cp1251

где character-sets-dir - папка с кодировками.

Важно то, что по умолчанию кодировки будут храниться в папке С:\MySQL\share\charsets\, но из нее mysql их не читает. Путь к папке с кодировками должен быть коротким. Т.е. можно просто их скопировать в С:\charsets, и сказать об этом в my.ini.

Если просто убрать из секции [mysql] строку default-character-set=cp1251, то писка не будет, но и вывода русских букв тоже.

P.S. Чтобы самому писать к консоле по-русски введите chcp 1251

   
 
 автор: Slavikrnd   (14.12.2006 в 13:11)   письмо автору
 
   для: bdron   (12.12.2006 в 23:37)
 

Не помогает:
после редактирования my.ini и копирования charsets в C:\charsets
Не запускается консоль MySQL
При вводе
c:\mysql5\bin\mysql -u root
Ошибка:
c:\mysql5\bin\mysql: Character set 'cp1251' is not a compiled character set and
is not specified in the 'С:\charsets\Index.xml' file

   
 
 автор: cheops   (14.12.2006 в 14:13)   письмо автору
 
   для: Slavikrnd   (14.12.2006 в 13:11)
 

Прикрепите пожалуйста ваш файл my.ini (кстати, где он лежит)?

   
 
 автор: Slavikrnd   (14.12.2006 в 16:48)   письмо автору
 
   для: cheops   (14.12.2006 в 14:13)
 

Лежит в C:\MySQL5

   
 
 автор: bdron   (14.12.2006 в 18:21)   письмо автору
 
   для: Slavikrnd   (14.12.2006 в 13:11)
 

>Не помогает:
>... и копирования charsets в C:charsets

по вашим словам,
может у вас получилось C:\charsets\charsets\, вместо C:\charsets\ ?

   
 
 автор: Slavikrnd   (13.12.2006 в 22:01)   письмо автору
 
   для: Slavikrnd   (12.12.2006 в 19:46)
 

Консоль запустилась! Удалил default-character-set из [mysql] и добавил default-character-set в [mysqld]

Спасибо!

PS Теперь проблемы с кодировкой и вводом строки в таблицу. (сообщение выше)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования