[[ Основные операции с 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

Ключ указывает режим компрессии данных.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
5 +14 = 
 
howto/mysql/mysql_cmd.txt · Последнее изменение: 2022/08/31 14:53 — 127.0.0.1
Gentoo Linux Gentoo Linux Driven by DokuWiki