MySQL
MySQL — это быстрый, многопоточный, многопользовательский и устойчивый сервер SQL базы данных. Он предназначен как для ответственных сильнозагруженных производственных систем, так и для встраивания в массовое программное обеспечение.
Установка
Для установки MySQL запустите следующую команду из терминала:
sudo apt-get install mysql-server
Начиная с Ubuntu 12.04, MySQL 5.5 устанавливается по умолчанию. Несмотря на 100% совместимость с MySQL 5.1, при необходимости установить версию 5.1 (например в качестве зависимой базы к другим MySQL 5.1 серверам), вы можете заменить устанавливаемый пакет на mysql-server-5.1.
В процессе установки у вас запросят пароль для пользователя root под MySQL.
Как только установка завершится, сервер MySQL запустится автоматически. Вы можете использовать следующую команду в терминале для проверки, что сервер MySQL запущен:
sudo netstat -tap | grep mysql
Когда вы запустите эту команду, ввы сможете увидеть что-то похожее на следующую строку:
tcp 0 0 localhost:mysql *:* LISTEN 2556/mysqld
Если сервер не работает, вы можете набрать следующую команду для его запуска:
sudo service mysql restart
Настройка
Вы можете отредактировать файл /etc/mysql/my.cnf для настройки основных параметров — файл журнала, номер порта и пр. Например, чтобы настроить MySQL на ожидание подключений от компьютеров в сети, измените параметр bind-address на IP адрес сервера:
bind-address = 192.168.0.5
Замените 192.168.0.5 на реальное значение адреса вашего сервера.
После изменений в /etc/mysql/my.cnf сервис MySQL нужно перезагрузить:
sudo service mysql restart
Если вам потребовалось сменить пароль пользователя root в MySQL, введите в терминале:
sudo dpkg-reconfigure mysql-server-5.5
Сервис MySQL будет остановлен и вас попросят ввести новый пароль.
Драйверы базы данных
Хотя конфигурация по умолчанию для MySQL, предоставляемая пакетами Ubuntu, имеет великолепную функциональность и работает достаточно хорошо, есть некоторые вещи, которые вы можете решить до того как продолжить.
MySQL разработан так, что позволяет хранить данные по-разному. Эти варианты относятся к драйверам (управляющим модулям — engines) как баз данных, так и хранилищ. Существует два основных драйвера, которые вам могут быть интересны: InnoDB и MyISAM. Драйверы хранилищ прозрачны (незаметны) конечным пользователям. MySQL управляет событиями по-разному на нижнем уровне, но независимо от того, какая система хранения данных используется, вы будете взаимодействовать с базой одним и тем же способом.
Каждый драйвер имеет свои преимущества и недостатки.
Хотя смешивание и связывание драйверов баз данных на уровне таблиц разрешается и может быть привлекательным, это снижает эффективность настройки производительности, которую вы смогли бы провести при разделении ресурсов между двумя системами вместо замешивания их в одно целое.
MyISAM более старая из двух. Она может быть быстрее InnoDB при определенных обстоятельствах и предпочтительна при рабочей нагрузке, ориентированной на чтение данных. Некоторые интернет приложения настроены на использование именно MyISAM (однако это не означает, что они будут медленнее под InnoDB). MyISAM также поддерживает тип данных FULLTEXT, который позволяет осуществлять очень быстрый поиск по большому количеству текстовых данных. Однако MyISAM поддерживает блокировку записи только на уровне таблиц. Это означает, что только один процесс может изменять данные в таблице в один момент времени. Поскольку некоторые приложения, использующие таблицу, могут масштабироваться (работать несколькими экземплярами — scales), это может стать серьезной помехой. Здесь также отсутствует журналирование, что может усложнить восстановление данных после сбоя. Следующая ссылка предоставляет некоторые соображения по использованию MyISAM в работающей базе данных.
InnoDB — более современный драйвер, созданный по принципам ACID, что гарантирует надежную обработку транзакций базы данных. Блокировка записи производится на уровне одной записи в таблице. Это означает возможность нескольких изменений в одной таблице одновременно. Кэширование данных происходит также и в оперативной памяти внутри драйвера базы данных, позволяя кэшировать более эффективно чем на уровне блоков файлов. В соответствии с ACID все транзакции журналируются независимо от основных таблиц. Это позволяет намного более надежно восстанавливать данные при проверке целостности данных.
Начиная MySQL 5.5 InnoDB является драйвером по умолчанию и настоятельно рекомендуется вместо MyISAM, если только у вас нет специфических потребностей, уникальных для этого драйвера.
Расширенные настройки
Создание настроенного файла my.cnf
Существует ряд параметров, которые могут быть указаны в файле настроек MySQL, что со временем позволит вам повысить производительность вашего сервера. Для начальной настройки вам может пригодиться Percona’s my.cnf generating tool. Этот инструмент позволит вам создать файл my.cnf более оптимизированный под специфические возможности вашего сервера и ваши требования.
Не меняйте ваш существующий файл my.cnf на созданный утилитой, если у вас уже загружены данные в вашу базу данных. Некоторые изменения в этом файле могут быть несовместимы, если вы поменяли то, как хранятся данные на диске, после чего вы не сможете запустить MySQL. Если вы все же решили это сделать и у вас есть данные в базе, вам потребуется выполнить mysqldump и загрузить данные повторно:
mysqldump --all-databases --all-routines -u root -p > ~/fulldump.sql
Эта операция запросит пароль пользователя root перед созданием копии данных. Желательно убедиться, что другие пользователи и процессы не используют базу во время этой операции. В зависимости от количества данных в вашей базе, это может занять длительное время. Вы не увидите ничего на экране во время этого процесса.
Как только файл выгрузки создан, остановите MySQL:
sudo service mysql stop
Теперь сохраните оригинальный файл my.cnf и замените его на новый:
sudo cp /etc/my.cnf /etc/my.cnf.backup sudo cp /path/to/new/my.cnf /etc/my.cnf
Затем удалите и создайте заново пространство базы данных, а также убедитесь в корректности его владельца перед запуском MySQL:
sudo rm -rf /var/lib/mysql/* sudo mysql_install_db sudo chown -R mysql: /var/lib/mysql sudo service start mysql
Теперь все, что осталось — это импортировать ваши данные. Чтобы дать нам представление как идет процесс импорта, полезно использовать утилиту ‘Pipe Viewer’ (pv). Далее показано как установить и использовать pv для этого случая, но если вы не хотите ее использовать, просто замените pv на cat в соответствующей команде. Не обращайте внимание на время ETA (расчетное время окончания), генерируемое pv, поскольку оно основывается на среднем времени обработки каждой записи при сохранении в файл, однако скорость может сильно меняться от записи к записи при использовании mysqldumps:
sudo apt-get install pv pv ~/fulldump.sql | mysql
Когда все завершится, это будет означать что все получилось!
Эта операция не обязательна для всех изменений my.cnf. Многие значения, которые вы захотите поменять для улучшения производительности сработают даже на работающем сервере. Но как всегда не забудьте сделать надежную копию файлов настроек и данных перед внесением изменений.
MySQL Tuner
MySQL Tuner — это полезный инструмент, который подсоединяется к работающему MySQL и предлагает варианты как можно улучшить настройки для вашей рабочей нагрузки. Чем дольше работает сервер, тем лучше рекомендации предоставит mysqltuner. Для рабочего окружения подождите как минимум 24 часа прежде чем запускать утилиту. Вы можете установить mysqltuner из хранилища Ubuntu:
sudo apt-get install mysqltuner
После установки запустите ее:
mysqltuner
и ждите ее финального отчета. Верхняя секция предоставляет общую информацию а сервере баз данных, а нижняя часть содержит рекомендации по настройке, необходимые для изменения вашего my.cnf. Многие из них могут быть поправлены вживую на сервере без перезагрузки. Смотрите официальную документацию MySQL (указанную в разделе Ссылки) для перечня параметров, изменяемых «налету». Далее часть примерного отчета по работающей базе, который показывает, что можно извлечь некоторую пользу от увеличения размера кэша запросов:
-------- Recommendations ----------------------------------------------------- General recommendations: Run OPTIMIZE TABLE to defragment tables for better performance Increase table_cache gradually to avoid file descriptor limits Variables to adjust: key_buffer_size (> 1.4G) query_cache_size (> 32M) table_cache (> 64) innodb_buffer_pool_size (>= 22G)
Один финальный комментарий по настройке базы данных: Хотя мы можем утверждать что определенные настройки самые лучшие, производительность может изменяться от приложения к приложению. Например, что работает великолепно для WordPress, может оказаться не лучшим для Drupal, Joomla или проприетарных приложений. Производительность зависит от типов запросов, использования индексов, насколько эффективно спроектирована база данных и т.д. Вы можете посчитать полезным потратить некоторое время на поиск настроек базы данных под используемые вами приложения. Как только вы пройдете определенную точку, любые ваши изменения будут приводить к минимальным улучшениям и вам будет лучше либо заняться улучшением ваших приложений, либо масштабировать вашу базу данных, используя более производительное оборудование или добавляя зависимые сервера.
Как показать список всех баз данных в MySQL
При администрировании серверов баз данных MySQL одна из наиболее распространенных задач, которые вам нужно будет выполнить, — это познакомиться со средой. Сюда входят такие задачи, как перечисление баз данных, находящихся на сервере, отображение таблиц конкретной базы данных или получение информации об учетных записях пользователей и их привилегиях.
В этом руководстве объясняется, как отобразить все базы данных на сервере MySQL или MariaDB через командную строку.
Показать базы данных MySQL
Самый распространенный способ получить список баз данных MySQL — это использовать клиент mysql для подключения к серверу MySQL и выполнить команду SHOW DATABASES .
Получите доступ к серверу MySQL с помощью следующей команды и при появлении запроса введите пароль пользователя MySQL:
mysql -u user -p
Если вы не установили пароль для своего пользователя MySQL, вы можете опустить переключатель -p .
Из оболочки MySQL выполните следующую команду:
SHOW DATABASES;
Команда напечатает список всех баз данных, для которых пользователю предоставлены какие-либо права . Результат будет примерно таким:
+--------------------+ | Database | +--------------------+ | information_schema | | opencart | +--------------------+ 2 rows in set (0.00 sec)
Еще одна команда, которую вы можете использовать для SHOW SCHEMAS списка баз данных, — это SHOW SCHEMAS которая является синонимом команды SHOW DATABASES :
SHOW SCHEMAS;
Вывод будет таким же, как при использовании команды SHOW DATABASES :
+--------------------+ | Database | +--------------------+ | information_schema | | opencart | +--------------------+ 2 rows in set (0.00 sec)
Показать все базы данных MySQL
Чтобы вывести список всех баз данных на сервере MySQL, вам необходимо войти в систему как пользователь, имеющий доступ ко всем базам данных, по умолчанию это пользователь root MySQL или установить глобальную привилегию SHOW DATABASES .
Войдите в систему как root-пользователь MySQL:
mysql -u user -p
Запустите команду SHOW DATABASES :
SHOW DATABASES;
Вы увидите список всех баз данных на сервере MySQL:
+--------------------+ | Databases | +--------------------+ | information_schema | | database_name | | mysql | | opencart | | wordpress | | performance_schema | | sys | +--------------------+ 7 rows in set (0.00 sec)
Фильтрация результата
Предложение LIKE можно использовать для фильтрации вывода команды SHOW DATABASES соответствии с определенным шаблоном.
SHOW DATABASES LIKE pattern;
Например, следующий оператор вернет все базы данных, имена которых начинаются с ‘open’:
SHOW DATABASES LIKE 'open%';
+--------------------+ | Database | +--------------------+ | opencart | +--------------------+ 1 rows in set (0.00 sec)
Знак процента ( % ) означает ноль, один или несколько символов.
Если вы хотите выполнить более сложный поиск, вы запрашиваете таблицу schemata из базы данных information_schema которая содержит информацию обо всех базах данных.
Следующая инструкция предоставит вам список всех баз данных, которые начинаются с «open» или «word»:
SELECT schema_nameFROM information_schema.schemataWHERE schema_name LIKE 'open%' ORschema_name LIKE 'word%';
+--------------------+ | Database | +--------------------+ | opencart | | wordpress | +--------------------+ 2 rows in set (0.00 sec)
Показать базы данных MySQL из командной строки
Чтобы получить список баз данных без входа в оболочку MySQL, вы можете использовать либо команду mysql с параметром -e что означает выполнение, либо mysqlshow который отображает информацию о базах данных и таблицах.
Это особенно полезно, когда вы хотите работать со своими базами данных MySQL с помощью сценариев оболочки.
Выполните следующую команду на своем терминале, чтобы отобразить список всех баз данных:
mysql -u user -p -e 'show databases;'
+--------------------+ | Database | +--------------------+ | information_schema | | opencart | +--------------------+
Вот пример использования команды mysqlshow :
mysqlshow -u user -p
Вывод будет идентичен выводу предыдущей команды.
Если вы хотите отфильтровать вывод, вы можете использовать команду grep .
Выводы
Вы узнали, как получить список всех баз данных на вашем сервере MySQL.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Как показать список всех баз данных в MySQL
В этом руководстве мы покажем вам, как отобразить список всех баз данных в системе MySQL Linux. Для тех из вас, кто не знал, MySQL — самая популярная система управления реляционными базами данных с открытым исходным кодом. Исходный код MySQL находится в свободном доступе, поскольку изначально разрабатывался как бесплатное ПО. MySQL написан на C и C ++ и совместим со всеми основными операционными системами. MySQL может использоваться для множества приложений, но чаще всего встречается в популярных стеках LAMP и LEMP .
В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo ‘ к командам для получения привилегий root. Я покажу вам пошаговый список баз данных MySQL в Linux.
Показать список всех баз данных в MySQL
Шаг 1. Во-первых, убедитесь, что все ваши системные пакеты обновлены, выполнив следующие apt команды в терминале.
sudo apt update sudo apt upgrade
Шаг 2. Показать список всех баз данных в MySQL
Чтобы отображать базы данных в MySQL , вам необходимо войти в оболочку MySQL / MariaDB с пользователем root, как показано ниже:
$ mysql –u username –p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.8.64-MySQL-ubuntu0.20.04 (Ubuntu) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Из оболочки MySQL выполните следующую команду:
MySQL [(none)]> show databases;
+--------------------+ | Database | +--------------------+ | information_schema | | drupal | | magento | | mysql | | owncloud | | performance_schema | | wordpressdatabase | +--------------------+ 7 rows in set (0.01 sec)
Затем, если вы хотите использовать конкретную базу данных и перечислить все таблицы в ней, вы можете использовать следующие команды:
MySQL [(none)]> use mysql;
Затем выведите список доступных таблиц с помощью следующей команды:
MySQL [mysql]> show tables;
+---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | host | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | servers | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+
Если вы хотите узнать о структуре конкретной таблицы, вы можете использовать DESCRIBE инструкцию в MySQL:
MySQL [(none)]> DESCRIBE user;
Поздравляю! Вы успешно показали все базы данных MySQL. Благодарим за использование этого руководства по установке сервера MySQL в системе Ubuntu 20.04 Focal Fossa. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт MySQL .
Как Посмотреть Список Пользователей MySQL БД в Linux

MySQL — один из самых популярных менеджеров баз данных в мире. Он имеет множество функций, которые делают его надёжным и эффективным. Однако, как и любая другая программа, максимально эффективен он только при правильном использовании.
Простой и проверенный способ повысить защиту MySQL — создать пользователей с ограниченными правами доступа к базе данных. В этом руководстве вы узнаете, как в MySQL посмотреть список пользователей и их привилегии, а также более эффективно управлять базами данных в терминальной среде Linux на вашем VPS.
Зачем Создавать Пользователей в MySQL?
При установке MySQL первым создаётся пользователь root, или администратор MySQL. Пользователь с правами root имеет полный доступ к базе данных MySQL, а поэтому вряд ли вы захотите, чтобы у всех пользователей были такие же привилегии.
С другой стороны, хакеры всегда пытаются проникнуть в систему как пользователь root, чтобы украсть информацию, которая там хранится. Или, что ещё хуже, уничтожить сервис и все данные вместе с ним.
Имея это ввиду, системный администратор должен создавать пользователей с определёнными разрешениями для отдельных баз данных, а следовательно для отдельных таблиц. При этом, если безопасность этого пользователя будет поставлена под угрозу, ущерб будет минимальным.
Как Посмотреть Список Пользователей MySQL в Linux
Здесь вы узнаете самый простой способ:
Войдите через SSH
Во-первых, вам необходимо подключиться к вашему серверу, используя SSH. У нас есть руководство с подробным описанием этого процесса!
ssh vash-user@vash-server
Убедитесь, что у вас есть права root
Как только у нас будет доступ к нашему серверу, мы должны войти в консоль MySQL. Для этого нам нужны root-права. Введите в командную строку следующее:
sudo mysql -u root -p
Введите свой пароль администратора (root) MySQL
Затем нам нужно будет ввести пароль root для MySQL. Он должен отличаться от системного пароля root.
Мы сможем запускать предложения и команды, как только зайдём в консоль MySQL.
MySQL список пользователей
Теперь мы можем вывести список пользователей, созданных в MySQL, с помощью следующей команды:
mysql> SELECT user FROM mysql.user;
В результате мы сможем посмотреть всех пользователей, которые были созданы в MySQL.
Добавьте столбец хоста (необязательно)
В списке могут быть повторяющиеся пользователи. Это связано с тем, что MySQL фильтрует доступ к серверу в соответствии с IP-адресом, с которого он выполняется. Таким образом, вы также можете добавить столбец хоста.
Mysql> SELECT user,host FROM mysql.user;
Благодаря этому мы сможем посмотреть пользователей MySQL, а также с какого хоста или IP-адреса они имеют разрешение на доступ.
Итоги
Администрирование сервера базы данных не всегда простая задача. Поэтому мы должны быть осторожны с созданием и управлением разрешениями юзеров. Теперь вы знаете, как вывести список пользователей MySQL, привязанных к базе данных.
Также вы всегда можете обратиться к официальной документации MySQL для дополнительной информации о разрешениях и создании пользователей.
Ольга вже близько восьми років працює менеджером у сфері IT, три з яких вона займається SEO. Написання технічних завдань та інструкцій — один з її основних обов’язків. Її хобі — дізнаватися щось нове і створювати цікаві та корисні статті про сучасні технології, веброзробку, мови програмування, пошукову оптимізацію сайтів та багато іншого.