Рубрики
Веб-мастеринг

Ручная установка MySQL на Windows

Когда автоматическая установка дает сбой, на помощь приходит ручной режим.

Приступаем к установке:

1. Качаем zip-архив MySQL со страницы загрузки: http://www.mysql.com/downloads/mysql/.

Для 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. Создаем папку установки. Например C:\Program Files\MySQL\MySQL Server 5.5. И распаковываем в нее содержание архива таким образом, чтобы папки 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).

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

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

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

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

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

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

# The MySQL server
[mysqld]
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
InnoDB_sort_buffer_size = 8M

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

Меняем PATH
Меняем PATH

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

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

Открываем порт TCP 3306
Открываем порт TCP 3306

Если в системе установлен дополнительный брандмауэр, то в нем также необходимо открыть порт 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-запроса ОБЯЗАТЕЛЬНА!

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

Командная строка MySQL
Командная строка MySQL

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

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

use mysql

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

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

SELECT user, host, password FROM user;

Ответ:

Таблица users
Таблица users

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

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

FLUSH PRIVILEGES;

и затем:

exit

Теперь при подключении необходимо вводить пароль. Для этого используем ключ -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:

Запуск службы MySQL
Запуск службы MySQL

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

net start mysql

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

net stop mysql

и выполняем:

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

Статьи по теме:

61 ответ к “Ручная установка MySQL на Windows”

Здравствуйте.
Пожалуйста ответьте можно ли установить MySql без прав локального администратора?
С Уважением. Олег.

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

значит, что-то было неверно прописано в переменную path в пункте 4. либо не перезапущена консолька после этого

Ошибка

[ERROR] Fatal error: Can’t open and lock privilege tables: Table ‘mysql.user’ doesn’t exist
[ERROR] Aborting

Как это исправить?
если в ini прописать skip grant tables, то ошибка пропадает mysql запускается, но я так понял никакие БД не создаются и в show databases не появляется весь тот список, который приведен у вас.

Table ‘mysql.plugin’ doesn’t exist
[ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.

Еще одна ошибка

Подскажите, какой должен быть файл my.ini
Тот, который в примерах — не работает!

После ввода команды «mysql -u root» выдаёт ошибку «ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)».

Обычно это означает, что mysqld.exe не запущен. Попробуйте запустить в консоли
mysqld —console
и, не закрывая эту консоль, в другой
mysql -u root
Либо mysqld выведет в консоль ошибки, либо все будет работать.

Ввожу пароль через команду
UPDATE user SET password = ‘1234’ WHERE user = ‘root’;
Проверяю таблицу
SELECT user, host, password FROM user;
Поле с паролем в виде хеша, содержит не хеш, а то что вводил 1234.
После выхода войти не могу.
Почему пароль занёсся, как есть, а не хешем? Не верный вариант ввода?
Как сбросить пароль?

Я думал, что PASSWORD это просто слово означающее пароль, т.е. вместо него ввести пароль. А в скобках приведён пример, что вводить в кавычках.
Блин. Теперь его надо сбросить.

в пункте 8, при попытке запуска установленной службы через командную строку выдает ошибку: net не является внутренней или внешней командой, исполняемой программой или пакетным файлом. подскажите что делать плиз.
P.S. писал в командной строке, запущенной от админа.

Проверьте, что у вас в системе присутствует файл C:\Windows\System32\net.exe и что папка system32 добавлена в переменную окружения PATH или используйте список служб из панели управления.

Иван Рибинин, да, вы правы на счет конфига, но всё заработало с первого раза! Автору стати большое спасибо.

Всё работает.
Естественно, my.ini пришлось существенно дописать.
Вы б его сразу полностью выкладывали, а не «фрагмент конфигурационного файла».
Все равно Спасибо!

Добавить комментарий

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


Срок проверки reCAPTCHA истек. Перезагрузите страницу.