Когда я был молод ;) и не искушён в MySQL, я сделал для себя на вики-странице вот такую шпаргалку, добавляя в неё новые записи при необходимости. Сейчас всё это кажется мне тривиальным, за исключением, пожалуй, сброса пароля пользователя root, просто потому что с этим не часто приходится сталкиваться.
> create database [db];
> use mysql; > insert into user(user,password,host) values('[user]',password('[password]'),'[host]');
> grant all on [db].* to [user];
> flush privileges;
Останавливаем mysql.
# /etc/init.d/mysql stop
Запускаем mysql следующей командой:
# /usr/bin/mysqld_safe -skip-grant-tables -user=root &
Запускаем клиента mysql
# mysql -u root
Выполняем sql запрос
> update mysql.user set password=password('[password]') where user='root';
Применяем изменения
> flush privileges;
Перегружаем mysql сервер.
# /etc/init.d/mysql restart
Чтобы снять резервную копию с определённой базы данных, воспользуемся следующей командой:
$ mysqldump -u [user] -p [password] [db] > db.sql
Чтобы снять резервную копию со всей базы данных, воспользуемся следующей командой:
$ mysqldump -u [user] -p [password] --all-databases > all.sql
Выполнять резервное копирование нужно под тем пользователем, который имеет доступ к базе данных. Если делаем резервную копию всех баз - пользователь должен иметь доступ ко всем базам данных.
Чтобы восстановить резервную копию определённой базы данных, воспользуемся следующей командой:
$ mysql -u [user] -p [password] < db.sql
Выполнять восстановление резервной копии нужно под тем пользователем, который имеет полный доступ к соответствующей базе данных. Если восстанавливаем все базы данных, то восстанавливать нужно под пользователем, имеющим соответствующие права во всех базах данных.
Обозначения: