Адрес этой странички : http://doc-prg.narod.ru/art_00950/art_00950.htm
Дата обновления: 12.03.2009
© 12.03.2009 Сергей Попов
SQL-сервер
: MySQL.
Базы Данных.
Установка, запуск и настройка ...
(практические шаги -
проверено на себе)
Статью в виде файла (430 кб) можно скачать здесь: art_00950.zip
SQL-сервер : MySQL
Платформа
: win32
Версия :
3.23.58
По умолчанию устанавливается в C:\mysql
Содержание.
1 |
|
2 |
|
3 |
|
4 |
Прежде, чем устанавливать MySQL – нужно остановить сервер MySQL
(если он загружен в память компьютера).
Если сервер работает как сервис,
то применить следующую команду:
C:\> NET STOP MySQL
В остальных случаях
использовать:
C:\mysql\bin> mysqladmin -u root shutdown
Если вы хотите изменить
исполняемый файл сервера (т.е. -max
или -nt),
необходимо также удалить сервис:
C:\mysql\bin> mysqld-max-nt
–remove
C:\mysql\bin> mysqld-nt –remove
И т.д.
Внимание!
Если не проходит команда :
NET
STOP
MySQL
То надо использовать :
C:\mysql\bin> mysqladmin -u root shutdown
Установка.
1) Запустить SETUP.EXE
Следовать командам программы
инсталляции.
Нажимаем Next
Нажимаем Next
Нажимаем Next (или меняем папку, куда установить)
Указываем тип установки : Typical (типичный) и нажимаем Next
После установки – нажимаем кнопку Finish
На этом установка MySQL заканчивается.
Начиная с версии MySQL 3.23.38,
дистрибутив для Windows включает в себя как
обычный бинарный код, так и бинарный код
сервера MySQL-Max
.
Ниже приводится список различных серверов
MySQL, которые можно использовать:
Бинарный
код |
Описание |
|
Скомпилирован
с полным набором возможностей отладки и
автоматической проверки выделения
памяти, символических ссылок, таблиц InnoDB
и BDB. |
|
Оптимизированный
бинарный код без поддержки
транзакционных таблиц. |
|
Оптимизированный
бинарный код для NT/2000/XP с поддержкой
именованных каналов. Можно запустить
эту версию на Windows 9x/Me, но в этом случае не
создаются именованные каналы и
необходимо иметь установленный
протокол TCP/IP. |
|
Оптимизированный
бинарный код с поддержкой символических
ссылок и таблиц InnoDB и BDB. |
|
Подобен
|
Перед запуском надо создать
настроечный файл
?:\windows\my.ini
Существует
два файла опций с одинаковыми функциями: `my.cnf'
и `my.ini'.
Однако во избежание недоразумений лучше
всего использовать только один из них. Оба
файла представляют собой простой текст.
Если вы собираетесь использовать файл `my.cnf',
то его следует создать в корневом каталоге
диска C, если `my.ini'
- то в системном каталоге Windows (это обычно
что-либо вроде `C:\WINDOWS'
или `C:\WINNT';
его точное местоположение можно определить
по значению переменной окружения windir
).
MySQL сначала ищет файл `my.ini',
а затем `my.cnf'.
Внимание !
Настройки программы
располагаются в файле :
Каталог_Windows\my.ini
C:\my.cnf
Этот вариант :
Каталог_Windows\my.ini
предпочтительнее (это связано с тем, что не всегда C: является загрузочным диском).
Пример файла my.ini
:
#This File
was made using the WinMySQLAdmin 1.4 Tool #Uncomment
or Add only the keys that you know how works. [mysqld] |
Теперь надо установить сервис
сервера :
?:\mysql\bin> mysqld-nt
--install
Сервис устанавливается под именем MySQL.
Далее нужно запустить MySQL-сервер
в качестве сервиса :
NET START MySQL
Если нужно сервер запустить
НЕ в качестве сервиса, то можно так : |
В окне Диспетчера задач Windows (Ctrl+Alt+Del) на вкладке процессы должна присутствовать строка :
Это значит, что SQL-сервер
запущен, как сервис.
Внимание !
Если запускать из командной строки Far.exe, то Far может «не
вернуться» в командную строку.
Это неважно. Просто надо закрыть Far любым способом.
1. Создать
архивную копию всех файлов в каталоге mysql :
?:\mysql\data\mysql\
Это – крайне важно (чтоб можно было сделать откат в случае корявого «администрирования» на начальном этапе) !!!
2. Выполнить
команду :
?:\mysql\bin\mysql.exe
-u root
Если удачно -
видим «подсказку» в командной строке
:
mysql>
3. Смотрим,
какие пользователи у нас есть по
умолчанию :
mysql> use mysql;
mysql> select user,host,password from user;
4.
Меняем пароль СуперПользователю (root)
!!!
mysql> UPDATE user SET Password=PASSWORD('НовыйПароль') WHERE user='root';
Например,
Контроль
:
mysql> select
user,host,password from user;
5. Оставляем
только ОДНОГО
СуперПользователя (root) и даем ему возможность
работать ТОЛЬКО с локального
компьютера !!!
Сначала удаляем всех «левых»
СуперПользователей (возможно
потребуется несколько команд), но так, чтобы
один все-таки остался :
mysql>
DELETE
FROM user WHERE (user=’root’)
and (Host=’gcw’);
Контроль
:
mysql> select
user,host,password from user;
6. Удаляем всех остальных «левых» Пользователей (не root)
mysql> DELETE FROM user WHERE (user<>’root’);
Контроль
:
mysql> select
user,host,password from user;
7. Выходим из программы mysql.exe
mysql> exit;
или
mysql> quit;
Останавливаем
сервис :
net stop mysql
и вновь запускаем :
net start mysql
8.
Проверка.
?:\mysql\bin\mysql.exe
–h localhost -u root -p
Т.е., все OK.
Выходим из утилиты
mysql.exe
:
mysql> quit;
9. Если что-то напортачили, то :
9.1
Выгружаем
сервер MySQL
из памяти (из командной строки) :
net
stop mysql
или
mysqladmin
-u root shutdown
9.2 Восстанавливаем
архивную копию базы данных mysql
(см. пункт 1) в
каталог :
?:\mysql\data\mysql\
9.3
Запускаем сервер MySQL
(из командной строки) :
net
start mysql
9.4
Начинаем настройку с начала (с пункта 2)
…
:-)
10. Удаляем все ненужные базы данных.
Важно !!! Никогда нельзя удалять базу данных
mysql
?:\mysql\bin\mysqladmin
-u root -p drop ИмяБазыДанных
Например,
?:\mysql\bin\mysqladmin -u root -p drop test
11. Создаем «глобальных»
системных Пользователей (для удобства
работы).
«Зайдем» в mysql.exe :
?:\mysql\bin\mysql.exe
–h localhost -u root -p
или
?:\mysql\bin\mysql.exe -u root
-p
Выберем базу
данных :
mysql>
use mysql;
Создадим СуперПользователя
(для себя), чтобы можно было
администрировать откуда угодно (как с
локального компа, так и с любого удаленного).
Для этого нужно выполнить две команды INSERT
:
INSERT INTO user VALUES('localhost','ИмяПользователя',PASSWORD('Пароль'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
INSERT INTO user VALUES('%','ИмяПользователя',PASSWORD('Пароль'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
Например
: INSERT
INTO user VALUES('localhost','itsme',PASSWORD('321'), INSERT
INTO user VALUES('%','itsme',PASSWORD('321'), |
Контроль :
mysql>
select user,host,password from user;
Если нужно – добавляем других
Пользователей …
Не забывайте перезагрузить
сервер MySQL !!!
net stop mysql
и net
start mysql
Пример – настройка на базу данных ROR.
Пусть для этой базы данных будет определено
два Пользователя :
ror_admin – со всеми правами к ЭТОЙ базе
данных (с паролем =ror_a)
ror_user - со
всеми правами по доступу к информационным
таблицам ЭТОЙ б.д. (select,insert.update,delete)
(с паролем =ror_u)
1.
Из командной строки (Far.exe) создаем
базу данных ROR
:
C:\mysql\bin> mysqladmin -u root -p create ROR
2.
«Зайдем» на сервер MySQL
:
C:\mysql\bin> mysql.exe -u root -p
3.
Выберем базу данных mysql
:
mysql>
use
mysql;
4.
Создаем Пользователя ror_admin
(с доступом откуда угодно, но без прав на
уровне сервера):
GRANT usage ON *.* TO ror_admin@localhost
IDENTIFIED BY 'ror_a';
GRANT usage ON *.* TO ror_admin@"%" IDENTIFIED BY 'ror_a';
5.
Даем ему все права на уровне базы
данных ROR
(доступ откуда угодно) :
GRANT ALL ON ror.*
TO ror_admin@localhost
IDENTIFIED BY 'ror_a';
GRANT ALL ON ror.*
TO ror_admin@"%" IDENTIFIED BY 'ror_a';
6.
Создаем Пользователя ror_user
(с доступом откуда угодно, но без прав на
уровне сервера):
GRANT usage ON *.* TO ror_user@localhost
IDENTIFIED BY 'ror_u';
GRANT usage ON *.* TO ror_user@"%" IDENTIFIED BY 'ror_u';
7.
Даем ему все
права для работы с информацией в таблицах
на уровне
базы
данных ROR
(доступ откуда угодно) :
GRANT SELECT, INSERT, UPDATE, DELETE
ON ror.* TO ror_user@localhost
IDENTIFIED BY 'ror_u';
GRANT SELECT, INSERT, UPDATE,
DELETE
ON ror.* TO ror_user@"%" IDENTIFIED BY 'ror_u';
8.
На всякий случай проверяем :
select * from db;
select * from user;
9.
Выходим из программы mysql.exe :
mysql> quit;
10.
Перезагружаем сервер :
net
stop
mysql
net start
mysql
Теперь
Пользователь ror_admin может приступить к созданию
структуры базы данных ROR.
Для этого он должен зайти
запустить от своего имени программу
mysql.exe :
C:\mysql\bin> mysql.exe -u ror_admin
-p
«Перейти» на свою базу данных :
mysql> use ror;
И далее – уж как инстинкты подскажут …
© 12.03.2009 Сергей Попов