Каждый раз когда, делаю установку, обновление новой версии сервера MySQL под Windows, необходимо перекинуть все базы данных со старой версии на новую. В этом случае удобно запустить обе версии MySQL на разных портах, а не останавливать одну службу, потом другую, потому что, что-то забываем, что-то не надо сразу. Итак последовательность действий.
1. Скачать MySQL Server:
MySQL Downloads — выбираем версию которая нас интересует. Текущая версия MySQL 5.1 Release Candidate, все еще релиз, и самый последний дистрибутив, который можно скачать MySQL 5.1.26. Для работы в Windows пользуюсь MySQL без инсталляции — Without installer (unzip in C:\), в архиве это весит 98.3 Мб.
Качаем напрямую Download или выбираем зеркало Pick a mirror, где вежливо отказываемся «» No thanks, just take me to the downloads!» и получаем прямую ссылку.
2. Установка MySQL
У меня MySQL, Apache, PHP, Python, и др. софт находиться на диске D:\:
d:/usr/
apache2/
php/
mysql/ — текущая версия сервера
Это позволяет не переустанавливать каждый раз все заново при новой инсталляции Windows. Очень удобно и переносимо.
Создаем папку d:/usr/mysql_5.1.26-rc/ и распаковываем туда наш архив mysql-noinstall-5.1.26-rc-win32.zip.
3. Настройка MySQL
Можно скопировать файл конфигурации my.ini с предыдущей версии, только если это версия 5.1, более старые конфигурации могут отличаться. Или настраиваем новый файл.
Делаем все с нуля.
Есть четыре файла настройки MySQL: my-huge.ini, my-large.ini, my-medium.ini, my-small.ini. Отличаются они разными опциями и зависят от целей, ресурсов сервера. Берем my-medium.ini и переименовываем в my.ini — это наш файл конфигурации.
Добавляем следующие полезные опции в секцию [mysqld].
[mysqld] # меняем временно порт с 3306 на 3307 port = 3307 # добавляем поддержку кодировки UTF-8 по умолчанию, это решает много проблем default-character-set=utf8 default-collation=utf8_unicode_ci
4. Запуск MySQL
Запускать MySQL в Windows будем как службу. Для это её надо добавить в сервисы. Можно запускать сервис вручную, или включить автозагрузку в «Сервисах».
Добавление службы
Создаем следующие bat-файлы, все команды можно запускать в консоли, но так удобнее.
install_service.bat — инсталляция сервиса
"d:\usr\mysql_5.1.26-rc\bin\mysqld" --install-manual MySQL5_1_26-rc --defaults-file="d:\usr\mysql_5.1.26-rc\my.ini"
MySQL5_1_26-rc — название нашей службы, оно обязательно должно быть уникальным. Если зайти в «Службы»: Настройка — Панель Управления — Администрирование Службы , то можно увидеть новый сервис: MySQL5_1_26-rc и в её настройках параметр запуска
d:\usr\mysql_5.1.26-rc\bin\mysqld --defaults-file=d:\usr\mysql_5.1.26-rc\my.ini MySQL5_1_26-rc
remove_service.bat — удаления сервиса из списка служб
NET STOP MySQL5_1_26-rc "d:\usr\mysql_5.1.26-rc\bin\mysqld" --remove MySQL5_1_26-rc
service_start_mysql.bat — запуск сервиса
NET START MySQL5_1_26-rc
service_stop_mysql.bat — остановка сервиса
NET STOP MySQL5_1_26-rc
5. Подключение к БД
После инсталляции сервиса и его запуска, нужно проверить работоспособность MySQL сервера.
Настройки подключения по умолчанию:
хост: localhost
имя пользователя: root
пароль:
порт: 3306 (но мы его поменяли, теперь он 3307)
Можно воспользоваться каким-нибудь клиентом, например: SQLyog. Или с помощью консольной утилиты mysql:
# очень важно использовать полный путь к новому серверу и порт 3307 D:> d:\usr\mysql_5.1.26-rc\bin\mysql -h localhost -P 3307 -u root # отобразить список БД mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test | +--------------------+ 3 rows in set (0.00 sec)
6. Экспорт базы данных
Для экспорта БД лучше воспользоваться стандартным программой MySQL mysqldump. Все родные утилиты более производительнее, чем другие.
"d:\usr\mysql\bin\mysqldump.exe " -hlocalhost -uroot -proot --add-drop-table --all-databases > mysql_all_db.sql
На выходе получаем файл — mysql_all_db.sql.
Можно добавить опцию —add-drop-database — но тогда будут удалены все БД при импорте. Когда это нужно? Например, если нужно импортировать БД со всеми пользователями, их привилегиями, правами.
7. Импорт БД
Для импорта воспользуемся консольной утилитой mysql.
# без пароля d:\usr\mysql_5.1.26-rc\bin\mysql -h localhost -P 3307 -u root < mysql_all_db.sql # с указанием пароля d:\usr\mysql_5.1.26-rc\bin\mysql -h localhost -P 3307 -u root -proot < mysql_all_db.sql # или с паролем, но с вводом его вручную d:\usr\mysql_5.1.26-rc\bin\mysql -h localhost -P 3307 -u root -p < mysql_all_db.sql
8. Окончательная настройка нового MySQL сервера
Поменять порт в новом сервере на 3306
Если старый сервер не нужен, то как минимум надо его службу остановить, оключить из автозапуска сервисов
Если вдруг понадобятся данные из старого сервера, рекомендую создать bat-файлы для него, и настроить его на другой порт, тогда не будет конфликтов с текущим.
Чтобы консольные утилиты сервера MySQL работали без указания полного пути можно добавить в «Переменные среды» путь к серверу:
Path: d:\usr\mysql;d:\usr\mysql\bin; # или Path: d:\usr\mysql_5.1.26-rc;d:\usr\mysql_5.1.26-rc\bin;
Только учтите, там не должны быть указаны пути на несколько серверов, только на один сервер.
Ссылки по теме:
Installing MySQL on Windows
Starting MySQL as a Windows Service
Starting Multiple Windows Servers as Services
Connecting to the MySQL Server
mysql — The MySQL Command-Line Tool
mysqldump — A Database Backup Program
Запуск MySQL на Windows NT, 2000 или XP
SQLyog MySQL Client
http://ru.wikipedia.org/wiki/SQLyog
phpMyAdmin
Август 10th, 2008 at 15:08
Заинтересовало. Добавил к себе на сайт вашу ссылку