Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Продолжим сегодня рубрику Заметки о MySQL, в которой я уже успел рассказать о том, как установить MySQL сервер и как настроить сервер баз данных. Сегодня я продолжу рассказывать о настройках сервера MySQL. В данной статье мы разберемся со следующими вопросами: куда устанавливается MySQL сервер, где найти базы данных MySQL сервера, как найти базы данных MySQL, для чего нужен файл my.ini, посмотрим примеры настройки сервера MySQL и где найти примеры настройки MySQL сервера.

MySQL сервер. Файл конфигураций my.ini. Настройка кодировки MySQL сервера. Таблицы перекодировок.

Разберемся с кодировкой MySQL сервера. Какую кодировку лучше использовать. Разберемся с командами MySQL сервера для смены кодировки. Так же затронем вопрос о включение и выключение MySQL, обратите внимание, что MySQL сервер не перезагружается. Посмотрим, какие возможности есть у сервера MySQL. Разберемся где лежат таблицы перекодировок MySQL сервера и как их добавить. А также сделаем настройки файла my.ini.

MySQL сервер. Настройка MySQL сервера, файл конфигурации my.ini, примеры настройки MySQL сервера.

Как я уже говорил, с установкой и предварительной настройкой MySQL сервера мы разобрались, теперь давайте посмотрим, хотя бы поверхностно, из чего состоит MySQL сервер. Какие файлы за что отвечают. MySQL сервер, в моем случае был установлен по данному пути: c:\Users\Public\MySQL\, кто-то мог установить сам сервер в папку Program Files, обратите внимание, что этот путь не указывает, то место, где хранятся базы данных MySQL сервера, здесь находится сам сервер баз данных.

MySQL сервер, файлы и папки MySQL сервера.

На скрине можно увидеть несколько файлов и папок сервера MySQL, нас собственно большая часть этих файлов не волнует.

Основной файл конфигурации MySQL сервера my.ini, это обычный текстовый файл, в который были вписаны настройки, которые мы вводили при установке MySQL сервера. Все остальные установленные файлы с расширением .ini – это всего лишь демонстрации настроек для my.ini, работает только my.ini, то есть, все остальные файлы существуют, как примеры для конфигурации и настройки MySQL сервера. Проще говоря, пример, как настроить MySQL сервер.

Программы MySQL сервера, какой файл для чего нужен

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

Программы MySQL сервера

Сам сервер MySQL – это mysqld.exe, d – означает демон, ну или служба. Про некоторые другие утилиты и программы мы поговорим в дальнейшем более подробно. Если у вас стоит win xp, то базы данных будут находиться c:\Documents and Settings\All Users\Application Data\MySQL\ MySQL Server 5.x\data, если вы пользуетесь total commander или любым другим нормальным файловым менеджером, то без труда найдете эту папку, если вы пользуетесь проводником от Windows, то обязательно укажите в настройках «Отображать скрытые файлы», так как данная папка скрыта.

На самом деле все это можно настроить в файле my.ini и реально эти папки могут находиться, там где вам будет удобнее. Файл my.ini нужно будет разобрать более подробно, и тема эта для отдельной статьи.

Кодировка MySQL сервера. SET NAMES — команда для смены кодировки. Кодировка командной строки Windows.

И так, теперь немного поговорим о кодировке сервера MySQL и кодировке командной строки Windows. Если вы будете пользоваться MySQL Command Lint Client, то проблем с кодировкой у вас возникнуть не должно.

MySQL Command Lint Client

Данный клиент установиться вместе с сервером и работа в нем не отличается от работы с командной строкой Windows. Для начала, вы вводите пароль, придуманный вами при установки MySQL сервера, а затем, не заморачиваясь с кодировками и командами типа SET Names, начинаете работать с базами данных: создавать новые базы данных, удалять базы данных, добавлять строки и столбцы к существующим таблицам баз данных, делать выборки из баз данных, создавать и удалять таблицы и многое-многое другое.

Ввод пароля администратора MySQL сервера.

Но если вы решили управлять сервером MySQL через командную строку, то знайте, что кодировка командной строки Windows отличается от кодировки MySQL сервера, в командной строке – это cp866, MySQL сервер в моем случае работает с кодировкой UTF8. И это нужно исправить, кодировку командной строки поменять мы не можем. Остается менять кодировку, с которой работает сервер MySQL.

Как изменить кодировку MySQL сервера. Как получить доступ к серверу MySQL через командную строку Windows.

Тут у нас есть два способа. Первый из них, постоянно писать команду SET NAMES и указывать кодировку cp866. SET NAMES – это не одна команда, как считают некоторые, а целых три. Первая команда – установить кодировку ввода, то есть, с какой кодировки перекодировать данные, которые получает сервер. Вторая команда – установить кодировку вывода, то есть, в какой кодировки сервер MySQL будет отдавать данные. И третья команда – установить collation или по другому правила сравнения строк. И чтобы не набирать три команды сразу была придумана команда SET NAMES. И так, чтобы указать нужную кодировку следует написать SET NAMES, а затем в одинарных кавычках написать нужную кодировку.

[php]

SET NAMES ‘cp866’;

[/php]

Выглядит все это примерно так:

SET NAMES - команда MySQL сервера для смены кодировки.

Не забудьте точку с запятой, этот символ означает конец команды.

Чуть было не забыл, если вы пользуетесь командной строкой, то не забудьте, что MySQL сервер запускается путем написания команды mysql –uroot –pпароль, соответственно, после буквы u вы указываете пользователя сервера MySQL, а после буквы p – пароль. Пример на скрине:

Получаем доступ к серверу MySQL через командную строку Windows

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

По сути, вводя команду SET NAMES, мы как бы говорим серверу: «В данном сеансе(или иначе подключении) я буду работать с тобой вот в этой кодировки». То есть, из этого следует, что при каждом новом подключении к серверу MySQL, нам потребуется постоянно вводить команду SET NAMES и указывать кодировку, с которой необходимо работать. Удобно? Мне кажется, что не очень. Никаких SET NAMES при работе с консолью от MySQL вводить не надо.

Настройка MySQL сервера. Файл конфигураций my.ini. Настройка кодировок MySQL сервера.

И так, чтобы не париться с кодировкой, нужно настроить MySQL сервер. Настройки сервера производятся в файле my.ini. Открывайте его текстовым редактором, я пользуюсь Notepad++, очень удобный редактор, его легко настроить, есть подсветка синтаксиса, а самое главное – его можно скачать бесплатно.

Обратите внимание, что my.ini состоит из разделов, первый – Client, второй – mysql, третий – mysqld. Раздел mysqld – отвечает за настройку сервера MySQL. Mysql – это настройка черного окошечка, в котором собственно и будем работать. Раздел client – это настройки по умолчанию для всех клиентов MySQL сервера.

Файл конфигураций my.ini. Настройка кодировок  MySQL сервера.

Обратите внимание, на скриншоте выделена кодировка, которая стоит для работы в консоле, если вы будете пользоваться консолью от MySQL, то здесь ничего не меняйте, если вы предпочитаете командную строку Windows, то кое какие изменения сделать придется, дабы постоянно не писать SET NAMES. Как видно, кодировка для работы с окном DOS стоит utf8, но это не правда, так как в черном окне у нас кодировка cp866. То есть, первое, что надо поменять – это вместо utf8 написать cp866.

[php]

default-character-set=cp866

[/php]

Таблицы перекодировок MySQL сервера. Где находятся таблицы перекодировок и куда их прописать.

Но этого будет недостаточно. Потому что мы пока не указали, где лежат таблицы перекодировки сервера MySQL. То есть, грубо говоря, консоль пока не знает, как переводить из одной кодировки в другую. Программе надо указать, где лежат таблицы перекодировки, а лежат они собственно в самом сервере MySQL, в папке Share, в папке charsets. Путь выглядит примерно так:

[php]

c:\Users\Public\MySQL\MySQL Server 5.5\share\charsets\

[/php]

В этой папке много файлов с расширением XML, про язык расширяемой разметки XML, уже есть несколько публикаций в рубрике Заметки о XML. Именно в папке charsets вы можете посмотреть, какие кодировки поддерживает MySQL сервер.

Таблицы перекодировок MySQL сервера

В качестве примера можно привести Денвер – джентльменский набор web разработчика. У многих возникают проблемы типа: у меня на Денвере не работает кодировка UTF8, что делать? Ответ: для начала загляните в папку charsets Денверовского MySQL сервера, и если там нет файла utf8.xml, то понятно, что он и не будет поддерживать эту кодировку.

Понятно, что командная строка Windows не знает, где лежат таблицы перекодировок и ей это нужно указать. Делается это все в том же my.ini, в разделе mysql указывается папка, в которой хранятся таблицы перекодировок, при помощи команды character-sets-dir=””, между двойными кавычками нужно вписать путь к папке, в которой лежат таблицы перекодировок.

Не забудьте, что в разделе Client нужно указать кодировку – там необходимо указать utf8, а также прописать путь к таблицам сравнения, на всякий пожарный.

Итоговая настройка my.ini будет выглядеть примерно так:

[php]

[client]

character-sets-dir="c:\Users\Public\MySQL\MySQL Server 5.5\share\charsets"

default-character-set=utf8

port=3306

[mysql]

character-sets-dir="c:\Users\Public\MySQL\MySQL Server 5.5\share\charsets"

default-character-set=cp866

[/php]

Но если вы будете использовать консоль от MySQL, то внесите изменения только в раздел client, и то не обязательно, хотя папку с таблицами перекодировки лучше указать в двух разделах:

[php]

[client]

character-sets-dir="c:\Users\Public\MySQL\MySQL Server 5.5\share\charsets"

default-character-set=utf8

port=3306

[mysql]

character-sets-dir="c:\Users\Public\MySQL\MySQL Server 5.5\share\charsets"

default-character-set=utf8

[/php]

Ну а вот скрин из редактора, тут прописаны настройки для работы с сервером MySQL через командную строку:

настройки для работы с сервером MySQL через командную строку

Все эти настройки и команды означают буквально следующее: character-sets-dir – этой строкой мы как бы говорим, в первом случае, клиенты вы берете таблицы вот отсюда и указываете, откуда они берут таблицы перекодировок. default-character-set=cp866, этой строкой вы как бы говорите консоли, ты будешь использовать кодировку cp866. Да чуть не забыл, все слэши нужно использовать в UNIX виде, то есть, в примерах слеши написаны не правильно их нужно развернуть вот так — /. В Windows без разницы, какие вы будете использовать разделители, но если вы пользуетесь UNIX системами, то слеши нужно будет развернуть.

Как включить MySQL сервер. Как выключить MySQL сервер. Что нужно сделать, чтобы новые настройки сохранились.

После того, как вы внесли изменения в my.ini, нужно перезагрузить MySQL сервер, команды рестарт, как в случае с Apache тут нет. Придется выключить и заново включить сервер. Сделать это можно из командной строки, используя две команды. Первая net stop – предназначена для выключения службы, вторая – net start, которая предназначена для включения службы. Служба у нас MySQL сервер, следовательно, для него эти команды будут выглядеть так:

[php]

net stop mysql

net start mysql

[/php]

Обратите внимание, что никаких точек с запятой после этих команд ставить не надо, как в случае с Set NAMES. Да и перед тем, как перезагрузить MySQL сервер, не забудьте, что нужно выйти из аккаунта управления сервером MySQL, чтобы это сделать есть команда exit.

Командой exit мы вышли из MySQL сервера, а командой net stop mysql мы выключили MySQL сервер. Когда вы в следующий раз включите MySQL сервер, командой net start mysql, а затем и войдете, как администратор сервера то никаких SET NAMES в командной строке Windows писать уже не надо, так как все уже указано в файле my.ini. Еще одна маленькая помарка, все эти настройки избавляют вас от того, чтобы постоянно вводить SET NAMES в командной строке, но не избавляет вас от необходимости вводить SET NAMES, в случае, когда вы обращаетесь к серверу MySQL при написание скриптов на PHP или любом другом языке программирования.

Также не забудьте, если настроили MySQL сервер под работу в командной строке, то вам придется постоянно указывать кодировку для работы с сервером в консоли от MySQL – MySQL Command Client.

На этом всё, спасибо за внимание, надеюсь, что был хоть чем-то полезен и до скорых встреч на страницах блога для начинающих вебразработчиков и вебмастеров ZametkiNaPolyah.ru 

Возможно, эти записи вам покажутся интересными


Выберете удобный для себя способ, чтобы оставить комментарий

This article has 3 comments

  1. DENIS Reply

    Последнее время я использую Valentina Studio для работы с MySQL. Очень хороший и бесплатный инструмент, рекомендую посмотреть.http://www.valentina-db.com/en/valentina-studio-overview

    • Кирилл Reply

      Я уже как-то привык пользоваться командной строкой и mysql workbench. В принципе, все что нужно есть.

  2. Ренат Reply

    Самая понятная статья про настройку кодировок mysql.Я тут решил подучить SQL команды на практике,и решил это делать через командную строку виндовз.Пару лет назад я умел настроить MySQL,но подзабыл как.Обыскал все сайты,толково никто не может никто объяснить кроме вас,может кто пишет эти статьи им кажеться всё очевидным,но не для новичков явно.Пишут совсем какие то отстранённые вещи,приводят ненужные примеры,приплетают туда apache или что то ещё,много мусора.А в вашей статье всё по делу,то что доктор прописал)))Спасибо.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Loading Disqus Comments ...