Установка и настройка mysql в windows 7. Как установить MySQL на Windows – понижаем градус своего котелка

andew

2016-07-10T15:01:35+00:00

2018-01-31T05:17:00+00:00

10579

В статье представлена установка и настройка портативного варианта базы данных MySQL 5.7 Community Server на Windows из zip архива. Описаны все действия - загрузка zip архива с дистрибутивом MySQL сервера, организация каталогов, настройка конфигурации, инициализация, запуск и подключение к серверу из программы MySQL Workbench. Статья так же содержит скринкаст.

Назначение портативной установки MySQL 5.7 в Windows

Портативный вариант инсталляции базы данных MySQL в OS Windows может быть особо удобным для организации среды web разработки для приложений, рассчитанных под LAMP . Конечно, в идеальном случае, для LAMP веб разработки лучше работать в OS Linux , но для тех случаев, когда это по каким-либо причинам невозможно, приходиться организовывать нужное окружение на Win машине. Для этих целей существуют разные подходы и варианты сборок WinAMP для . Однако в таких сборках база данных MySQL представлена в минимальном, урезанном варианте и часто не в самой свежей и последней версии. Поэтому, как раз для того, чтобы иметь свой полный и актуальный вариант portable установки MySQL сервера и есть смысл делать такую инсталляцию. Ее можно разместить прямо в каталоге вашей WAMP сборки, и использовать вместо имеющейся там изначально версии MySQL . Или вообще можно собрать свою WAMP сборку, установив в нее самостоятельно MySQL и другие компоненты, и выполнив их настройку и связку.

Основные преимущества такого варианта инсталляции MySQL сервера могут быть в следующем:

  • портативность установки, т.е. вы сможете переносить и использовать MySQL сервер на других PC с Windows. Так же инсталляция не будет связана с системой и не будет прописываться в реестре. Однако, если вам не нужна именно портативная установка, то тогда, наверное, технически будет проще выполнить обычную для Windows установку при помощи MySQL Installer for Windows, который можно скачать на .
  • возможность иметь последую актуальную версию MySQL сервера. Так на момент написания статьи MySQL имеет версию 5.7.13, которая имеет существенные преимущества перед версией 5.6 по производительности и дополнительному функционалу. Чего только стоит появление нового типа данных json , что позволяет хранить в столбце таблицы, извлекать и обрабатывать данные в виде объекта json .
  • независимая настройка базы данных MySQL под свои нужды и возможность использования дополнений и плагинов, входящих в полный дистрибутив MySQL 5.7.13 Community Server.
  • полезный опыт по ручной настройке базы данных MySQL, который даст вам неоспоримые преимущества при самостоятельном развертывании продуктивного LAMP web сервера, т.к. по своей сути все настройки MySQL будут одинаковы как для Windows, так и для Linux OS.

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

Скачивание дистрибутивов MySQL 5.7 и Workbench

Загрузить zip архив с дистрибутивом MySQL Community Server 5.7.13 (mysql-5.7.13-winx64-debug-test.zip ) для выполнения portable установки можно с , где в низу страницы представлены разные варианты дистрибутивов, в том числе и в формате zip архива. Загрузить программу MySQL Workbench (mysql-workbench-community-6.3.7-winx64-noinstall.zip ) можно так же с . На этих страницах загрузки данные дистрибутивы доступны как в варианте универсального инсталлятора для Windows, так и в виде простого zip архива.

Так же для работы MySQL 5.7 в Windows необходимо, что бы в системы были установлены следующие библиотеки:

Настройка MySQL

Настройка каталогов MySQL

Загруженный zip архив с дистрибутивом MySQL сервера нужно распаковать в выбранную вами папку. Путь до каталога и само название каталога целесообразно (но не обязательно ) создавать такими, что бы они содержали только английские буквы и цифры и не имели пробелов. В таком варианте вам не придется заключать в кавычки пути в конфигурационном файле MySQL . Так же чем короче будет путь, например, "Z:/mysql " , тем легче вам его будет править, в особенности при миграции каталога с дистрибутивом между вашими PC. Если вы собираете свою WINAMP сборку, то удобно будет выделить для нее даже отдельный диск.

Распакованный дистрибутив MySQL сервера по умолчанию будет иметь следующую структуру каталогов:

|-- bin |-- docs |-- include |-- lib |-- share |-- COPYING |-- my-default.ini |-- README

В дополнении к уже имеющимся каталогам нужно создать дополнительно в домашней директории MySQL сервера следующие каталоги:

  • data - каталог для файлов баз данных;
  • files - каталог для файлов, с которыми может работать MySQL сервер;
  • logs - каталог для логов сервера;
  • tmp - каталог для временных файлов.

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

Создание конфига my.ini

Перед инициализацией или переинициализацией MySQL сервера необходимо создать в корне его домашней директории конфигурационный файл my.ini и записать в него необходимые директивы. Файл my.ini является главным конфигурационным файлом MySQL сервера в Windows. Создать файл my.ini удобно путем копирования файла заготовки my-default.ini . Ниже приводиться пример файла my.ini с необходимыми настройками, которых достаточно для инициализации MySQL . Для более детальной настройки необходимо обращаться к документации MySQL сервера.

В zip дистрибутиве MySQL 5.7.18 файл my-default.ini больше не включается . Поэтому создайте my.ini сами. Это обычный текстовый файл в UTF8. Содержание файла возьмите из статьи ниже.

Пример файла my.ini

Ниже приведен пример файла my.ini для портативной установки MySQL сервера в Windows из zip архива. Пути в файле-примере заданы, исходя из того, что домашний каталог MySQL задан как "Z:/mysql " директория.

Приведенный пример файла my.ini предназначен только для первичной инициализации MySQL сервера и тестовой его эксплуатации. Для продуктивной эксплуатации MySQL сервера этот файл необходимо пересмотреть и изменить под ваши требования.

# Пример файла my.ini для mysql-5.7.13-winx64 portable installation # Только для тестов! # В примере домашний каталог - Server Root "Z:/mysql " # Cлеши в путях должны быть ПРЯМЫМИ И ОДИНАРНЫМИ ! Завершающий слеш НЕ НУЖЕН . # Если путь содержит пробелы его нужно обязательно заключать в кавычки. # # Ссылки на документацию: # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html # http://dev.mysql.com/doc/refman/5.7/en/option-files.html # Необязательный блок директив для клиента port=3306 default-character-set=utf8 #Обязательный блок директив для сервера #Явное указание движка таблиц по умолчанию, не обязательно default-storage-engine = InnoDB default_tmp_storage_engine = InnoDB #кодировки сервера character-set-server=utf8 collation-server=utf8_general_ci #Временная зона(не обязательно) #default-time-zone="+00:00" #Выделение памяти под буфер innodb #Для разработческого сервера достаточно 10% от RAM innodb_buffer_pool_size = 512M #Пути к папкам с прямыми слешами без завершающего слеша #Путь к домашней директории сервера basedir=Z:/mysql #Путь к директории для файлов баз данных datadir=Z:/mysql/data #Путь к директории для экспорта и импорта файлов сервером #Не обязательный параметр #IP адрес который будет слушать сервер bind-address=127.0.0.1 #Порт port=3306 socket=Z:/mysql/tmp/mysql.sock #Разкомментировать если не нужно что бы сервер #использовал ip клиента вместо имени хоста (localhost) #skip-name-resolve #LOGS #Отключить запись в системный лог log_syslog=0 #Путь к файлу ошибок. Этот файл будет создан сервером log_error="Z:/mysql/logs/mysql-error.log" #log_timestamps = UTC #Не обязательно - логирование медленных запросов #log-queries-not-using-indexes=1 #slow-query-log=1 #long_query_time=1 #slow-query-log-file="Z:/mysql/logs/mysql-slow.log" #Не обязательный блок выделения памяти для SQL запросов #key_buffer_size = 32M #max_allowed_packet = 32M #table_open_cache = 2048 #join_buffer_size=128M #sort_buffer_size = 32M #read_buffer_size = 32M #read_rnd_buffer_size = 32M #myisam_sort_buffer_size = 16M #max_connect_errors = 1000000 #option "net_buffer_length": unsigned value 16777216 adjusted to 1048576 #net_buffer_length = 1M #Режимы, не обязательно. # sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES sql_mode=TRADITIONAL #Не обязательный блок quick #max_allowed_packet = 32M #Не обязательный блок force #Не обязательный блок no-auto-rehash #connect_timeout=2

Инициализация и переинициализация MySQL сервера

Если MySQL сервер уже был установлен и инициализирован ранее на машине и требуется выполнить его инициализацию /переинициализацию заново/повторно, то необходимо сделать резервные копии всех баз данных на сервере MySQL (кроме служебных ), остановить MySQL сервер, удалить содержимое каталога data , если нужно, то обновить дистрибутив MySQL и выполнить все настройки конфигурации, описанные выше и затем можно выполнить инициализацию заново, как это описано ниже.

Когда все каталоги и файл my.ini созданы в домашней директории MySQL сервера, то можно сделать инициализацию или переинициализацию MySQL , которая является первым необходимым действием перед запуском MySQL . В результате инициализации MySQL сервера будут созданы все необходимые для его работы файлы, базы данных и пользователь root с паролем. Для инициализации MySQL необходимо запустить файл mysqld.exe передав ему параметр initialize . Для выполнения этого перейдите в проводнике Windows в каталог /bin домашней директории MySQL сервера и находясь в этой папке запустите командную строку Windows cmd.exe . Что бы запустить cmd.exe именно в текущей папке зажмите клавишу Shift и щелкните правой кнопкой мыши в текущей папке, и в открывшемся контекстном меню выберите пункт "Открыть меню команд ". В таком варианте cmd.exe запуститься именно в текущей папке. Затем в командной строке наберите команду:

>mysqld --initialize --console

где:

  • mysqld - это запускаемый файл mysqld.exe;
  • --initialize - это параметр, указывающий на необходимость выполнить инициализацию MySQL сервера;
  • --console - это параметр задает вывод всех сообщения mysqld прямо консоли, что удобно. Так же эти сообщения будут записаны и в лог файл MySQL сервера.

Результатом вышеописанной команды будет инициализация MySQL сервера и создание пользователя root с первичным паролем. В командной строке вы уведите все сообщения, выданные MySQL сервером в процессе его инициализации, которые будут выглядеть примерно следующим образом:

Z:\mysql\bin>mysqld --initialize --console 2016-05-13T17:27:32.663509Z 0 TIMESTAMP with implicit DEFAULT value is deprecated. Please 2016-05-13T17:27:33.303111Z 0 InnoDB: New log files created, LSN=45790 2016-05-13T17:27:33.381111Z 0 InnoDB: Creating foreign key constraint system tables. 2016-05-13T17:27:33.412311Z 0 No existing UUID has been found, so we assume that this is t 2016-05-13T17:27:33.412311Z 0 Gtid table is not ready to be used. Table "mysql.gtid_execut 2016-05-13T17:27:33.490311Z 1 A temporary password is generated for root@localhost: Zqw6vMfxw

Как видно из примера в процессе инициализации был создан пользователь root@localhost с паролем Zqw6vMfxw. В MySQL 5.7 теперь пользователю root присваивается пароль при инициализации, раньше в предыдущих версиях пароль был пустой. Этот пароль нужно записать, для того что бы иметь возможность подключиться в MySQL в последствии. Так же в процессе инициализации в паке /data будут созданы файлы базы данных и служебных таблиц:

|-- data | `-- mysql | `-- performance_schema | `-- sys | `-- auto.cnf | `-- ib_buffer_pool | `-- ib_logfile0 | `-- ib_logfile1 | `-- ibdata1

В папке /logs будут созданы указанные вами в файле my.ini лог файлы:

|-- logs | `-- mysql-error.log | `-- mysql-slow.log

Запуск MySQL сервера

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

>mysqld --console

где: --console - это необязательный параметр, указывающий на вывод сообщений от MySQL прямо в командной строке. Их также можно прочитать в лог файле mysql-error.log.

В результате выполнения этой команды MySQL сервер будет запущен и в консоли будут выведены примерно следующие сообщения от mysqld .

Примерный лог при запуске MySQL сервера:

2016-05-13T18:02:26.282563Z 0 TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see doc umentation for more details). 2016-05-13T18:02:26.282563Z 0 Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider set ting it to a valid, non-empty path. 2016-05-13T18:02:26.282563Z 0 Z:\mysql\bin\mysqld (mysqld 5.7.12-log) starting as process 3504 ... 2016-05-13T18:02:26.297564Z 0 InnoDB: Mutexes and rw_locks use Windows in terlocked functions 2016-05-13T18:02:26.297564Z 0 InnoDB: Uses event mutexes 2016-05-13T18:02:26.297564Z 0 InnoDB: _mm_lfence() and _mm_sfence() are u sed for memory barrier 2016-05-13T18:02:26.297564Z 0 InnoDB: Compressed tables use zlib 1.2.3 2016-05-13T18:02:26.298564Z 0 InnoDB: Number of pools: 1 2016-05-13T18:02:26.298564Z 0 InnoDB: Not using CPU crc32 instructions 2016-05-13T18:02:26.386569Z 0 InnoDB: Initializing buffer pool, total siz e = 512M, instances = 1, chunk size = 128M 2016-05-13T18:02:26.446572Z 0 InnoDB: Completed initialization of buffer pool 2016-05-13T18:02:26.491575Z 0 InnoDB: Highest supported file format is Ba rracuda. 2016-05-13T18:02:26.575579Z 0 InnoDB: Creating shared tablespace for temp orary tables 2016-05-13T18:02:26.575579Z 0 InnoDB: Setting file ".\ibtmp1" size to 12 MB. Physically writing the file full; Please wait ... 2016-05-13T18:02:26.626582Z 0 InnoDB: File ".\ibtmp1" size is now 12 MB. 2016-05-13T18:02:26.632583Z 0 InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active. 2016-05-13T18:02:26.633583Z 0 InnoDB: 32 non-redo rollback segment(s) are active. 2016-05-13T18:02:26.635583Z 0 InnoDB: Waiting for purge to start 2016-05-13T18:02:26.686586Z 0 InnoDB: 5.7.12 started; log sequence number 2522095 2016-05-13T18:02:26.688586Z 0 Plugin "FEDERATED" is disabled. 2016-05-13T18:02:26.691586Z 0 InnoDB: Loading buffer pool(s) from Z:\mysql\data\ib_buffer_pool 2016-05-13T18:02:26.700587Z 0 Failed to set up SSL because of the foll owing SSL library error: SSL context is not usable without certificate and priva te key 2016-05-13T18:02:26.701587Z 0 Server hostname (bind-address): "127.0.0.1" ; port: 3306 2016-05-13T18:02:26.705587Z 0 - "127.0.0.1" resolves to "127.0.0.1"; 2016-05-13T18:02:26.706587Z 0 Server socket created on IP: "127.0.0.1". 2016-05-13T18:02:26.723588Z 0 InnoDB: Buffer pool(s) load completed at 16 0513 21:02:26 2016-05-13T18:02:26.766590Z 0 Event Scheduler: Loaded 0 events 2016-05-13T18:02:26.769591Z 0 Z:\mysql\bin\mysqld: ready for connections. Version: "5.7.12-log" socket: "" port: 3306 MySQL Community Server (GPL)

Пояснения для некоторых предупреждений из log файла при запуске MySQL:

  • сообщение : 2016-05-13T18:02:26.282563Z 0 TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see doc
    umentation for more details)
    . Пояснение : Это предупреждение, что TIMESTAMP с неявным указанием значению по умолчанию устарело. Это просто информационное напоминание, с ним ни чего делать не надо. Смысл этого сообщения в том, что начиная с версии MySQL 5.6 для столбцов TIMESTAMP уже не работает нестандартное поведение (это когда при не указании значения сервер сам подставлял значение). Теперь столбцы TIMESTAMP начиная с версии MySQL 5.6 ведут как и все столбцы. Если значение не передано и по умолчанию тоже не задано, то будет записано NULL , а не текущее время как раньше. Опция explicit_defaults_for_timestamp , которая предназначалась для включения нестандартного поведения теперь является устаревшей и будет удалена.
  • сообщение: 2016-05-13T18:02:26.282563Z 0 Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider set ting it to a valid, non-empty path . Пояснение: Это предупреждающее сообщение, что не указана директория для выгружаемых и загружаемых файлов. Это не обязательный параметр. Его можно задать как директорию, которая должна существовать. По умолчанию, параметр не задан и MySQL может использовать файлы из любой директории. Для указания явным образом этой директивы добавьте в my.ini как выше в примере значение secure-file-priv=Z:/mysql/files , где Z:/mysql/files директория в которой MySQL будет ограничен при работе с внешними файлами.

Если все прошло удачно и не возникло ошибок , то вы увидите в диспетчере задач Windows работающий процесс mysqld.exe , который и является MySQL сервером.

Подключение к MySQL из Workbench

Для настройки и администрирования MySQL сервера удобно пользоваться программой MySQL Workbench . Желательно использовать последнею актуальную версию Workbench , которая поддерживает данный релиз MySQL 5.7 , потому что при использовании старых SQL менеджеров, не поддерживающих новую версию MySQL 5.7 можно повредить системные таблицы, например, при редактировании пользователей с помощью интерфейса устаревшего SQL менеджера.

Если сервер успешно запустился и нет критических ошибок, то можно выполнить подключение к нему из программы MySQL Workbench . Для этого запустите программу Workbench и сдайте новое подключение к MySQL серверу, в параметрах которого укажите следующее:

  • Hostname = 127.0.0.1
  • Port = 3306
  • Username = root
  • Password = пароль выданный при инициализации

Теперь, созданное подключение нужно сохранить, нажав Close . Если, еще до сохранения/закрытия создаваемого подключения попробовать протестировать соединение, то будет выдано сообщение о невозможности подключения к MySQL серверу по причине необходимости выполнить смену первичного пароля. Поэтому, просто закройте только что созданное подключение и оно сохраниться, и будет доступно на вкладке Home Workbench.

Запустите на вкладке Home только что созданное новое подключение к MySQL серверу. При первом подключении будет открыт диалог смены первичного, выданного при инициализации MySQL сервера пароля. Выполните смену пароля, установив новый пароль для root пользователя. Вы так же вы можете задать здесь пустой пароль для root , что может быть удобно, если это локальная установка MySQL, предназначенная для вашей среды web разработки.

Если все прошло успешно, то вы подключитесь к MySQL серверу и в Workbench откроется окно с опциями для выполнения различных манипуляций. Вы можете просмотреть статус сервера, его текущее состояние, имеющиеся подключения и т.п. Программа MySQL Workbench является достаточно мощным инструментом для управления, мониторинга, разработки и администрирования MySQL сервера. Так же через Workbench вы можете выполнять правку конфигурационного файла my.ini . Для этого вам нужно будет на вкладке Home открыть правой кнопкой мыши на редактирование созданное подключение к вашему portable MySQL серверу и на закладке System Profile отредактировать в параметре Configuration File путь к вашему my.ini и заново подключиться к серверу. После чего в пункте Option File в левой части окна Workbench вы сможете открыть графический диалог редактирования директив конфигурационного файла MySQL my.ini . В этом графическом интерфейсе вы сможете изменить или удалить существующие и добавить новые параметры. Все ваши изменения будут занесены в файл my.ini программой Workbench. Так же удобство этого графического интерфейса в том, что там отображаются параметры по умолчанию для не указанных явно в файле my.ini директив и приведены краткие описания к ним (детали см. в скринкасте).

Смена пароля root пользователя

Если вам не удается подключиться к MySQL серверу по причине неверного пароля, например, если вы не записали первичный пароль root пользователя, выданный сервером при инициализации, или вы хотите сменить пароль любого другого пользователя. В таких случаях вы можете выполнить изменение пароля пользователя MySQL при помощи SQL запроса путем запуска сервера с параметром init-file . Для этого создайте в домашней директории MySQL сервера текстовый файл с названием, например, mysql-init.txt (название файла может быть любым ). В этот файл поместите SQL запрос вида:

ALTER USER "root" @"localhost" IDENTIFIED BY "MyNewPass" ; -- ИЛИ ALTER USER "root" @"localhost" IDENTIFIED BY "" ; -- пустой пароль

где:

  • "root" @"localhost" - пользователь, для которого требуется сменить пароль;
  • "MyNewPass" - новый пароль для пользователя. Если нужно задать пустой пароль, просто укажите пустые одинарные кавычки.

Теперь можно приступать к смене пароля. Для этого убедитесь, что процесс mysqld.exe не запущен в настоящий момент. Если это не так, то завершите в диспетчере задач Windows процесс mysqld.exe т.к. завершить его из командной строки при неизвестном пароле root пользователя не удастся. Затем откройте окно команд в папке /bin и выполните команду:

>mysqld --init-file=Z:/mysql/mysql-init.txt

где в параметре --init-file укажите путь к файлу с SQL запросом на смену пароля. В примере это Z:/mysql/mysql-init.txt файл.

Выполнение этой команды приведет к запуску MySQL сервера и к смене пароля указанного пользователя. Если все прошло успешно, то вы увидите в диспетчере задач запущенный процесс mysqld.exe и сможете подключиться к MySQL серверу под данным пользователем с новым паролем. Если при выполнении этой команды cmd зависает, ее окно нужно закрыть. После смены пароля файл mysql-init.txt можно удалить. Если при смене пароля допустили ошибки и пароль не сменился, и подключиться не получается, то нужно все сделать заново. Остановить сервер в диспетчере задач, выбрав завершение процесса, проверить файл и SQL запрос на смену пароля в нем и попробовать снова.

Запуск и остановка MySQL .bat файлами

Для удобства запуска и остановки вашего portable MySQL сервера можно в его домашнем каталоге создать два .bat файла командной строки. Например, start.bat и stop.bat , в которые записать команды запуска и остановки MySQL. Таким образом вы сможете запускать и останавливать ваш MySQL сервер простым кликом по соответствующему файлу, что удобно т.к. не нужно открывать cmd и набирать команду руками.

Пример файла запуска MySQL - start.bat:

@echo off start Z:\mysql\bin\mysqld exit

Пример файла остановки MySQL - stop.bat:

@echo off start Z:\mysql\bin\mysqladmin -u root shutdown exit

Настройки Windows для MySQL

Для удобства работы в cmd с mysqld можно добавить в конец переменной PATH через точку с запятой путь к директории с файлом mysqld.exe вашего MySQL сервера, например, Z:\mysql\bin . Это нужно делать в настройках Windows: Computer > Properties > Advanced > System Properties > System Variables , где выбрать редактирование переменной Path . Тогда уже будет не важно в каком каталоге запущена cmd для вызова mysqld , значение пути будет барться из системной переменной Windows - PATH .

Также можно настроить запуск и остановку MySQL как системной службы, для чего выполните в cmd следующие необходимые вам команды:

Установка MySQL как службы с авто запуском:

>"Z:\mysql\bin\mysqld" --install

Установка MySQL как службы с ручным запуском:

>"Z:\mysql\bin\mysqld" --install-manual

Удаление MySQL службы:

>"Z:\mysql\bin\mysqld" --remove

Команды MySQL в cmd Windows

Ниже представлены некоторые необходимые команды для работы с MySQL сервером из командной строки Windows - cmd:

Запуск MySQL сервера :

>Z:\mysql\bin\mysqld

Вход к консоль mysql при наличии пароля:

>mysql -u root -p Enter password: (enter root password here)

Вход к консоль mysql, если пароля у пользователя нет, то без ключа -p:

>mysql -u root

Начало строки вида mysql> ... означает, что вы в данный момент находитесь в консоли MySQL сервера и здесь можно писать SQL запросы.

Выйти из консоли MySQL :

Mysql>exit

Показать имена имеющихся баз данных:

>mysqlshow -u root

Показать имена таблиц базы данных mysql (служебная база данных MySQL )

>mysqlshow -u root mysql

Остановка в cmd запущенного MySQL сервера:

>mysqladmin -u root -p shutdown Enter password: (enter root password here)

Остановка в cmd запущенного MySQL сервера если root не имеет пароля:

>mysqladmin -u root shutdown

Скринкаст: Установка MySQL 5.7.13 в Windows из zip архива, MySQL Workbench

В скринкасте представлена портативная установка MySQL 5.7.13 в Windows из zip архива и выполнена первичная инициализация MySQL сервера, предварительная настройка конфигурации в my.ini, смена пароля root пользователя, настройка подключения к MySQL серверу при помощи MySQL Workbench. Такая установку прекрасно подойдет для локального разработческого WEB сервера и среды разработки под Apache, MySQL, PHP на Windows.

) - это одна из самых используемых СУБД (Систем Управления Базами Данных) с открытым кодом. Версия Community распространяется на условиях лицензии GPL.

Приступим к установке. Запускайте установочный пакет (mysql-essential-5.0.51b-win32.msi). Установки по умолчанию вполне нормальны (сервер СУБД установится в C:\Program Files\MySQL\MySQL Server 5.0). После окончания установки оставьте флажок «Configure the MySQL Server now» включённым. Запустится конфигуратор сервера MySQL.

Нажмите Next.

В этом диалоге выберите «Detailed Configuration».

Дальше на выбор предлагаются три опции: «Developer Machine», «Server Machine» и «Dedicated MySQL Server Machine». Как можно догадаться из описаний, первая опция указывает потреблять минимум памяти, вторая - для среднего потребления, третья - для максимального. Если вы устанавливаете серверы на домашний компьютер, который используете, например, для игр, то оставьте первую опцию; если вы ставите серверы на отдельный компьютер (например, их у вас два и вы хотите отвести второй под сервер), то выберите вторую опцию. Третий вариант вам вряд ли понадобится (он нужен для выделенных серверов СУБД).

На следующей странице вы выбираете доступные движки баз данных. Движок MyISAM быстрее, но не поддерживает транзакции, а InnoDB работает немного медленнее, но поддерживает транзакции. Впрочем, если вы не собираетесь разрабатывать свои веб-приложения, то это вас не должно особо волновать. Выберите «Multifunctional Database», чтобы активировать оба движка.

В следующем диалоге вы выбираете место хранения таблиц InnoDB (этот шаг будет только если вы выбрали первую или вторую опцию на предыдущем шаге). Место хранения по умолчанию вполне нормально.

На следующем шаге вы устанавливаете количество одновременных подключений. Первая опция - 20, вторая - 500, третья - ваше число. Примечание: 20 соединений - это не значит, что на ваш сайт смогут зайти только 20 пользователей одновременно. Сессия скрипта с БД длится максимум пару секунд, поэтому пользователи на сайте не подключены к базе постоянно. Это что-то вроде распределения процессорного времени между программами. Первой опции вполне достаточно.

На следующей странице - сетевые настройки сервера и режим SQL. Оставьте настройки по умолчанию.

Следующий шаг - выбор кодировки по умолчанию Я предпочитаю установить кодировку utf8 по умолчанию - это вторая опция. Вы также можете выбрать третью опцию и установить кодировку cp1251. В любом случае, насколько я знаю, большинство CMS указывают кодировку явно при создании таблиц, так что это понадобится, если вы собираетесь разрабатывать свои веб-приложения.

Следующий диалог - настройки сервиса MySQL. Оставьте здесь всё по умолчанию.

На следующем шаге установите пароль для суперпользователя (root"а). Изначально доступ к БД извне за суперпользователя закрыт (отключена соответствующая галочка на этой странице). Так что здесь длинный пароль не так необходим. Но в любом случае безопасность - дело не последнее, поэтому установите какой-нибудь пароль. В любом случае, потом мы создадим ещё одного пользователя. Не устанавливайте опцию «Create An Anonymous Account» - это вредно с точки зрения безопасности.

Всё, теперь нажмите Execute. Настройки применятся. Нажмите Finish для завершения настройки.

Далее мы установим пакет MySQL GUI Tools. Это очень удобный набор утилит для администрации MySQL-сервера от самих разработчиков СУБД. Я лично предпочитаю именно GUI Tools, а не phpMyAdmin. Если вы не хотите использовать MySQL GUI Tools, а предпочитаете phpMyAdmin, то можете пропустить этот шаг.

Запускаем установщик (mysql-gui-tools-5.0-r12-win32.msi). Установки по умолчанию вполне удовлетворительны. После окончания установки доступ к утилитам можно получить из меню «Пуск». Запустите MySQL Administrator.

В поле «Server Host» введите localhost, в поля «Username» и «Password» - root и пароль, который вы установили в конфигураторе, соответственно. Нажмите OK. Появится такое окно:

Что за что здесь отвечает, вы можете посмотреть в статье, «Работа с MySQL в MySQL GUI Tools».
Переходим на страницу «Catalogs». Снизу появится список баз данных. Нажмите на пустом месте в нём правой кнопкой и выберите «Create New Schema» в меню. Введите имя новой базы данных, например, SiteForum. Новая база данных будет создана. Сейчас мы установим для неё пользователя и права доступа. Переходим на страницу «User Administration».

Нажмите кнопку «Add new user». В поле «MySQL User» введите, например, forumuser. В поле «Password» можете ввести что-нибудь, а можете и не вводить. Что-то сложное вводить не обязательно. Перейдите на вкладку «Schema Privileges». В списке слева выберите только что созданную базу данных - siteforum. В правом списке появится список привилегий для данной базы данных. Вы можете выбрать все привилегии. Потом нажмите кнопку «<» (или «<<» для переноса всех привилегий). Теперь привилегии пользователя установлены, вы можете нажать кнопку «Apply changes».
Всё, сервер готов к работе. Теперь при установке форума выберите базу данных siteforum и пользователя forumuser.

Для Win 32 выбираем дистрибутив: Windows (x86, 32-bit), Zip-Archive.

Для Win 64: Windows (x86, 64-bit), Zip-Archive.

После нажатия на кнопку Download вы увидите форму для регистрации, ее можно пропустить, нажав на ссылку внизу — No thanks, just take me to the downloads .

2. Создаем папку установки. Например . И распаковываем в нее содержание архива таким образом, чтобы папки bin, data, docs и прочие были в корне папки установки.

3. Переходим к созданию конфигурационного файла (my.ini). За основу берем один из типовых файлов:

  • my-small.ini — подойдет тем, кто использует MySQL время от времени и не хочет, чтобы сервер занимал много ресурсов.
  • my-medium.ini — тоже не требовательная к ресурсам конфигурация, но подойдет тем, кто использует MySQL на постоянной основе (хороший выбор для для домашнего веб-сервера).
  • my-large.ini и my-huge.ini — для систем, использующихся как выделенный MySQL сервер. Впрочем, my-large.ini можно использовать для домашнего сервера, если нужна дополнительная производительность MySQL (512 Мб оперативной памяти не так уж и много по нынешним временам).
  • my-innodb-heavy-4G — для выделенных серверов, имеющих от 4 Гб оперативной памяти и использующих только таблицы типа InnoDB.

В этом примере за основу я выбрал my-medium.ini. Переименовываем его в my.ini и размещаем в корне папки установки (C:\Program Files\MySQL\MySQL Server 5.5 ).

Открываем для редактирования (в обычном Блокноте) и сразу после строчки дописываем два параметра:

Basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data

Обратите внимание, что в путях используется прямой слэш (/), а не обратный (\).

basedir — это путь к папке установки.

datadir — путь к папке данных (где хранятся все БД). Иногда имеет смысл разместить данные на отдельном диске, чтобы повысить производительность или обеспечить надежность.

На всякий случай привожу фрагмент конфигурационного файла, после внесения изменений:

# The MySQL server basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M

4. Следующий этап — добавить путь C:\Program Files\MySQL\MySQL Server 5.5\bin в переменную среды PATH, чтобы упростить запуск MySQL из командной строки. Для этого открываем Свойства системы -> Дополнительные параметры системы -> на закладке Дополнительно в самом низу кнопка «Переменные среды…». В открывшемся окне пролистываем системные переменные пока не найдем Path. Выделяем эту строку и нажимаем «Изменить…». В конце строки дописываем свой путь, сохраняя существующие параметры:

Обратите внимание, что пути разделяются точкой с запятой. Убедитесь, что в начале и в конце вашего пути точка с запятой поставлена.

5. Перед тем как осуществить пробный пуск, открываем входящий порт TCP 3306 в брандмауэре Windows:

Если в системе установлен дополнительный брандмауэр, то в нем также необходимо открыть порт TCP 3306 для входящих подключений.

6. Теперь осуществляем тестовый запуск. В командной строке, запущенной от имени администратора (это обязательно, если на Семерке или Висте включен UAC), выполняем:

Mysqld --console

На экран будет выведено несколько строк. Если запуск прошел успешно, то последняя строка будет выглядеть примерно так:

Version: "5.5.9-log" socket: "" port: 3306 MySQL Community Server (GPL)

Оставляем это окно открытым, и открываем еще одно окно командной строки, в котором вводим:

Mysql -u root

Если подключение прошло без ошибок, вы увидите приглашение командной строки: mysql>

Посмотрим какие базы у нас есть:

Show databases;

Точка с запятой в конце SQL-запроса ОБЯЗАТЕЛЬНА!

Ответ команды:

Теперь мы окончательно убеждены, что сервер работает.

7. Переходим к следующему этапу — необходимо установить пароль администратора MySQL (пользователь root). По умолчанию пароль не установлен, и это надо исправить. В том же окне MySQL вводим следующие команды:

Use mysql UPDATE user SET password = PASSWORD("ваш_пароль") WHERE user = "root";

Проверяем результат:

SELECT user, host, password FROM user;

Как видно на скриншоте колонка password заполнена, значит пароль установлен.

Перед выходом выполняем команду:

FLUSH PRIVILEGES;

Теперь при подключении необходимо вводить пароль. Для этого используем ключ -p:

Mysql -u root -p

Для завершения работы MySQL выполняем:

Mysqladmin -u root -p shutdown

8. Последний этап — запуск MySQL в качестве системной службы Windows.

Убедитесь, что в системе нет активных процессов MySQL.

В командной строке, запущенной от имени администратора, выполняем:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --install

Путь к mysqld необходимо указывать полностью (даже если он прописан в PATH)!

Для запуска службы, открываем «Управление компьютером», и вручную запускаем службу MySQL:

Или проще через командную строку:

Net start mysql

Для удаления службы, предварительно ее останавливаем:

Net stop mysql

и выполняем:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --remove

MySQL – это система управления базами данных, используемая в основном в малых и средних приложениях. СУБД бесплатна для некоммерческого пользования. MySQL использует язык запросов SQL и имеет множество расширений к этому стандарту. К плюсам MySQL можно отнести:

Многопоточность
Неограниченное количество пользователей, одновременно работающих с базой данных
Быстрое выполнение команд
Поддержка большого количества типов таблиц

Установка MySQL

Для установки будем использовать версию программы 5.5.23. Запускаем дистрибутив с программой:

Рис. 1. Окно начала установки, жмем Next.

Рис. 2. Принимаем лицензионное соглашение

Рис. 3. Выбираем выборочный тип установки Custom

Рис. 4. Окно выбора дополнительных компонентов и установочной директории, оставляем все как есть, жмем Next.

Рис. 5. Жмем Install для установки программы

Рис. 6. Нажимаем Finish для окончания установки и перехода к настройке сервера

Рис. 7. Выбираем Detailed Configuration – детализарованную настройку

Рис. 8. Выбираем Developer Machine – это означает, что MySQL будет использовать минимум оперативной памяти, чтобы не мешать выполняться другим приложениям

Рис. 9. Выбираем пункт Multifunctional Database, это позволит в дальнейшем работать с различными типами таблиц

Рис. 10. Выбор диска и директории для хранения таблиц InnoDB, оставляем как есть

Рис. 11. Здесь вибирается максимально возможное количество подключений к серверу MySQL. Выбираем Decision Support (DSS)/OLAP

Рис. 12. Здесь мы оставляем включенной галочку на Enable TCP/IP Networking, оставив включенной поддержку TCP/IP соединений. Порт также оставляем равным 3306, это стандартный порт для сервера MySQL. Отметка Enable Strict Mode задает режим строгого соответствия стандарту SQL, ее оставляем нетронутой

Рис. 13. Отметив Manual Selected Default Character Set / Collation и выбрав из ниспадающего меню кодировку cp1251 мы обеспечиваем корректную работу с русским языком

Рис. 14. Галочка на Install As Windows Service означает, что сервер будет запущен в виде службы, что является рекомендуемым способом запуска. В ниспадающем окне выбирается имя службы, оставляем как есть. Снимем галочку с Launch the MySQL Server automatically, это означает, что сервер будет запускаться вручную. Галочку на Include Bin Directory in Windows PATH оставляем на месте

Рис. 15. Устанавливаем какой-нибудь простой пароль для пользователя root

Рис. 17. Путь рядом со строкой Write configuration file указывает на расположение файла конфигурации, который необходимо будет немного отредактировать

Редактирование файла конфигурации

Редактируем блокнотом файл конфигурации my.ini , расположенный по адресу, указанному в предыдущем абзаце (напротив строки Write configuration file ) в меню окончания установки. Пути к файлам могут не совпадать с написанными, поэтому стоит указывать директории того компьютера, на котором ведется работа.

1. В раздел , после строки:

добавляем строку, определяющую каталог, содержащий файлы описания кодировок:

2. В раздел , после строки:

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

character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.5/share/charsets"

init-connect=”SET NAMES cp1251″

default-storage-engine=INNODB

заменяем изначально устанавливаемый тип таблиц на MYISAM:

default-storage-engine=MYISAM

Сохраните изменения и закройте файл my.ini. Установка и настройка сервера завершена.

Установка графического интерфейса СУБД

Для примера будем использовать графический интерфейс MySQL Workbench версии 5.2.40

Рис. 18. Выбираем директорию для установки графического интерфейса нажав Change

Рис. 19. Устанавливаем графический интерфейс в папку с установленной СУБД

Рис. 20. Выбираем тип установки Complete (по умолчанию)

Рис. 21. После нажатия на кнопку Install начнется процесс установки

Рис. 22. Окно окончания установки, жмем Finish

Примеры работы с MySQL

Для начала работы запускаем установленный нами ранее MySQL Workbench:

Рис. 23. Главное окно программы. В списке подключений мы видим уже готовое подключение, которое было создано при установке СУБД. При двойном клике на Local instance MySQL появится окно, в котором нужно будет ввесть пароль базы данных, который мы задавали на Рис. 15

Рис. 24. Откроется окно редактирования запросов. Для начала работы необходимо подключится непосредственно к БД. Мы будем использовать уже созданную тестовую БД под названием test. Двойным кликом по имени БД в левой части рабочего окна программы осуществляем подключение. Можно начинать писать тестовые запросы в окне ввода посредине рабочего окна

Примеры SQL запросов и их реализация с помощью MySQL Workbench

1. Создание таблицы

CREATE TABLE example
id int(11) NOT NULL PRIMARY KEY auto_increment,
name varchar(50),
age int(2),
info text,
date date
);

Данный запрос создаст таблицу example, в которой id – первичный ключ (ставится автоматически), name – поле текстового формата с допустимым максимальным значением 50 символов, age – поле числового значения с максимально допустимым количеством символов 2, info – текстовое поле неограниченного объема, date – поле типа «дата», автоматически использующее сегодняшнюю дату.

Поместим этот запрос в поле ввода программы и нажмем ctrl+shift+enter тем самым выполнив его:

Рис. 25. После выполнения запроса следует кликнуть правой кнопкой мыши по имени БД test и выбрать Refresh All. Тогда в раскрывающемся списке Tables появится наша созданная таблица example.

Кликаем по ней правой кнопкой и выбираем Edit Table Data:

Рис. 26. Программа отобразит нам созданную таблицу.

Рис. 27. И нажмем Apply. Откроется окно потдверждения выполнения запроса (запросы в программе формируются автоматически и выполняются в виде скриптов), где нужно будет подтвердить действия нажатием кнопок Apply и Finish.

Попробуем использовать запрос на выборку:

SELECT * FROM example WHERE id = "2"

который выберет из таблицы строку со значением поля id равным 2. Выполняем запрос комбинацией клавиш ctrl+shift+enter:

Рис. 28. Результат выполнения запроса

Список использованных материалов и ресурсов Интернет:

Друзья! Вступайте в нашу

Для Win 32 качаем: Windows (x86, 32-bit), MSI Installer Essentials — Recommended

Для Win 64 качаем: Windows (x86, 64-bit), MSI Installer Essentials — Recommended

После нажатия на кнопку Download вы увидите форму для регистрации, ее можно пропустить нажав на ссылку внизу (» No thanks, just take me to the downloads!).

Запускаем установщик и нажимаем Next:

Выбираем тип установки Custom:

Выбираем компоненты. Здесь можно изменить путь установки файлов MySQL (выделить MySQL Server, нажать кнопку Change), а также путь для хранения баз данных (выделить MySQL Server Datafiles, нажать кнопку Change):

Проверяем пути и нажимаем Install:

Завершающий этап установки. Отмечаем опцию «Configure the MySQL Server now» (настроить сервер MySQL прямо сейчас) и нажимаем Finish:

Настройка MySQL

После завершения установки запускается MySQL Server Instance Configuration Wizard (его можно запустить вручную из меню Пуск -> Все программы -> MySQL -> MySQL Server 5.1 -> MySQL Server Instance Config Wizard). Нажимаем Next:

Выбираем сценарий установки: Developer Machine — для установки на домашний компьютер (наш выбор), Server Machine — для установки на сервер, Dedicated MySQL Server Machine — для установки на сервер полностью выделенный под MySQL. Эти опции влияют в первую очередь на объем потребляемой MySQL памяти:

MySQL поддерживает два основных типа БД (InnoDB — с поддержкой транзакций и MyISAM — без транзакций). Multifunctional Database — будет установлена поддержка БД обоих типов (наш выбор). Transactional Database Only — будет установлена поддержка только InnoDB. Non-Transactional database Only — будет установлена поддержка только myISAM.

Если на предыдущем этапе была выбрана поддержка InnoDB, здесь можно настроить расположение файлов данных InnoDB:

Поддержка одновременных соединений. Decision Support — до 20 одновременных соединений (наш выбор). Online Transaction Processing — до 500 соединений. Manual Setting — ручная установка количества соединений.

Отмечаем опции «Enable TCP/IP Networking» и «Enable Strict Mode». Port Number оставляем без изменений — 3306. Если к серверу планируются прямые подключения с других компьютеров, отмечаем опцию «Add firewall exception for this port» (открыть порт в брандмауэре windows).

Выбираем кодировку по умолчанию. Сейчас самый разумный выбор — это UTF-8. Выбираем опцию Best Support For Multilingualism:

Обязательно отмечаем опцию «Install as Windows Service» (запускать как службу Windows). Отмечаем «Launch the MySQL Server automatically», если нужен автозапуск службы.

Завершающий этап. Установка пароля администратора (root). Этот пароль лучше не терять! Опции «Enable root access from remote machines» и «Create An Anonymous Account» отмечать не рекомендую, т.к. они снижают безопасность.

Как быстро проверить установку?

Открываем Пуск -> Все программы -> MySQL ->MySql Server 5.1 -> MySQL Server Command Line Client (утилита для работы с MySQL в командной строке).

Далее вводим пароль администратора (root). Если пароль правильный, вы попадете в командную строку (mysql>). Введите команду: show databases; (точка с запятой на конце обязательны). В результате вы должны увидеть список баз данных (как минимум две — information_schema и mysql). Это означает, что сервер работает правильно. Закрываем командную строку выполнив команду exit.

ВНИМАНИЕ! Для подключения к МySQL из PHP, с сервера установленного на том же компьютере, необходимо в качестве адреса сервера MySQL вместо localhost использовать 127.0.0.1 !!!

Природа этого глюка до конца мне непонятна, но на его обнаружение потратил пол дня…

Что делать, если автоматическая установка дает сбой?

Как работать с базами данных?

Одна из самых популярных программ (а может и самая популярная) для работы с MySQL — это phpMyAdmin .