Бывают случаи, когда нужно произвести некоторые действия с базами данных MySQL в системе, в которой нет удобных инструментов для работы с базами данных (таких как phpMyAdmin), либо если они по какой-либо причине перестали работать. Будут рассмотрены основы работы непосредственно с MySQL для выполнения простейших операций.
Вход в MySQL
Чтобы войти в mysql подключитесь к серверу по SSH по данным пользователя root и выполните команду:
mysql
Если данная команда не выполняется, возвращая ошибку доступа - это значит, что для входа необходимы дополнительные данные. В таком случае введите данные доступа от базы данных, с которой будете работать:
mysql -u user -p db
Здесь:.
-u user - имя пользователя базы данных, в данном случае, user;
-p - опция, которая указывает, что далее, во время выполнения команды, нужно будет вводить пароль. Не рекомендую указывать пароль в консоли сразу за этим параметром так как он будет сохранён в истории команд;
db - название базы данных.
Если на сервере установлено несколько версий систем управления баз данных mysql и нужно подключиться к системе, которая работает на другом порту, либо если нужно подключиться к базе данных, которая находится на другом сервере (при этом удалённый доступ к ней должен быть открыт), введите команду:
mysql --host 127.0.0.1 --port 3306 -u user -p db
где:
--host 127.0.0.1 - указывает адрес сервера. Укажите IP адрес или доменное имя другого сервера в случае удалённого подключения. Если сервер локальный (имеет адрес 127.0.0.1 или localhost), параметр --host можно опустить;
--port 3306 - укажите номер порта, если он нестандартный. Если номер порта - 3306, можно этот параметр не указывать.
Создание дампа базы данных
Для того, чтобы создать дамп базы данных в файл, нужно выполнить команду:
mysqldump db > db.sql
где db.sql - название файла, в который будет записан дамп. Название может быть любым.
Если нужно сделать дамп с использованием имени пользователя либо на другом сервере, можно воспользоваться такими же параметрами, как и при подключении к mysql:
mysqldump --host 127.0.0.1 --port 3306 -u user -p db > db.sql
Если дамп был создан без ошибок, ничего выведено не будет.
Загрузка дампа в базу данных
Для того, чтобы загрузить дамп выполните команду:
mysql db < db.sql
или, если система расположена на другом порту или компьютере, выполните
mysql --host 127.0.0.1 --port 3306 -u user -p db < db.sql
Однако стоит обратить внимание, что если в базе данных уже есть таблицы, то дамп может не загрузиться или загрузиться частично. Так же, если дамп сделан в другой, более новой версии mysql, он может не загрузиться в старую версию без совершения дополнительных действий.
Если дамп базы загрузился корректно, без ошибок, никакие сообщения выведены не будут.
Работа с базами данных в MySQL
После входа в mysql Вам доступны широкие возможности по работе с базами данных, которые включают их создание, изменение, удаление, просмотр, назначение пользователей и многое другое. Давайте создадим базу данных newdatabase, пользователя newuser, который будет иметь пароль SecretPassword, и дадим все привилегии на базу данных этому пользователю. Заглавными буквами написаны команды SQL (команды не чувствительны к регистру), строчными - данные пользователя. Ввод всех команд следует заканчивать точкой с запятой.
Создаём базу данных:
CREATE DATABASE newdatabase;
Создаём локального пользователя баз данных:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'SecretPassword';
Назначаем права на базу данных пользователю:
GRANT ALL PRIVILEGES ON newdatabase.* TO 'newuser'@'localhost';
Также можно просмотреть какие базы данных добавлены в систему:
SHOW DATABASES;
Чтобы просмотреть какие таблицы есть в базе данных, нужно сначала выбрать базу данных и затем выполнить команду вывода списка таблиц. Для примера просмотрим таблицы базы данных admin_wordpress, которая была создана для сайта wordpress.
USE admin_wordpress;
SHOW TABLES;
Чтобы просмотреть все данные, которые есть в таблице, введите:
SELECT * FROM wp_users;
где wp_users - название таблицы.
Для примера изменим пароль wordpress используя командную строку mysql. Для этого нужно в таблице wp_users изменить особым образом поле user_pass. Сделать это можно следующей командой:
UPDATE wp_users SET user_pass=MD5('NewPassword') WHERE user_login='admin';
Значение устанавливается при помощи команды SET. Здесь MD5 - это функция, нужная для установки хеша пароля. Сам пароль wordpress не хранится в базе данных в открытом виде. Для других CMS может потребоваться использовать другие функции.
Выбрать нужного пользователя можно при помощи условия WHERE. В данном примере выбирается значение по полю user_login, а именно пользователь admin. Поиск нужных строк можно производить и по другим полям, например, ID или user_email. Будьте осторожны. Если есть несколько строк, в которых указанное поле соответствует выбранному критерию, все они будут изменены. Выбирайте поля, в которых указаны не повторяющиеся (или ключевые) значения.
Удалить базу данных можно командой:
DROP DATABASE newdatabase;
Выход из MySQL
Чтобы выйти из консоли mysql можно выполнить команду exit, quit или нажать комбинацию Ctrl+d или Ctrl+c.
Заключение
Были рассмотрены лишь основные команды по работе с MySQL, которые позволяют совершать базовые операции с базами данных.