https://www.altlinux.org/api.php?action=feedcontributions&user=DaniilMikhailov&feedformat=atomALT Linux Wiki - Вклад [ru]2024-03-29T06:35:52ZВкладMediaWiki 1.38.2https://www.altlinux.org/index.php?title=Journald&diff=39678Journald2017-07-27T12:06:30Z<p>DaniilMikhailov: /* Основные команды */</p>
<hr />
<div>{{начало цитаты|источник=https://ru.opensuse.org/SDB:Systemd#systemd-journalctl}}<br />
Начиная с версии v38+ systemd имеет собственную систему регистрации событий, которая по умолчанию включена в дистрибутив openSUSE 12.2+. systemd-journalctl является неотъемлемой частью systemd и не может использоваться отдельно. Журналы данного инструмента хранятся в бинарном виде в /var/log/journal, что исключает возможность просмотра содержимого данных файлов стандартными утилитами обработки текстовых данных. При вызове инструмента без параметров покажет все содержимое журнала аналогичного классической системе лог-файлов syslog ( /var/log/messages ) <br />
{{конец цитаты}}<br />
<br />
Подробное описание работы с журналом, см (англ)<br />
<br />
<source lang="bash"><br />
man systemd-journald<br />
man journalctl<br />
</source><br />
<br />
==Основные команды==<br />
* Получить актуальные ключи команды:<br />
<source lang="bash"><br />
journalctl --help<br />
</source><br />
<br />
* Чтение всех логов:<br />
<source lang="bash"><br />
journalctl<br />
</source><br />
<br />
* Логи с момента запуска системы:<br />
<source lang="bash"><br />
journalctl -b<br />
</source><br />
<br />
* Если был крах системы, можно ввести параметр -1 и посмотреть логи с предыдущего запуска системы (-2 логи сеанса за два сеанса до текущего и т.д.) <ref name="sis">Работает пока только в Сизифе, уточняйте через journalctl --help</ref>:<br />
<source lang="bash"><br />
journalctl -b -1 <br />
</source><br />
<br />
* Показывать записи журнала с момента запуска системы с расшифровкой ошибок:<br />
<source lang="bash"><br />
journalctl -xb<br />
</source><br />
<br />
* Показать самые последние записи журнала, и продожать печатать новые записи, при добавлении их в журнал:<br />
<source lang="bash"><br />
journalctl -f<br />
</source><br />
<br />
'''Вывод лога в текстовый файл'''<br />
----<br />
Если вам нужно вывести лог в текстовый файл (например, чтобы [[BugTracking|сообщить]] разработчикам об ошибке), используйте конструкцию <source lang="bash"><br />
'команда' > 'путь к текстовому файлу'<br />
</source><br />
<br />
Пример:<br />
<source lang="bash"><br />
journalctl -b > /home/user/debug.log<br />
</source><br />
<br />
'''Фильтрация по дате и времени'''<br />
----<br />
<br />
*Показать все сообщения за последние 20 минут:<br />
<source lang="bash"><br />
journalctl --since "20 min ago"<br />
</source><br />
<br />
*Просмотреть все сообщения начиная с 20 июля 2015 года 17:15:<br />
<source lang="bash"><br />
journalctl --since "2015-07-20 17:15:00"<br />
</source><br />
<br />
*Просмотреть все сообщения начиная со вчерашнего дня:<br />
<source lang="bash"><br />
journalctl --since "yesterday"<br />
</source><br />
<br />
*Просмотреть все сообщения с 9:00 до настоящего времени:<br />
<source lang="bash"><br />
journalctl --since "09:00" --until "now"<br />
</source><br />
<br />
*Просмотреть все сообщения с 9:00 до прошлого часа:<br />
<source lang="bash"><br />
journalctl --since "10:00" --until "1 hour ago"<br />
</source><br />
<br />
----<br />
<br />
* Показывать в реальном времени все записи, независимо от их размера и кодировки: <br />
<source lang="bash"><br />
journalctl -af<br />
</source><br />
<br />
* Просмотр сообщений ядра <ref name ="sis"/>: <br />
<source lang="bash"><br />
journalctl -k<br />
</source><br />
<br />
* Все сообщение конкретной утилиты, например, systemd:<br />
<source lang="bash"><br />
journalctl /usr/lib/systemd/systemd<br />
</source><br />
<br />
* Все сообщения конкретного процесса:<br />
<source lang="bash"><br />
journalctl _PID=1<br />
</source><br />
<br />
* Все сообщения конкретного приложения или службы:<br />
<source lang="bash"><br />
journalctl -u netcfg<br />
</source><br />
<br />
* Все сообщения процессов, запущенных от имени конкретного пользователя:<br />
<source lang="bash"><br />
journalctl _UID=33<br />
</source><br />
<br />
'''Журнал'''<br />
----<br />
* Журнал хранится в двоичном формате, поэтому в окружении, где не установлен systemd, его логи можно посмотреть с помощью команды strings:<br />
<source lang="bash"><br />
strings /mnt/arch/var/log/journal/af4967d77fba44c6b093d0e9862f6ddd/system.journal | grep -i сообщение <br />
</source><br />
<br />
* Если же имеется файл журнала, например, с другого компьютера и systemd установлен (должно быть достаточно пакета {{pkg|journalctl}} из Sisyphus), то посмотреть его содержимое проще:<br />
<br />
<br />
из директории<br />
<source lang="bash"><br />
journalctl -D /mnt/arch/var/log/journal/af4967d77fba44c6b093d0e9862f6ddd<br />
</source><br />
<br />
из файла<br />
<source lang="bash"><br />
journalctl --file /mnt/arch/var/log/journal/af4967d77fba44c6b093d0e9862f6ddd/system.journal<br />
</source><br />
<br />
'''Недавние события'''<br />
----<br />
*Просмотр информации о недавних событиях<br />
<source lang="bash"><br />
$ journalctl -n<br />
</source><br />
<br />
*По умолчанию на консоль выводится информация о последних 10 событиях. С опцией -n можно указать необходимое число событий:<br />
<source lang="bash"><br />
$ journalctl -n 20<br />
</source><br />
<br />
==Анализ этапа загрузки==<br />
Для анализа этапа инициализации системы используется утилита systemd-analyze. Для установки делаем от root:<br />
<source lang="bash"><br />
apt-get install systemd-analyze<br />
</source><br />
Выявляем самые медленные процессы (от пользователя):<br />
<source lang="bash"><br />
systemd-analyze blame<br />
</source><br />
Выводим график загрузки процессов в векторный рисунок:<br />
<source lang="bash"><br />
systemd-analyze plot > file.svg<br />
</source><br />
<br />
== Основные настройки ==<br />
Файл настройки находится в /etc/systemd/journald.conf и состоит из следующих секций:<br />
<br />
* '''Storage=''' Указывает, где хранить журнал. Доступны следующие параметры:<br />
** '''volatile''' Журнал хранится в оперативной памяти, т.е. в каталоге /run/log/journal. <br />
** '''persistent''' Данные хранятся на диске, т.е. в каталоге /var/log/journal<br />
** '''auto''' используется по-умолчанию<br />
** '''none''' Журнал не ведётся<br />
<br />
* '''Compress=''' Принимает значения "yes" или "no". Если включена (по-умолчанию) сообщения перед записью в журнал, будут сжиматься.<br />
<br />
* '''Seal=''' Принимает значения "yes" или "no". Если включена (по-умолчанию) будет включена защита Forward Secure Sealing (FSS), которая позволяет накладывать криптографические отпечатки на журнал системных логов.<br />
<br />
* '''SplitMode=''' Определяет доступ к журналу пользователям. Доступны следующие параметры:<br />
** '''uid''' Все пользователи получают доступ к чтению системного журнала. Используется по-умочанию.<br />
** '''login''' Каждый пользователь может читать только сообщения, относящиеся к его сеансу.<br />
** '''none''' Пользователи не имеют доступа к системному журналу.<br />
<br />
* '''SyncIntervalSec=''' Таймаут, после которого происходит синхронизация и запись журнала на диск. Относится только к уровням '''ERR, WARNING, NOTICE, INFO, DEBUG.''' Сообщения уровня '''CRIT, ALERT, EMERG''' записываются сразу на диск.<br />
<br />
* '''RateLimitInterval=''' и '''RateLimitBurst=''' Настройки ограничения скорости генерации сообщений для каждой службы. Если в интервале времени, определяемого '''RateLimitInterval=''', больше сообщений, чем указано в '''RateLimitBurst=''' регистрируются службой, все дальнейшие сообщения в интервале отбрасываются, пока интервал не закончится.При этом генерируется сообщение о количестве отброшенных сообщений. По умолчанию 1000 сообщений за 30 секунд. Единицы измерения: '''"s", "min", "h", "ms", "us"'''. Чтобы выключить ограничение скорости, установите значения в 0.<br />
<br />
* '''MaxRetentionSec=''' Максимальное время хранения записей журнала. Единицы измерения: '''year, month, week, day, h''' или '''m'''<br />
<br />
* '''MaxFileSec=''' Максимальное время хранения записей в одном файле журнала, после которого он переводится в следующий.<br />
<br />
* '''ForwardToSyslog=, ForwardToKMsg=, ForwardToConsole=, ForwardToWall=''' Определяют куда направлять сообщения: в традиционный системный журнал ''Syslog'', в буфер журнала ядра (''kmsg''), на системную консоль, или на стену, чтобы было видно всем зарегистрированным пользователям. Эти опции принимают логические аргументы. Если переадресация на ''Syslog'' включен, но ''Syslog'' демон не работает, соответствующий параметр не имеет никакого эффекта. По умолчанию, только стена включена. Эти параметры могут быть переопределены во время загрузки с параметрами командной строки ядра '''systemd.journald.forward_to_syslog =''', '''systemd.journald.forward_to_kmsg =''', '''systemd.journald.forward_to_console =''' и '''systemd.journald.forward_to_wall ='''. При пересылке в консоль, должен быть установлен '''TTYPath =''', как будет описано ниже.<br />
<br />
* '''TTYPath=''' Назначает консоль ''TTY'', для вывода сообщений, если установлен параметр '''ForwardToConsole=yes'''. По-умолчанию, используется ''/dev/console''. Для того, чтобы вывести на 12 консоль, устанавливаем '''TTYPath=/dev/tty12'''. Для того, чтобы вывести на последовательный порт, устанавливаем '''TTYPath=/dev/ttySX''', где X номер com-порта.<br />
<br />
* '''MaxLevelStore=, MaxLevelSyslog=, MaxLevelKMsg=, MaxLevelConsole=, MaxLevelWall=''' Определяет максимальный уровень сообщений который сохраняется в журнал, выводится на традиционный системный журнал ''Syslog'', буфер журнала ядра (''kmsg''), консоль или стену. Значения: '''emerg, alert, crit, err, warning, notice, info, debug''' или цифры от 0 до 7 (соответствуют уровням).<br />
<br />
== Управление логированием ==<br />
*Определение текущего объёма логов<br />
Со временем объём логов растёт, и они занимают всё больше места на жёстком диске. Узнать объём имеющихся на текущий момент логов можно с помощью команды:<br />
<source lang="bash"><br />
journalctl --disk-usage<br />
</source><br />
<br />
*Ротация логов<br />
Настройка ротации логов осуществляется с помощью опций −−vacuum-size и −−vacuum-time. <br />
Первая из них устанавливает предельно допустимый размер для хранимых на диске логов (в нашем примере — 1 ГБ):<br />
<source lang="bash"><br />
journalctl --vacuum-size=1G<br />
</source><br />
<br />
Как только объём логов превысит указанную цифру, лишние файлы будут автоматические удалены.<br />
Аналогичным образом работает опция −−vacuum-time. Она устанавливает для логов срок хранения, по истечении которого они будут автоматически удалены:<br />
<br />
<source lang="bash"><br />
journalctl --vacuum-time=1years<br />
</source><br />
<br />
*'''Настройка ротации в конфигурационном файле'''. Настройки ротации логов можно также прописать в конфигурационном файле /еtc/systemd/journald.conf, который включает в числе прочих следующие параметры:<br />
**'''SystemMaxUse=''' — максимальный объём, который логи могут занимать на диске;<br />
**'''SystemKeepFree=''' — объём свободного места, которое должно оставаться на диске после сохранения логов;<br />
**'''SystemMaxFileSize=''' — объём файла лога, по достижении которого он должен быть удален с диска;<br />
**'''RuntimeMaxUse=''' — максимальный объём, который логи могут занимать в файловой системе /run;<br />
**'''RuntimeKeepFree=''' — объём свободного места, которое должно оставаться в файловой системе /run после сохранения логов;<br />
**'''RuntimeMaxFileSize=''' — объём файла лога, по достижении которого он должен быть удален из файловой системы /run.<br />
<br />
Единицы измерения: K, M, G, T, P, E.<br />
<br />
== Возврат syslog ==<br />
Допускается либо параллельное ведение журналов в syslog, либо полное переключение на него. За это отвечают параметры Storage и ForwardToSyslog в /etc/systemd/journald.conf:<br />
[Journal]<br />
Storage=none<br />
ForwardToSyslog=yes<br />
<br />
После этого надо установить logrotate, syslog и, в зависимости от варианта syslog, klogd.<br />
<br />
== Запись в журнал из скрипта ==<br />
echo "MESSAGE" | systemd-cat -t myunit<br />
<br />
где ''myunit'' — имя юнита.<br />
<br />
{{Attention|{{cmd|logger}} не работает с Journald}}<br />
<br />
== Ссылки ==<br />
* [https://ru.opensuse.org/SDB:Systemd#systemd-journalctl Описание демона systemd-journalctl На Wiki OpenSuse]<br />
*[[Systemd]]<br />
* [http://habrahabr.ru/company/selectel/blog/264731 Статья на Хабрахабр "Управление логгированием в systemd"]<br />
*[[Участник:HihinRuslan/Systemd| Улучшаем Systemd]]<br />
<br />
Примечания :<br />
{{примечания}}<br />
<br />
<br />
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}}</div>DaniilMikhailovhttps://www.altlinux.org/index.php?title=MySQL&diff=36684MySQL2016-08-04T14:31:05Z<p>DaniilMikhailov: </p>
<hr />
<div>{{stub}}<br />
==Попробуем ознакомиться и по минимуму настроить MySQL==<br />
=== Установка и запуск ===<br />
<br />
apt-get install MySQL-server<br />
chkconfig mysqld on<br />
service mysqld start<br />
<br />
===Для начала, укажем для MySQL пароль рута (привилегированного пользователя):===<br />
mysql -u root<br />
Затем, в консоли MySQL ввести следующую команду:<br />
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('you_own_pass');<br />
точка с запятой в конце обязательны. Если опечаток не было и все правильно, сервер выдаст строку:<br />
Query OK, 0 rows affected (0.00 sec).<br />
Если у Вас уже был установлен пароль рута или какого-либо другого пользователя, для входа в консоль MySQL используется команда:<br />
mysql -u swopster -p<br />
или<br />
mysql -u root -p<br />
<br />
===Создаем базу:===<br />
mysql> CREATE DATABASE my_database;<br />
<br />
===Создаем пользователей:===<br />
1.Для создания пользователя со ВСЕМИ правами. Пишут, что использовать только для устранения неполадок.<br />
mysql> GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'localhost' IDENTIFIED BY 'you_own_pass' WITH GRANT OPTION;<br />
2. Для создания нового пользователя с меньшими привилегиями (должно работать для большинства веб-приложений),<br />
который может использовать только базу данных с именем "my_database", в MySQL строке введите:<br />
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON my_database.* TO 'yourusername'@'localhost' IDENTIFIED BY 'you_own_pass';<br />
Для выхода из консоли MySQL:<br />
mysql> \q<br />
Для создания пароля рута и баз как АЛЬТЕРНАТИВУ можно использовать mysqladmin:<br />
mysqladmin -u root -p password yourpassword<br />
и<br />
mysqladmin -u root -p create my_database<br />
<br />
==Далее о нюансах==<br />
1. Конфигурационный файл расположен:<br />
/var/lib/mysql/my.cnf<br />
После правок перезагружать сервис: service mysqld restart.<br />
<br />
2. Подключения к базе данных. При обычных параметрах, подключения идут к базе локально (localhost, 127.0.0.1, 0.0.0.0). Но если нам требуется подключится к базе из другого места, нужно думать заранее.<br />
Потому, что из соображений безопасности доступа к базе все подключения из вне отрублены. Такие необходимости возникают при необходимости подключится допустим из среды разработки NetBeans.<br />
При попытке подключения нам будет выдано сообщение:<br />
"Host '192.168.0.2' is not allowed to connect to this MySQL server"<br />
Решением будет, только указание расположения подключающегося клиента при его создании.<br />
GRANT ALL PRIVILEGES ON *.* TO 'igor'@'10.3.3.23' IDENTIFIED BY 'you_own_pass' WITH GRANT OPTION;<br />
или<br />
GRANT ALL PRIVILEGES ON *.* TO 'swopster'@'192.168.0.2' IDENTIFIED BY 'you_own_pass' WITH GRANT OPTION;<br />
3.Как получить доступ к MySQL из сети? Если действительно необходимо и доступ ограничивается внешними средствами — закомменируйте (поставьте знак # в начале строки) параметр<br />
skip-networking<br />
в файле /var/lib/mysql/my.cnf, с последующим перезапуском службы mysqld.<br />
<br />
4. Посмотреть на каком порту, для каких интерфейсов работает mysqld демон, командой:<br />
netlist -tap<br />
-----<br />
в выводе будет, что-то наподобие:<br />
root 13449 mysqld 3 tcp 0.0.0.0:3306 0.0.0.0:0 LISTEN<br />
Видно, что mysql работает для всех интерфейсов и слушает 3306 порт.<br />
<br />
=== О кодировках в MySQL 5.x ===<br />
<br />
В ALT Linux кодировка, передаваемая через параметр -C в mysqld, задаётся через CHSET в /etc/sysconfig/mysqld, либо определяется по системной локали.<br />
Это --character-set-server — кодировка, используемая '''сервером''' по умолчанию.<br />
Как нужно настроить сервер, чтобы по умолчанию кодировка была cp1251, но это можно было переопределять на utf8?<br />
<br />
Кодировку и таблицу сортировки, используемые по умолчанию в сервере, лучше задавать в my.cnf:<br />
character_set_server = utf8<br />
collation_server = utf8_general_ci<br />
<br />
Для клиентов (например, команды mysql) кодировка указывается в секции [client] файла my.cnf:<br />
[client]<br />
default-character-set=cp1251<br />
<br />
При открытии соединения с базой нужно указывать кодировку, в которой клиент будет работать с базой. Это можно сделать строкой<br />
init-connect="SET NAMES cp1251"<br />
в my.cnf. Команда set names устанавливает при подсоединении такие переменные как set_client, set_result, collaction_client, что позволяет серверу корректно воспринимать запросы и возвращать ответы.<br />
<br />
Обратите внимание, что имена (таблиц и полей) хранятся в сервере в кодировке utf8 и это неизменяемо.<br />
''Что насчёт их кодировки в запросе?''<br />
<br />
=== Включение логирования каждого запроса: ===<br />
<br />
Отредактируем файл настроек:<br />
<pre><br />
mcedit /var/lib/mysql/my.cnf<br />
<br />
# for logging<br />
general_log_file = /log/query<br />
general_log = 1<br />
</pre><br />
<br />
Логи будут тут:<br />
/var/lib/mysql/log/query<br />
<br />
Важно отметить, что пути отсчитываются от корня чрута, то есть от <br />
/var/lib/mysql/<br />
по-умолчанию.<br />
<br />
== Ссылки ==<br />
[http://linuxgangster.org/modules.php?name=Content&file=printout&id=8 Оптимизация настроек MySQL + Apache для нагруженного сервера]<br />
[[Категория:Admin]]<br />
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}}<br />
[[Category:MySQL]]<br />
{{Category navigation|title=MySQL|category=MySQL|sortkey={{SUBPAGENAME}}}}</div>DaniilMikhailovhttps://www.altlinux.org/index.php?title=MySQL&diff=36683MySQL2016-08-04T14:30:03Z<p>DaniilMikhailov: /* Включение логирования каждого запроса: */</p>
<hr />
<div>{{stub}}<br />
==Попробуем ознакомиться и по минимуму настроить MySQL==<br />
=== Установка и запуск ===<br />
<br />
apt-get install MySQL-server<br />
chkconfig mysqld on<br />
service mysqld start<br />
<br />
===Для начала, укажем для MySQL пароль рута (привилегированного пользователя):===<br />
mysql -u root<br />
Затем, в консоли MySQL ввести следующую команду:<br />
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('you_own_pass');<br />
точка с запятой в конце обязательны. Если опечаток не было и все правильно, сервер выдаст строку:<br />
Query OK, 0 rows affected (0.00 sec).<br />
Если у Вас уже был установлен пароль рута или какого-либо другого пользователя, для входа в консоль MySQL используется команда:<br />
mysql -u swopster -p<br />
или<br />
mysql -u root -p<br />
<br />
===Создаем базу:===<br />
mysql> CREATE DATABASE my_database;<br />
<br />
===Создаем пользователей:===<br />
1.Для создания пользователя со ВСЕМИ правами. Пишут, что использовать только для устранения неполадок.<br />
mysql> GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'localhost' IDENTIFIED BY 'you_own_pass' WITH GRANT OPTION;<br />
2. Для создания нового пользователя с меньшими привилегиями (должно работать для большинства веб-приложений),<br />
который может использовать только базу данных с именем "my_database", в MySQL строке введите:<br />
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON my_database.* TO 'yourusername'@'localhost' IDENTIFIED BY 'you_own_pass';<br />
Для выхода из консоли MySQL:<br />
mysql> \q<br />
Для создания пароля рута и баз как АЛЬТЕРНАТИВУ можно использовать mysqladmin:<br />
mysqladmin -u root -p password yourpassword<br />
и<br />
mysqladmin -u root -p create my_database<br />
<br />
=== Включение логирования каждого запроса: ===<br />
<br />
Отредактируем файл настроек:<br />
<pre><br />
mcedit /var/lib/mysql/my.cnf<br />
<br />
# for logging<br />
general_log_file = /log/query<br />
general_log = 1<br />
</pre><br />
<br />
Логи будут тут:<br />
/var/lib/mysql/log/query<br />
<br />
Важно отметить, что пути отсчитываются от корня чрута, то есть от <br />
/var/lib/mysql/<br />
по-умолчанию.<br />
<br />
==Далее о нюансах==<br />
1. Конфигурационный файл расположен:<br />
/var/lib/mysql/my.cnf<br />
После правок перезагружать сервис: service mysqld restart.<br />
<br />
2. Подключения к базе данных. При обычных параметрах, подключения идут к базе локально (localhost, 127.0.0.1, 0.0.0.0). Но если нам требуется подключится к базе из другого места, нужно думать заранее.<br />
Потому, что из соображений безопасности доступа к базе все подключения из вне отрублены. Такие необходимости возникают при необходимости подключится допустим из среды разработки NetBeans.<br />
При попытке подключения нам будет выдано сообщение:<br />
"Host '192.168.0.2' is not allowed to connect to this MySQL server"<br />
Решением будет, только указание расположения подключающегося клиента при его создании.<br />
GRANT ALL PRIVILEGES ON *.* TO 'igor'@'10.3.3.23' IDENTIFIED BY 'you_own_pass' WITH GRANT OPTION;<br />
или<br />
GRANT ALL PRIVILEGES ON *.* TO 'swopster'@'192.168.0.2' IDENTIFIED BY 'you_own_pass' WITH GRANT OPTION;<br />
3.Как получить доступ к MySQL из сети? Если действительно необходимо и доступ ограничивается внешними средствами — закомменируйте (поставьте знак # в начале строки) параметр<br />
skip-networking<br />
в файле /var/lib/mysql/my.cnf, с последующим перезапуском службы mysqld.<br />
<br />
4. Посмотреть на каком порту, для каких интерфейсов работает mysqld демон, командой:<br />
netlist -tap<br />
-----<br />
в выводе будет, что-то наподобие:<br />
root 13449 mysqld 3 tcp 0.0.0.0:3306 0.0.0.0:0 LISTEN<br />
Видно, что mysql работает для всех интерфейсов и слушает 3306 порт.<br />
<br />
=== О кодировках в MySQL 5.x ===<br />
<br />
В ALT Linux кодировка, передаваемая через параметр -C в mysqld, задаётся через CHSET в /etc/sysconfig/mysqld, либо определяется по системной локали.<br />
Это --character-set-server — кодировка, используемая '''сервером''' по умолчанию.<br />
Как нужно настроить сервер, чтобы по умолчанию кодировка была cp1251, но это можно было переопределять на utf8?<br />
<br />
Кодировку и таблицу сортировки, используемые по умолчанию в сервере, лучше задавать в my.cnf:<br />
character_set_server = utf8<br />
collation_server = utf8_general_ci<br />
<br />
Для клиентов (например, команды mysql) кодировка указывается в секции [client] файла my.cnf:<br />
[client]<br />
default-character-set=cp1251<br />
<br />
При открытии соединения с базой нужно указывать кодировку, в которой клиент будет работать с базой. Это можно сделать строкой<br />
init-connect="SET NAMES cp1251"<br />
в my.cnf. Команда set names устанавливает при подсоединении такие переменные как set_client, set_result, collaction_client, что позволяет серверу корректно воспринимать запросы и возвращать ответы.<br />
<br />
Обратите внимание, что имена (таблиц и полей) хранятся в сервере в кодировке utf8 и это неизменяемо.<br />
''Что насчёт их кодировки в запросе?''<br />
<br />
=== Ссылки ===<br />
[http://linuxgangster.org/modules.php?name=Content&file=printout&id=8 Оптимизация настроек MySQL + Apache для нагруженного сервера]<br />
[[Категория:Admin]]<br />
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}}<br />
[[Category:MySQL]]<br />
{{Category navigation|title=MySQL|category=MySQL|sortkey={{SUBPAGENAME}}}}</div>DaniilMikhailov