Командная строка MySQL

Небольшая и простая памятка по работе с сервером MySQL из командной строки.

Получить информацию об установленной версии MySQL

mysql -V

Для подключения к mysql в консоли наберите команду

mysql -h you_sql_server -u user_name -p

h — хост c MySQL. Если подключаемся с локальной машины, параметр можно опустить

u — имя пользователя MySQL (root или другой пользователь MySQL)

p — пароль, который будет предложено ввести после нажатия enter

Приглашение командной строки изменится, это значит, сервер MySQL ждёт от вас команд.

mysql>

Запросы должны оканчиваться точкой с запятой. Длинные запросы удобно разбивать enter-ом для перехода на новую строку, а после полного написания запроса поставить точку с запятой и выполнить его.

Для отключения от MySQL нужно написать exit или (в unix-системах) нажать комбинацию клавиш ctrl+с. или /q

Для вывода всех баз данных на сервере используйте команду show databases.

SHOW DATABASES;

Выберите нужную базу данных командой use.

USE db_name;

Теперь можно вводить запросы.

Чтобы подключиться к MySQL и сразу выбрать нужную базу

mysql -u user_name -h host_name db_name -p

Полезные команды MySQL

Показать все таблицы выбранной базы данных в текущей БД.

SHOW TABLES

Показать все таблицы базы данных db_name.

SHOW TABLES FROM db_name;

Показать список столбцов в таблице table_name в текущей БД

SHOW COLUMNS FROM table_name;

Показать список столбцов в таблице table_name из БД db_name

SHOW COLUMNS FROM table_name FROM db_name;

Вывести структуру нужной таблицы

DESCRIBE table_name;

Показать структуру таблицы, будет выведен sql-запрос на её создание через «CREATE TABLE».

SHOW CREATE TABLE table_name;

Вывести значения системных переменных.

SHOW VARIABLES;

Показать список выполняющихся в настоящий момент запросов.

SHOW PROCESSLIST;

Общая статистика MySQL.

SHOW STATUS;

Статистика по всем таблицам в базе db_name.

SHOW TABLE STATUS FROM db_name;

Что бы выполнять запросы к MySQL из консоли, не всегда требуется предварительно подключаться к mysql. Параметр -e позволяет исполнить команду, вывести результат на экран, после чего отключиться от сервера MySQL. Например, можно вывести список таблиц базы данных.

mysql -uroot -e \'SHOW TABLES\' db_name && echo done

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

Создание базы данных из консоли сервера

$ mysqladmin -u root -p create db_name

Удаление базы данных из консоли сервера

mysqladmin -u root -p drop db_name

Создание базы данных db_name из консоли MySQL

CREATE DATABASE db_name COLLATE utf8_general_ci;

Удаление базы данных db_name из консоли MySQL

DELETE DATABASE db_name;

Замена в поле одной подстроки на другую

UPDATE table SET field=replace(field,\'original string\',\'new string\')

Работа с пользователями

Вывести список пользователей

SELECT User,Host FROM mysql.user;

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

SHOW GRANTS FOR user_name FROM db_name;

Создать нового пользователя

CREATE USER \'user\'@\'host\' IDENTIFIED BY\'password\';

host — здесь имя хоста, доменное имя или ip адрес, с которого пользователь сможет подключаться к серверу, например user@localhost.

Чтобы создаваемый пользователь смог подключаться к серверу MySQL с любого IP адреса или хоста (за исключением localhost), можно использовать символ процента, вот так

CREATE USER \'user\'@\'%\' IDENTIFIED BY \'password\';

Чтобы разрешрешить пользователю подключаться вообще со всех хостов, придётся создать для него две учётные записи.

CREATE USER \'user\'@\'%\' IDENTIFIED BY \'password\';

CREATE USER \'user\'@\'localhost\' IDENTIFIED BY \'password\';

Добавить указанные привилегии для таблиц БД db_name пользователю

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX ON db_name.* TO \'user\'@\'localhost\';

Чтобы изменить права пользователю, иногда удобно сначала сбросить все права

REVOKE ALL PRIVILEGES ON *.* FROM \'user\'@\'localhost\;

А затем установить нужные с помощью GRANT, как было показано выше.

Добавить все привилегии для таблиц БД db_name пользователю user@localhost

GRANT ALL PRIVILEGES ON db_name.* TO \'user\'@\'localhost\';

Удаление привилегий пользователя user@localhost для БД db_name:

REVOKEALLON db_name.* FROM \'user\'@\'localhost\;

Сделать из пользователя суперпользователя и дать полный доступ ко всем БД на сервере

GRANT ALL ON *.* TO \user\'@\'localhost\';

Удалить пользователя user@localhost

DROP USER user@localhost;

Перезагрузить привилегии

FLUSH PRIVILEGES;

Изменить пароль пользователя в консоли MySQL

SET PASSWORD FOR \'user\'@\'localhost\ = PASSWORD(\'new_password\');

FLUSH PRIVILEGES;

или так

UPDATE mysql.user SET Password=PASSWORD(\'new_password\') WHERE User=\'user_name\';
FLUSH PRIVILEGES;
service mysqld restart;

Установить пароль для пользователя user в консоли сервера.

$ mysqladmin -uuser_name password\'password\

Исправление и оптимизация баз данных в MySQL

Чтобы исправить ошибки в поврежденной таблице, в консоли MySQL выполните:

REPAIR TABLE table_name;

Если же в БД много поврежденных таблиц можно воспользоваться командой mysqlcheck.

Проверить db_name на ошибки.

$ mysqlcheck -p db_name

Восстановление и оптимизация всех БД

$ mysqlcheck -Aor -p

Аргументы:

p – использовать пароль

-A, —all-databases – проверять все базы данных -o, —optimize – оптимизировать

-r, —repair – восстанавливать повреждённые —auto-repair – автоматическое восстановление

Бэкап MySQL из командной строки

Экспорт базы MySQL

$ mysqldump -u username -p db_name > dump.sql

Дамп нескольких баз

$ mysqldump -u username -p -B db_name1 db_name2 > dump.sql

Дамп всех баз на сервере

$ mysqldump -u username -p -A > dump.sql

Дамп только структуры базы, без данных

$ mysqldump -u username -p --no-data db_name > database.sql

Дамп структуры одной таблицы mysql, без данных:

$ mysqldump -u username -p -h host db_name table_name --no-data > /

Развернуть базу данных MySQL из дампа

$ mysql -u username -p db_name < dump_to_restore.sql 

Взято у trofimovdigital.ru

Обо мне

bottom-logo

Я дизайнер. Здесь вы можете увидеть мои работы. Хорошо я делаю свою работу или не очень — судить вам.

Главное правило — вы никогда не увидите незаконченной работы. Только досконально отточенный проект можно выпускать в жизнь.

Калькулятор упаковки