Это старая версия документа.
MySQL — свободная СУБД для малых и средних приложений. Входит в состав LAMP.
Настройка кодировок
Мне было необходимо, чтобы сервер MySQL работал с кодировкой utf8
.
По-умолчанию в Ubuntu MySQL устанавливается с кодировкой latin1
.
Это можно посмотреть:
mysql> show variables like 'char%';
в результате получим вот такой вывод:
character_set_client latin1 character_set_connection latin1 character_set_database latin1 character_set_filesystem binary character_set_results latin1 character_set_server latin1 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/
В связи с этим, даже используя при работе с сервером команду
set names utf8;
и используя при создании таблиц
...DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
мы не добьёмся полной поддержки кодировки utf8:
character_set_client utf8 character_set_connection utf8 ... character_set_server latin1 ... character_sets_dir /usr/share/mysql/charsets/
Кодировка по-умолчанию все равно останется latin1, что неудобно.
Чтобы сервер сразу загружался с нужной нам кодировкой, необходимо в файл my.cnf
добавить несколько строк:
nano -w /etc/mysql/my.cnf
в секцию [mysqld]
добавим следующий код:
skip-character-set-client-handshake default-character-set=utf8 init-connect='SET NAMES utf8' default-collation=utf8_general_ci
Перезагрузим сервер MySQL:
/etc/init.d/mysql restart
использовать services?
После этого список переменных будет выглядеть так:
character_set_client utf8 character_set_connection utf8 character_set_database utf8 character_set_filesystem binary character_set_results utf8 character_set_server utf8 character_set_system utf8 character_sets_dir /usr/share/mysql/charsets/
Чего мы и добивались.
Восстановление забытого пароля для root'a
1. Надо остановить mysqld
.
2. Запустите mysqld
с параметрами –skip-grant-tables –user=root
.
mysqld --skip-grant-tables --user=root
3. Подключитесь к mysql серверу этой командой:
mysql -u root
4. Обновите запись для root'a
UPDATE mysql.user SET Password=PASSWORD('<новый пароль>') WHERE User='root'; FLUSH PRIVILEGES;
Теперь можете логиниться под root с новым паролем.