Работаем с MySQL через командную строку
Если на экране появляется приветствие mysql, то всё прошло ok.
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 344 Server version: 5.5.28-0ubuntu0.12.04.3 (Ubuntu) Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Для выхода из командной строки mysql можно написать exit, в linux достаточно нажать ctrl+C. Теперь можно писать любые mysql-запросы. Чтобы запрос выполнился, в конце обязательно нужно поставит точку с запятой «;». При написании длинных запросов удобно делать enter`ом переход на следующую строку. А после полного написание запроса поставить «;» и нажать «enter».
Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:
show databases;
Результатом будет что то вроде этого:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | jeka | | linky | | mysql | | performance_schema | | phpmyadmin | | test | +--------------------+ 7 rows in set (0.00 sec)
Выбрать базу данных jeka:
mysql> use jeka Database changed
Посмотреть названия всех таблиц в конкретной базе данных (после выполнения use):
mysql> show tables;
Просмотреть структуру таблицы (имена и тип полей):
mysql> describe post_estimations; +------------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------+------+-----+---------+-------+ | post_id | int(10) unsigned | YES | MUL | NULL | | | user_id | int(10) unsigned | YES | MUL | NULL | | | estimation | float(2,1) unsigned | NO | | NULL | | | date | int(10) unsigned | NO | | NULL | | +------------+---------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)
Достать информацию о юзере с >
mysql> SELECT * FROM users WHERE > Бэкап структуры таблицы, а точнее sql-запрос на её создание
show create table table_name;
Если в конце запроса поставить не ; а \G, то результат будет показан другим образом — иногда весьма удобно, если таблица имеет много полей:
select * from update__v4_errors where >
Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:
show processlist;
Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.
Подробнее о том, как изменять структуру mysql-таблиц (alter table).
Что делать если вижу знаки вопросов вместо текста в MySQL?
Это проблема с кодировкой. Вероятно в my.ini файле mysql-сервера не добавлено:
[mysqld] init-connect='SET NAMES utf8'
Нужно добавить в .ini файл либо выполнить в консоли команду «SET NAMES utf8», после чего во время текущей сессии отображаться русский текст в mysql-консоли будет без проблем:
mysql> set names utf8; Query OK, 0 rows affected (0.00 sec)
Как сделать бэкап базы mysql через консоль Linux?
Сделать бэкап базы database в файл dump_name.sql
mysqldump -u [username] -p [password] [database] > [dump_name.sql]
[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_name.sql] – имя файла, дампа на выходе.
Развернуть базу из файла через командную строку
mysql -u [username] -p [password] [database] < [dump_to_restore.sql]
[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_to_restore.sql] – имя файла, из которого поднимаем базу
Сделать дамп структуры одной таблицы mysql (без данных):
mysqldump -u[user] -p[password] -h[host] [database] [table_name] --no-data > /path/dump_name.sql
Например, задампим таблицу users из базы данных mydatabase:
mysqldump -uroot mydatabase users > users.dump.sql
Развернуть mysql-dump в БД с именем database_name:
mysql -uroot database_name < users.dump.sql
Ещё одна интересная штука. Выполнять из консоли, не требуется предварительно подключаться к mysql (mysql>). Вывести список таблиц базы данных, не подключаясь непосредственно к mysql:
mysql -uroot -e 'show tables' database_name && echo done
mysql> show variables like '%incr%';
Заключение
Может показаться, что писать запросы в командной строке не удобно. Но это заблуждение. На слабых машинах phpmyadmin работает не так шустро как хотелось бы. Тем более не на всех серверах стоят морды с phpmyadmin, adminer и т.д. Linux + mysql в терминале реально повысили мою производительность.
Поисковые запросы , по которым приходили пользователи

Дата добавления: 11 лет назад
mysql
Похожий контент:
- Как в mysql лучше всего хранить ip адрес? 1 ответ
- В чём разница int(3) int(10) int(12) и так далее? mysql 3 ответа
- Получить комментарии к полям mysql-таблицы 1 ответ
- mysqldump: Got error: 1044: Access denied for user when using LOCK TABLES 1 ответ
- ERROR 9006: ProxySQL Error: connection is locked to hostgroup 10 but trying to reach hostgroup 11 Решено!
- Запросы инъекции для mysql 0 комментариев
- Доступ к mysql из-вне4 комментария
- Mysql перенос таблиц из одной базы данных в другую 0 комментариев
- MacOS сбросить root пароль для MySQL 0 комментариев
- Анализ производительности MySQL с использованием performance_schema 0 комментариев
Комментарии 2
viktor 11 лет назад
Последнее время я использую Valentina Studio для работы с MySQL. Очень хороший и бесплатный инструмент, рекомендую посмотреть. http://www.valentina-db.com/en/valentina-studio-overview
root 11 лет назад
Viktor, спасибо. Судя по скринам, штука интересная.
Правда, уж больно много зависимостей она имеет.. Как решу проблему с зависимостями, отпишусь.
eugene-PC:www eugene$ eugene$ sudo rpm -ivh ~/Загрузки/vstudio_x64_5_lin.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing.
ошибка: Неудовлетворенные зависимости:
ld-linux-x86-64.so.2()(64bit) нужен для vstudio-5.3.0-2.x86_64
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6()(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.2.5)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.3)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.3.3)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.3.4)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.4)(64bit) нужен для vstudio-5.3.0-2.x86_64
libdl.so.2()(64bit) нужен для vstudio-5.3.0-2.x86_64
libdl.so.2(GLIBC_2.2.5)(64bit) нужен для vstudio-5.3.0-2.x86_64
libgcc_s.so.1()(64bit) нужен для vstudio-5.3.0-2.x86_64
libgcc_s.so.1(GCC_3.0)(64bit) нужен для vstudio-5.3.0-2.x86_64
libgcc_s.so.1(GCC_3.4)(64bit) нужен для vstudio-5.3.0-2.x86_64
libgdk-x11-2.0.so.0()(64bit) нужен для vstudio-5.3.0-2.x86_64
libgdk_pixbuf-2.0.so.0()(64bit) нужен для vstudio-5.3.0-2.x86_64
libglib-2.0.so.0()(64bit) нужен для vstudio-5.3.0-2.x86_64
Создание базы данных в MySQL
Инструкция о том, как несколькими способами создать новую базу данных, добавить пользователей и выдать им полномочия на доступ.
Эта инструкция — часть курса «MySQL для новичков».
Смотреть весь курс
Введение
В этой небольшой инструкции мы покажем, как создать новую базу данных в MySQL несколькими способами, как добавить пользователей и выдать им полномочия на доступ к базе.
Подготовка
Перед началом работы у вас должен быть установлен и настроен MySQL-сервер. В этой статье мы не будем показывать, как это сделать. Если у вас еще нет готового сервера, почитайте нашу статью о процессе установки и первоначальной настройки MySQL на Windows.
Мы будем работать с сервером, развернутым на виртуальной машине Selectel.
Так как это удаленный сервер, нам понадобится его внешний IP-адрес. В этих примерах мы будем использовать адрес 82.202.199.34.
Подключение к серверу и создание новой базы
Все операции будем показывать на двух примерах: консольный клиент и phpMyAdmin. Если у вас другой инструмент для подключения к серверу, почитайте его документацию или используйте SQL-команды, которые мы будем выполнять при работе через консольный клиент. Они универсальны и подойдут для любого инструмента.
Через консоль
Подключимся к удаленному серверу MySQL:
mysql -u root -h 82.202.199.34 -p
После ввода этой команды нужно ввести пароль от пользователя root, который вы указывали на этапе установки и первоначальной настройки СУБД.
Для начала посмотрим, какие уже есть созданные базы данных:
show databases;
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test | +--------------------+
Это все служебные базы. Мы не будем их трогать, а создадим свою БД. Для этого выполним команду для создания новой базы данных MySQL:
CREATE DATABASE my_db_cli;
Снова посмотрим список всех баз:
show databases;
Видим, что наша БД появилась в списке:
+--------------------+ | Database | +--------------------+ | information_schema | | my_db_cli | | mysql | | performance_schema | | sys | | test | +--------------------+
Через phpMyAdmin
Чтобы указать сервер для подключения, нужно отредактировать файл config.inc.php. В зависимости от вашей ОС или дистрибутива Linux, этот файл может находиться в разных директориях, поэтому мы не будем указывать конкретный путь. Откройте файл и добавьте в него строчку:
$cfg['Servers'][$i]['host'] = '82.202.199.34';
Теперь откройте интерфейс phpMyAdmin и залогиньтесь на сервер. В левой части экрана находится список созданных баз данных. Мы видим уже созданную нами ранее базу my_db_cli.
Создадим еще одну базу. Для этого над списком БД нажмите кнопку «Создать БД».

Укажем имя новой базы, а кодировку оставим по умолчанию. В нашем примере это:
utf8mb4_unicode_ci.

База данных создана, и теперь она появилась в списке слева:

Настройка и проверка доступа к базе данных
Сейчас у нас есть только root-пользователь, который имеет полный доступ к серверу и может работать с любой БД. Нам нужно создать новых пользователей и выдать им полномочия, чтобы каждый мог работать только с одной базой.
Через консоль
Создадим нового пользователя:
CREATE USER 'user_cli'@'%' IDENTIFIED BY 'password';
Знак процента означает, что пользователь может подключаться к серверу с любого хоста. Теперь выдадим этому пользователю полный доступ на базу my_db_cli:
GRANT ALL PRIVILEGES ON my_db_cli.* TO 'user_cli'@'%' WITH GRANT OPTION;
Через phpMyAdmin
Теперь сделаем то же самое через phpMyAdmin. Переходим на вкладку «Учетные записи пользователей» и в нижней части экрана нажимаем «Добавить учетную запись пользователя».

В следующем окне указываем имя пользователя, хост и пароль.

После создания пользователя сразу откроется экран настройки полномочий. Мы хотим выдать права только на определенную БД, поэтому перейдем на вкладку «База данных» и выберем нужную базу.

На следующем экране нужно указать привилегии. Мы хотим дать полный доступ к базе, поэтому выберем пункт «Отметить все».

Теперь проверим полномочия на примере одного пользователя. Для этого залогинимся под пользователем user_cli и попробуем получить доступ к обеим базам данных.
Подключаемся к серверу:
mysql -u user_cli -h 82.202.199.34 -p
Попробуем выбрать БД, к которой нет доступа:
use my_db_gui;
ERROR 1044 (42000): Access denied for user 'user_cli'@'%' to database 'my_db_gui'
Теперь выберем базу, к которой есть доступ и попробуем создать в ней таблицу:
use my_db_cli; create table t(id int);
Ошибок не возникло, значит полномочия настроены правильно.
Удаление базы данных
Теперь покажем, как удалить созданные БД. Учтите, что при удалении базы также удаляются все таблицы с данными в ней, поэтому будьте аккуратны и перепроверяйте названия баз, которые собираетесь удалить.
Через консоль
drop database my_db_cli;
Через phpMyAdmin
Выбираем нужную БД, переходим на вкладку «Операции» и нажимаем «Удалить базу данных».

Заключение
Вы узнали, как с помощью командной строки или phpMyAdmin можно выполнить создание новой БД в MySQL, как создавать пользователей и добавлять им права доступа.
Как установить и настроить MySQL в Ubuntu 20.04
Типы данных в MySQL
Зарегистрируйтесь в панели управления
И уже через пару минут сможете арендовать сервер, развернуть базы данных или обеспечить быструю доставку контента.
Читайте также:
Инструкция
Как создать 100 серверов в облаке за минуту? Работа с OpenStack клиентом
Инструкция
Как создать веб-приложение на базе Telegram Mini Apps
Инструкция
Что делает команда chmod и как ее использовать в Linux
Командная строка MySQL
MySQL – это одна из востребованных систем управления базами данных (СУБД). База данных предназначена для хранения массивов данных в структурированном виде. Для работы с данными используется язык программирования SQL (Structured Query Language, в переводе – структурированный язык запросов).
MySQL – не единственная система управления базами данных. Также широко используются MariaDB, PostgreSQL, Microsoft SQL Server, SQLite и продукты от Percona. На серверах LITE.HOST используется сервер базы данных MariaDB 10.3, который является аналогом MySQL 5.7. Обратите внимание, что поменять версию СУБД на хостинге нельзя, для этого нужно использовать наши виртуальные серверы на базе операционной системы Linux.
Подключение к базе данных
Для работы с MySQL необходимо специализированное программное обеспечение. На хостинге LITE.HOST используется phpMyAdmin – панель, позволяющая выполнять любые действия с базой данных без знания SQL. Также управлять базами данных можно и по SSH через командную строку.
Рассмотрим выполнение базовых команд языка SQL из консоли сервера (их также можно выполнять через phpMyAdmin во вкладке «SQL»). Для того, чтобы запустить командную строку MySQL, войдите по SSH и воспользуйтесь командой mysql . В аргументе -u передайте имя пользователя от нужной базы данных (в нашем случае это root) и введите пароль.
[~]$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 32227 Server version: 5.7.38 MySQL Community Server (GPL) Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
Построение описанных дальше запросов полезно знать разработчикам и тестировщикам, либо просто для расширения своего кругозора. Обычным пользователям удобнее работать с базами данных через phpMyAdmin, данная система сама выполняет построение запросов и выводит информацию в удобном виде.
Просмотр списка баз данных
Для просмотра доступных баз данных пользователю, используйте команду SHOW .
Обратите внимание, при работе с MySQL после каждой команды обязательно ставится точка с запятой ; .
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
В нашем случае на сервере только системные базы данных, поэтому создадим новую базу test для хранения в ней своих данных.
Создание базы данных
Для создания базы данных необходимо воспользоваться командой CREATE DATABASE . Обратите внимание, что на виртуальном хостинге создание баз данных должно производиться только через панель управления хостингом.
mysql> CREATE DATABASE test; Query OK, 1 row affected (0.01 sec)
Далее, с помощью SHOW DATABASES можете убедиться, что новая база данных создана
mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test | +--------------------+ 5 rows in set (0.00 sec)
Выбор базы данных
Для выбора базы данных используйте USE , если это не сделать, то в командах SELECT , UPDATE , INSERT и DELETE нужно будет всегда указывать название базы данных, что неудобно.
mysql> USE test; Database changed
Просмотр списка таблиц
Отобразим список текущих таблиц с помощью знакомой нам команды SHOW .
mysql> SHOW TABLES; Empty set (0.01 sec)
Empty set говорит нам о том, что в базе данных нет таблиц.
Создание таблицы
Создадим таблицу пользователей с помощью команды CREATE .
mysql> CREATE TABLE `users` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT , `name` VARCHAR(64) NOT NULL , PRIMARY KEY (`id`)); Query OK, 0 rows affected (0.02 sec)
С помощью данной команды мы создали таблицу users , которая будет содержать цифровое ID пользователя (генерируется сервером базы данных автоматически) и имя пользователя до 64 символов.
С более подробной информацией о команде CREATE можно ознакомиться на сайте mariadb.com. Теперь с помощью SHOW можно увидеть созданную таблицу.
mysql> SHOW TABLES; +----------------+ | Tables_in_test | +----------------+ | users | +----------------+ 1 row in set (0.00 sec)
В обязательном порядке рекомендуем изучить создание индексов, так как без этого скорость выполнения запросов на больших таблицах может быть медленной. Очень часто разработчики этим пренебрегают, из-за чего с ростом размера проекта (числа пользователей, товаров, заказов) сайт начинает работать медленно.
Вставка данных в таблицу
Теперь можно добавить нового пользователя в таблицу с помощью команды INSERT , подробнее о синтаксисе данной команды можно узнать на сайте mariadb.com.
mysql> INSERT `users` SET `name` = 'Elena Ivanova'; Query OK, 1 row affected (0.00 sec)
Выборка данных из таблицы
Этим мы добавили нового пользователя "Elena Ivanova" в таблицу users . Настало время получить данные из таблицы с помощью команды SELECT , подробнее об этой команде можно узнать по ссылке.
mysql> SELECT * FROM `users`; +----+---------------+ | id | name | +----+---------------+ | 1 | Elena Ivanova | +----+---------------+ 1 row in set (0.00 sec)
Обратите внимание, пользователю "Elena Ivanova" система базы данных присвоила идентификатор 1, с помощью него можно менять данные для отдельных строк.
В документации можно вдобавок узнать про такие полезные операторы как ORDER , GROUP и LIMIT - для сортировки, объединения и ограничения числа записей. К тому же, мы не рекомендуем использовать ORDER BY RAND() на таблицах с большим числом данных, это будет приводить к созданию временных таблиц и медленному выполнению запросов.
Также, при выборке данных мы использовали символ * , который получил все столбцы из таблицы. Однако, если в таблице много столбцов, то оптимальнее будет делать выборку тех, которые нужны для дальнейшей работы. Например, мы можем получить только имена пользователей:
mysql> SELECT `name` FROM `users`; +---------------+ | name | +---------------+ | Elena Ivanova | +---------------+ 1 row in set (0.00 sec)
Изменение данных в таблице
Давайте обновим имя пользователя с помощью команды UPDATE , подробнее об этом в документации.
mysql> UPDATE `users` SET `name` = 'Elena Popova' WHERE `id` = 1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
При повторном получении данных из таблицы, можно увидеть, что имя было изменено. Когда в таблице много пользователей, то при указании конкретных идентификаторов будут происходить изменения для выбранных пользователей. А если, условие WHERE опустить полностью, то изменения будут внесены для всех пользователей в таблице.
mysql> SELECT * FROM `users`; +----+--------------+ | id | name | +----+--------------+ | 1 | Elena Popova | +----+--------------+ 1 row in set (0.00 sec)
Удаление строки из таблицы
Пользователя можно удалить с помощью команды DELETE , также с использованием идентификатора.
mysql> DELETE FROM `users` WHERE `id` = 1; Query OK, 1 row affected (0.01 sec)
Если опустить указание идентификатора через WHERE , то запрос удалит все строки из таблицы.
Удаление таблицы
Удалим таблицу users , это можно сделать с помощью команды DROP TABLE .
mysql> DROP TABLE `users`; Query OK, 0 rows affected (0.02 sec)
Удаление базы данных
Удалим базу данных test , чтобы вернуться к первоначальному состоянию. Сделать это можно с помощью команды DROP DATABASE .
mysql> DROP DATABASE `test`; Query OK, 0 rows affected (0.00 sec)
Создание пользователей
Подключение сайта к базе данных из под root пользователя небезопасно, в случае компрометации данных для подключения, злоумышленники смогут получить доступ к любой базе данных на сервере. Чтобы подобное не происходило, нужно для каждого сайта создавать пользователя с доступом только к нужным базам данных. Для этого нужно создать пользователя с помощью команды CREATE USER .
mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'KJ2aqCa89vjYsrFh'; Query OK, 0 rows affected (0.01 sec)
В этом примере мы создали пользователя admin с паролем KJ2aqCa89vjYsrFh, подключение будет возможно только с сервера localhost. Если необходимо подключение со стороннего сервера, замените localhost на нужный IP-адрес.
Изменение пароля пользователя
Изменить пароль пользователя можно с помощью ALTER USER .
mysql> ALTER USER 'admin'@'localhost' IDENTIFIED BY '2XdoiZrsDN67ozCd'; Query OK, 0 rows affected (0.00 sec)
Настройка прав пользователя
Создав пользователя, по умолчанию он не будет иметь доступа к базам данных. Чтобы пользователь мог читать и изменять данные в базе данных, нужно его наделить этими правами с помощью команды GRANT .
mysql> GRANT ALL PRIVILEGES ON test.* TO 'admin'@'localhost'; Query OK, 0 rows affected (0.01 sec)
С помощью этого запроса мы предоставили полные привилегии пользователю admin, подключенного с сервера localhost для базы данных test. Вместо ALL PRIVILEGES можно указать только SELECT , тогда пользователь сможет только читать данные из базы данных.
Удаление пользователя
Для удаления пользователя нужно использовать команду DROP USER .
mysql> DROP USER 'admin'@'localhost'; Query OK, 0 rows affected (0.01 sec)
Заключение
Описанные команды SQL выполняются на любом сайте, где происходит хранение каких-либо данных в базе данных и это лишь малая часть функций сервера базы данных. Вы можете дальше изучить разные типы движков MyISAM, InnoDB и MEMORY. Настройку индексов для более быстрой работы выборки данных, различные типы данных в таблицах (INT, CHAR, ENUM, DATE и прочие).
Определение структуры данных
Для создания базы данных используется команда CREATE DATABASE . Она имеет следующий синтаксис:
CREATE DATABASE [IF NOT EXISTS] имя_базы_даных;
В конце команды указывается имя базы данных.
Первая форма CREATE DATABASE имя_базы_даных пытается создать базу данных, но если такая база данных уже существует, то операция возвратит ошибку.
Вторая форма CREATE DATABASE IF NOT EXISTS имя_базы_даных пытается создать базу данных, если на сервере отсутствует бд с таким именем.
Например, в MySQL Workbench CE (или в MySQL Command Line Client) выполним следующую команду:
CREATE DATABASE productsdb;
Она создаст на сервере бд productsdb.

Установка базы данных
После создания БД с ней производятся различные операции: создание таблиц, добавление и получение данных и т.д. Но чтобы установить производить эти операции, надо установить определенную базу данных в качестве используемой. Для этого применяется оператор USE :
USE productsdb;
Удаление базы данных
Для удаления базы данных применяется команда DROP DATABASE , которая имеет следующий синтаксис:
DROP DATABASE [IF EXISTS] имя_базы_даных;
Первая форма DROP DATABASE имя_базы_даных пытается удалить базу данных, но если такая база данных отсутствует на сервере, то операция возвратит ошибку.
Вторая форма DROP DATABASE IF EXISTS имя_базы_даных пытается удалить базу данных, если на сервере имеется бд с таким именем.
Например, удалим выше созданную базу данных productsdb:
DROP DATABASE productsdb;
