среда, 16 мая 2012 г.

Краткая справка по MySQL

Когда я был молод ;) и не искушён в MySQL, я сделал для себя на вики-странице вот такую шпаргалку, добавляя в неё новые записи при необходимости. Сейчас всё это кажется мне тривиальным, за исключением, пожалуй, сброса пароля пользователя root, просто потому что с этим не часто приходится сталкиваться.

1. Создать новую базу данных
> create database [db];
2. Добавить пользователя
> use mysql;
> insert into user(user,password,host) values('[user]',password('[password]'),'[host]');
3. Дать пользователю полные права на базу данных
> grant all on [db].* to [user];
4. Применить изменения прав доступа
> flush privileges;
5. Сброс пароля пользователя root в mysql

5.1. Останавливаем mysql.
# /etc/init.d/mysql stop
5.2. Запускаем mysql следующей командой:
# /usr/bin/mysqld_safe -skip-grant-tables -user=root &
5.3. Запускаем клиента mysql
# mysql -u root
5.4. Выполняем sql запрос
> update mysql.user set password=password('[password]') where user='root';
5.5. Применяем изменения
> flush privileges;
5.6. Выходим из mysql клиента выполнив в нем команду exit

5.7. Перегружаем mysql сервер.
# /etc/init.d/mysql restart
6. Снятие резервной копии

Чтобы снять резервную копию с определённой базы данных, воспользуемся следующей командой:
$ mysqldump -u [user] -p [password] [db] > db.sql
Чтобы снять резервную копию со всей базы данных, воспользуемся следующей командой:
$ mysqldump -u [user] -p [password] --all-databases > all.sql
Выполнять резервное копирование нужно под тем пользователем, который имеет доступ к базе данных. Если делаем резервную копию всех баз - пользователь должен иметь доступ ко всем базам данных.

7. Восстановление резервной копии

Чтобы восстановить резервную копию определённой базы данных, воспользуемся следующей командой:
$ mysql -u [user] -p [password] < db.sql
Выполнять восстановление резервной копии нужно под тем пользователем, который имеет полный доступ к соответствующей базе данных. Если восстанавливаем все базы данных, то восстанавливать нужно под пользователем, имеющим соответствующие права во всех базах данных.

Обозначения:
[db] - имя базы данных,
[host] - IP-адрес или доменное имя клиента MySQL,
[user] - имя пользователя,
[password] - пароль пользователя.

Комментариев нет: