[[Основные операции с mysql]]

MySQL

Основные операции с mysql

Подключение к mysql

Подключиться в mysql под пользователем root к хосту localhost используя интерактивный ввод пароля:

mysql -u root -p
mysql -u root -p dbname

Подключение к удалённому хосту lolomg.ru

mysql -u root -h lolomg.ru -p
Для автоматического входа по паролю сразу (слитно) после ключа -p нужно указать пароль:
mysql -u root -h localhost -pPASSWORD

Управление базами данных

Просмотр списка баз данных:

SHOW DATABASES;

Создание БД:

CREATE DATABASE dbname;
также можно использовать утилиту mysqladmin:

mysqladmin -u root -p create dbname

Удалить БД:

DROP DATABASE dbname;
или:

 mysqladmin -u root -p drop dbname

Установить кодировку

ALTER DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Переключиться на БД:

USE dbname;

Список таблиц в текущей БД:

SHOW TABLES;

Управление привилегиями

Создать пользователя user1 с полными root правами в MySQL и доступом с любого хоста:

GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' IDENTIFIED BY 'password1' WITH GRANT OPTION;

Создать пользователя user с полными правами на БД dbname:

GRANT ALL ON dbname.* TO 'user'@'localhost' IDENTIFIED BY 'password';

Дать пользователю права INSERT на базу dbname

GRANT INSERT ON dbname.* TO 'user'@'localhost';

Удаления прав пользователя на БД:

REVOKE ALL ON userdb.* FROM 'user'@'localhost';

Удаление всех прав пользователя (полное удаление):

USE mysql;
DELETE FROM USER WHERE USER='user';

Посмотреть список прав для текущего пользователя

SHOW GRANTS;

Посмотреть список прав для пользователя

SHOW GRANTS FOR 'user'@'localhost';

Посмотреть список пользователей

SELECT USER, host FROM mysql.user;

Перезагрузка привилегий:

FLUSH PRIVILEGES;

Еще один способ задать пароль - воспользоваться командой mysqladmin:

mysqladmin -u root password PaS$wOrD

Дамп баз данных

Создание

Для создание дампа БД:

mysqldump --opt -u root -p dbname > dbname.sql
Для всех баз данных можно использоваться ключ --all-databases
По умолчанию хранимые функции и процедуры не бэкапятся, необхожимо добавить ключь -R, (--routines)

Бекап определенной таблицы:

mysqldump --opt -u root -p dbname --tables mytable > dbname.mytable.sql

эквивалентно:

mysqldump --opt -u root -p dbname mytable > dbname.mytable.sql

Сжатие дампа с помощью bzip2:

bzip2 dbname.sql
После сжатия создасться файл dbname.sql.bz2, а dbname.sql удалиться.

Сжатие "на лету":

mysqldump --opt -u root -p dbname | bzip2 > dbname.sql.bz2
Сжатие "на лету" приводит к бóльшему времени блокировки БД, но позволяет сразу экономить место.

Восстановление

Восстановление БД из файла дампа:

mysql -u root -p dbname < dbname.sql

для сжатого дампа:

bzcat dbname.sql.bz2 | mysql -u root -p dbname

Перенос БД между серверами

Можно выполнить прямой перенос базы данных между серверами командой:

mysqldump --opt -u root -p dbname | mysql --host=remote-host -u user -p -C dbname
Ключ указывает режим компрессии данных.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
70 -6 = ?
 
howto/mysql/mysql_cmd.txt · Последние изменения: 2015/06/26 20:05 — lexa
Gentoo Linux Driven by DokuWiki