Mysql

Mysql ubuntu команды: Команды Linux для работы с MySQL. MySQL и консоль

Содержание

MySQL | Русскоязычная документация по Ubuntu

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 управляет событиями по-разному на нижнем уровне, но независимо от того, какая система хранения данных используется, вы будете взаимодействовать с базой одним и тем же способом.

Каждый драйвер имеет свои преимущества и недостатки.

Хотя смешивание и связывание драйверов баз данных на уровне таблиц разрешается и может быть привлекательным, это снижает эффективность настройки производительности, которую вы смогли бы провести при разделении ресурсов между двумя системами вместо замешивания их в одно целое.

  1. MyISAM более старая из двух. Она может быть быстрее InnoDB при определенных обстоятельствах и предпочтительна при рабочей нагрузке, ориентированной на чтение данных. Некоторые интернет приложения настроены на использование именно MyISAM (однако это не означает, что они будут медленнее под InnoDB). MyISAM также поддерживает тип данных FULLTEXT, который позволяет осуществлять очень быстрый поиск по большому количеству текстовых данных. Однако MyISAM поддерживает блокировку записи только на уровне таблиц. Это означает, что только один процесс может изменять данные в таблице в один момент времени. Поскольку некоторые приложения, использующие таблицу, могут масштабироваться (работать несколькими экземплярами — scales), это может стать серьезной помехой. Здесь также отсутствует журналирование, что может усложнить восстановление данных после сбоя. Следующая ссылка предоставляет некоторые соображения по использованию MyISAM в работающей базе данных.

  2. 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 или проприетарных приложений. Производительность зависит от типов запросов, использования индексов, насколько эффективно спроектирована база данных и т.д. Вы можете посчитать полезным потратить некоторое время на поиск настроек базы данных под используемые вами приложения. Как только вы пройдете определенную точку, любые ваши изменения будут приводить к минимальным улучшениям и вам будет лучше либо заняться улучшением ваших приложений, либо масштабировать вашу базу данных, используя более производительное оборудование или добавляя зависимые сервера.

Ссылки

  1. Полная документация доступна в форматах как онлайн, так и оффлайн по ссылке MySQL Developers portal.


Работа с MySQL из командной строки (работа с mysql ubuntu)

Работа с MySQL из командной строки (работа с mysql ubuntu)

Будем считать что все у нас уже установлено и теперь приступаем непосредственно к работе.
Подключаемся:
[email protected]:~$ mysql -pПАРОЛЬ
-p, —password=[password] — Пароль пользователя, для соединения с сервером MySQL. Не должно быть пробела между -p и паролем.
-u, —user=[user]— Имя пользователя для соединения с сервером MySQL. Необязательно, по умолчанию используется такое же, как ваш логин.Используеться если логин отличается от имени пользователя для соединения с сервером MySQL.
$ mysql -u ceval_ -pПАРОЛЬ
Если мы ввели свой пароль правильно, то увидим такие строки и приглашения:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Server version: 5.0.45-Debian
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql>

Создаем нужную нам базу, с кодировкой cp1251, указанную кодировку можно заменить на требуемую:
CREATE DATABASE db_name DEFAULT CHARACTER SET cp1251 DEFAULT COLLATE cp1251_general_ci;
Удаления базы:
DROP DATABASE db_name;
Смена базы
USE `mydatabase`;
Удаления таблицы из базы
DROP TABLE `db_table`;
Еще немного:
    ->\g show databases; // смотрим какие базы есть
    ->\g create database sputnik;  // создаем новую базу
    ->\g show databases; // проверяем создалась ли она
    ->\q // Выходим

В разных версиях MySQL могут быть разные команды (4 и 5) в данном случае \g  — дает команду серверу выполниьт скрипт SQL
Загрузка, сохранение базы данных MySQL (backup, restore) работа с mysql ubuntu
   Загрузить базу сохраненными данными (если делалось сохранение данных). Они сохранены например в файле baza.sql
mysql
                ->\g show databases;
                ->\u baza;
                ->\. /home/backup/baza.sql
                ->\q

      /home/backup/baza.sql — путь к файлу бекапа
[b]Сохранить базу с данными в файл baza.sql[/b]
  mysqldump baza > /home/backup/baza.sql;
  База хранится:  /var/lib/mysql/baza  —  для удаления всей базы данных достаточно удалить данный каталог.
Можно осуществлять различными способами:
— подключиться по ssh и работать через командную строку;
— использовать phpmyadmin;
— использовать пакет mysql-admin — это графическая утилита администрирования MySQL (GUI tool for intuitive MySQL administration
MySQL)
Теперь устанавливаем себе пакет mysql-admin на машину
sudo aptitude install mysql-admin
Дальше идем на удаленную машину и правим конфиг [b]my.cnf[/b]
$ sudo nano /etc/mysql/my.cnf
Для начало можно проверить:
  $ netstat -an | grep 3306
   tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN

Как видно из вывода пока MySQL слушает на localhoste, а нам нужно, чтобы MySQL слушал на всех интерфейсах, а не только на localhost, поэтому находим и редактируем такую запись:

[…]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address           = 127.0.0.1
#
[…]

и что б MySQL слушал на всех интерфейсах, закомментируем эту строчку:
[…]

#bind-address = 127.0.0.1:

[…]
Рестанем MySQL:
$ sudo /etc/init.d/mysql restart
И посмотрем снова вывод команды:
  $ netstat -an | grep 3306
Вывод должен выглядеть следующим образом:

  tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN

и теперь можно запускать mysql-admin для удаленной работы с MySQL — Alt+F2 — mysql-admin
или
$ mysql-admin
работа с mysql ubuntu

Читаем еще:

Установка и настройка mysql в Ubuntu

Всем привет. Сегодня мы установим mysql в ubuntu. Если следовать простой инструкции, то сложностей точно не возникнет. Итак, можно смело приступать.

  1. Процесс установки
  2. Неожиданная ошибка после настройки can’t connect to local Mysql Server
  3. Процесс настройки mysql
  4. Настройка прав и привилегий
  5. Создание нового пользователя

Процесс установки

sudo apt update
sudo apt install mysql-server -y

-y означает то, что вы будете отвечать согласием на все команды, таким образом, все установится без вашего участия. Можете не волноваться, если вы запускаете эту команду. Ведь наверняка вы хотите установить mysql, какие могут быть еще вопросы ? =)

Неожиданная ошибка после настройки can’t connect to local Mysql Server

sudo mysql_secure_installation

По факту это помощник в установке, который настроит всю систему на основе ваших ответов. 

Возможно после запуска вы столкнетесь с ошибкой 

Error: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2) 

Я столкнулся. Что значит эта ошибка? Сокета либо нет, либо к нему нет доступа. Поэтому идем в папку:

cd /var/run/mysqld

и там действительно пусто. Сокета там нет. Создается он в процессе запуска mysql. Поэтому проверим статус сервиса, следующей командой:

sudo service mysql status

* MySQL is stopped.

Давайте его запустим:

sudo service mysql start

* Starting MySQL database server mysqld

Проверим статус:

sudo service mysql status

Можете еще зайти в папку /var/run/mysqld/. Там вы увидите сокет.

Обратите внимание, с какими правами и под каким пользователем запущен сокет. Часто из-за нехватки прав может быть такая же ошибка

Процесс настройки mysql

Запускаем опять:

sudo mysql_secure_installation

Первый вопрос, который вам зададут: VALIDATE PASSWORD PLUGIN. Это плагин, который позволит определить надежность вашего будущего пароля. Я бы нажал Y. Не вижу в нем ничего плохого. Смело устанавливаем.

Далее вам будет предложено выбрать сложность этого пароля. Смотрите сами: если хотите “поиграться” или делаете mysql для локальной разработки — берите попроще, если это продакшн — только максимальный.

Теперь вам нужно ввести пароль и подтвердить его, а после — согласиться с вводом. Здесь можно задать что-то простое и запоминающееся. Все-равно мы будем менять пароль позже.

В mysql есть анонимные пользователи, которые могут подключаться без аккаунта. Их система предлагает удалить — соглашаемся 

В целях безопасности запрещаем подключение к бд с других серверов. отвечаем — Y

Удаляем тестовую базу. Отвечаем — Y

Перезагружаем таблицу с привилегиями. Отвечаем — Y

Если все пройдет хорошо, то в конце вы получите сообщение: 

All done!

Настройка прав и привилегий

В mysql с версии 5.7 авторизация root пользователя проходит не через пароль, а посредством auth_socket. То есть, если вы выполните команду:

sudo mysql

то сможете легко попасть в интерфейс программы:

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

Для этого введем следующую команду:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Чтобы поменять auth_socket на mysql_native_password, нам потребуется выполнить следующую команду. Только не забудьте поменять слово “password” на сильный пароль

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Query OK, 0 rows affected (0.00 sec)

Закрепляем все изменения командой:

FLUSH PRIVILEGES;

Запустим команду для проверки плагина авторизации еще раз:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Теперь вы должны увидеть там mysql_native_password

вводим команду:

exit

А теперь давайте занова попробуем подключиться:

sudo mysql

Вероятнее всего, вы получите ошибку:

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

Чтобы подключиться к бд, необходимо использовать пару “логин-пароль”:

sudo mysql -u root -p

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

Теперь я рекомендую вам создать нового пользователя, который будет работать с нужной ему базой данных. По аналогии, вместо слова password задаем пароль:

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

Query OK, 0 rows affected (0.00 sec)

Теперь давайте выйдем:

exit

Зайдите сначала под root, а потом пользователем user и поочередно выполните команду:

show databases;

вот что видит root:

А что user:

У user‘a список меньше. Давайте дадим ему привилегии. Заходим под пользователем root:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Данными командами мы даем все права пользователю user. Можете почитать более подробно про эту команду. Фактически вы можете дать права на 1 базу на определенный перечень команд.

Теперь, если вы зайдете под пользователем user, то увидите весь список баз данных:

Заключение.

В целом, на этом настройка mysql заканчивается. У вас есть рабочая mysql 5.7 и пользователь с максимальными правами. Что еще для счастья надо? 🙂

Установка MySQL в Ubuntu 20.04

MySQL — это одна из самых популярных систем управления базами данных, которая применяется почти везде, начиная от различных предприятий и промышленности и заканчивая организацией работы веб-сайтов.

Сейчас существует несколько версий MySQL. Непосредственно MySQL, разрабатываемая компанией Oracle и свободный форк от основного разработчика MySQL — MariaDB. Имя MairaDB программа получила в честь первой дочери программиста, также как и MySQL в честь имени второй. В большинстве дистрибутивов Linux используется MariaDB, в том числе и в Ubuntu. Но в этой статье давайте рассмотрим установку именно MySQL в Ubuntu 20.04.

Содержание статьи:

Установка MySQL 8 в Ubuntu

Программа и все необходимые компоненты есть в официальных репозиториях, поэтому установить её не составит труда. Для установки из официальных репозиториев сначала обновите списки пакетов:

sudo apt update

Затем установите необходимые пакеты:

sudo apt install mysql-server mysql-client

На данный момент в репозиториях Ubuntu 20.04 есть уже версия Mysql 8.20. Вы можете проверить установленную версию такой командой:

mysql -V

Кроме того, желательно проверить, запущенна ли служба MySQL:

sudo systemctl status mysql

 

Вы должны увидеть зеленую надпись Active, Running и версию программы, которую устанавливали.

Установка MySQL 5.7 в Ubuntu

Если вам нужна версия 5.7, то её в репозиториях нет, но вы можете получить эту версию из репозитория разработчика. Если в системе уже есть более новая версия, её надо полностью удалить:

sudo apt remove --autoremove mysql-server mysql-client

Также удалите каталог с базами данных MySQL они не совместимы со старой версией:

sudo rm -Rf /var/lib/mysql

Для установки репозитория скачайте этот пакет:

sudo wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb

Затем установите его:

sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb

В процессе установки программа попросит выбрать дистрибутив. Если у вас Ubuntu 20.04 или выше, выбирайте версию для Ubuntu 18.04 — bionic:

Затем выберите MySQL Server and Cluster:

После этого останется выбрать нужную версию MySQL, например 5.7:

После этого обновите списки репозиториев и посмотрите какие версии MySQL доступны:

sudo apt update

sudo apt-cache policy mysql-server

Осталось установить установить mysql 5.7 в Ubuntu:

sudo apt install mysql-server=5.7.31-1ubuntu18.04 mysql-community-server=5.7.31-1ubuntu18.04 mysql-client=5.7.31-1ubuntu18.04

В процессе установки программа запросит пароль для root пользователя:

После этого вы снова можете посмотреть версию:

Настройка mysql в Ubuntu

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

sudo mysql_secure_installation

 

На первом шаге настраивается плагин валидации пароля. Чтобы его включить нажмите Y, или его можно не включать. Затем надо задать сложность пароля, который позволит установить этот плагин. Здесь 0 означает слабый пароль, а 2 — сложный. Когда плагин будет настроен введите пароль root и подтвердите, что хотите использовать именно его:

Введите Y для отключения анонимного доступа к MySQL, затем ещё раз Y чтобы запретить подключаться к базе от имени root удаленно:

 

 

Снова Y, чтобы удалить тестовую базу данных. Затем, обновите привилегии для пользователей:

 

 

После завершения настройки вы можете подключиться к пользователя root к серверу баз данных из командной строки:

sudo mysql -u root

Здесь нам необходимо создать пользователя, от имени которого мы будем использовать базу данных, а также саму базу данных. Для этого воспользуемся командами SQL. Сначала создаем базу данных:

mysql> CREATE DATABASE testDB;

Далее создадим пользователя:

mysql> CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'password';

Слова my_user и password нужно заменить на свои имя пользователя и пароль. Дальше нужно дать права пользователю на управление этой базой данных:

mysql> GRANT ALL PRIVILEGES ON testDB.* TO 'my_user'@'localhost'

Или вы можете дать права только на несколько инструкций:

mysql> GRANT SELECT,UPDATE,DELETE ON testDB.* TO 'my_user'@'localhost';

Если какую-либо инструкцию нужно запретить, удалите ее:

mysql> REVOKE UPDATE ON testDB.* FROM 'my_user'@'localhost';

После завершения работы с правами нужно их обновить:

mysql> FLUSH PRIVILEGES;

Чтобы убедиться что нет никого лишнего, вы можете вывести список пользователей:

mysql> SELECT user,host FROM mysql.user;

Также вы можете посмотреть полномочия для нужного пользователя:

mysql> SHOW GRANTS FOR 'my_user'@'localhost';

Теперь установка MySQL Ubuntu 20.04 полностью завершена и вы можете использовать эту базу данных для решения своих задач.

Удаление MySQL в Ubuntu

Чтобы удалить mysql Ubuntu 20.04 понадобиться немного больше команд чем для удаления простого пакета. После удаления основных пакетов в системе остается еще много файлов. Мы рассмотрим как удалить все.

Сначала остановите сервисы:

sudo systemctl stop mysql
sudo killall -KILL mysql mysqld_safe mysqld

Удалите основные пакеты и их зависимости:

sudo apt -y purge mysql-server mysql-client
sudo apt -y autoremove --purge
sudo apt autoclean

Удалите пользователя mysql и остатки программы в системе:

deluser --remove-home mysql
sudo delgroup mysql
rm -rf /etc/apparmor.d/abstractions/mysql /etc/apparmor.d/cache/usr.sbin.mysqld /etc/mysql /var/lib/mysql /var/log/mysql* /var/log/upstart/mysql.log* /var/run/mysqld
updatedb

Удалите все логи подключений к mysql из терминала:

sudo find / -name .mysql_history -delete

Теперь ваша система полностью очищена от MySQL.

Выводы

В этой статье мы рассмотрели как выполняется установка MySQL в Ubuntu 20.04. Как видите, это не очень трудно, хотя и требует некоторых знаний и немного времени на то, чтобы со всем разобраться. Надеюсь, эта информация была для вас полезной.

Основные консольные команды mysql

На самом деле на этом сайте уже есть статья, где перечислены почти все основные команды, которые могут понадобится при работе с базами данных (здесь). Но статья весьма большая и не очень удобна для быстрого поиска нужной строки. А главное, что в ней нет команды по вытаскиванию базы данных, или проще, по созданию бэкапа. Поэтому в этой небольшой статье решил сделать короткую заметку по самым основным командам: создание, удаление, просмотр, импортирование и экспортирование базы данных через mysql в linux.

Разумеется, что должен быть установлен сам mysql. Иначе все команды будут обессмыслены. Благо он есть в стандартных репозиториях практически каждой линукс системы. Например, в ubuntu его можно установить выполнив…

sudo apt-get install mysql-server

Что бы войти в сам mysql-server, нужно выполнить команду:

sudo mysql --user=root --password=ваш_пароль

Под паролем имеется ввиду, пароль от базы данных, а не от системного root’a. Да и за место —user=root у вас может быть, например, —user=petia.

Теперь все команды отдаются напрямую в mysql. Чтобы увидеть, какие базы данных созданы, нужно ввести команду:

SHOW DATABASES;

Чтобы добавить новую базу данных, вводим команду:

create database имя_базы DEFAULT CHARACTER SET кодировка;

Если нужно удалить базу данных, то есть команда…

DROP DATABASE имя_базы;

Это основные команды, которые используются в mysql. Чтобы выйти нужно выполнить exit.

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

sudo mysql --user=root --password=ваш_пароль имя_базы_данных < бэкап.sql

Данная и следующая команда вводится в обычном терминале, а не в самом клиенте mysql. Подразумевается, что файл бэкап.sql будет лежать в том же каталоге откуда и производится команда.

Для экспорта базы данных есть команда:

sudo mysqldump -uroot -pпароль имя_базы > dump.sql

Обратите внимание, что пароль вводится сразу после «-p» без пробела.

Вот и все основные команды. Мне пока ещё не разу не понадобилось ни одной сверх тех, что описаны выше. Разумеется, что можно установить phpmyadmin (также, как и  mysql-server), но у меня он откровенно глючит. Да и через консоль зачастую всё происходит быстрее.

Похожие статьи:

Как установить MySQL на виртуальный сервер с Ubuntu 18.04 🐬

Описание и технические требования

СУБД MySQL надежное и заслуживающее доверия решение для управления базами данных при разработке веб-приложений. Система является частью стека LAMP, содержащего в себе такие компоненты как:

  1. Apache;
  2. Linux;
  3. MySQL;
  4. PHP/Python/Perl.

Для того чтобы установить MySQL на Ubuntu, необходимо соблюсти следующие условия:

  • Административный доступ к серверу.
  • По возможности не использовать для администрирования root-доступ.
  • На сервер необходимо инсталлировать ОС Ubuntu 18.04.

Установка MySQL в Ubuntu 18.04

Подобная установка MySQL на сервер Ubuntu, состоит из четырех этапов:

  1. Установка.
  2. Настройка.
  3. Настройка привилегий.
  4. Тестирование.

Установка

В репозитории Ubuntu, как правило, располагается актуальная версия MySQL. Для обновления индекса пакетов используется команда – apt:

sudo apt update

sudo apt install mysql-server

Подчеркиваем, что подобный метод инсталляции не до конца безопасен, поскольку не требуется вводить пароль либо других ограничивающих данных. После установки необходима обязательная настройка MySQL.

Настройка

После установки «чистой» версии MySQL в обязательном порядке запускается скрипт, который отвечает за безопасность. Он меняет ключевые настройки безопасности. Например, генерирует пароли пользователей  с правами root, которые не были заданы по умолчанию.

В более ранних выпусках СУБД была инициализация скрипта в ручном режиме. Сейчас, это выполняется автоматически.

Для безопасного выполнения скрипта используется следующая команда:

sudo mysql_secure_installation

Результатом станет предложение о внесении изменений в конфигурационные файлы безопасности. На этом этапе необходимо выполнить три действия:

  1. Инсталлировать Validate Password Plugin, отвечающий за проверку допустимости паролей в СУБД.
  2. Сгенерировать пароль пользователям, обладающим root-правами.
  3. Ввести сгенерированный пароль еще раз.

Для последующих действий достаточно нажать символ «Y» (согласие с операцией) и клавишу «ENTER» (выполнение операции).

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

Все эти изменения сохранятся по отношению к конкретно устанавливаемой базе данных MySQL. Активация новой базы данных происходит посредством команды:

mysql_install_db

Указанный скрипт работает только для MySQL 5.7.6 и старше.

Более «свежие» версии оболочки потребуют введения команды:

mysqld –initialize

Настройка привилегий

Смена способа аутентификации

На серверах с операционной системой Ubuntu и установленной MySQL (версии 5.7 и старше) аутентификация пользователя с правами root происходит через плагин «auth_socket» без ввода пароля. Это достаточно надежная схема, но она может потерять актуальность в случае подключения внешнего софта, например – phpMyAdmin.

Для обеспечения безопасности и создания доступа для пользователей со статусом root, входить нужно при помощи пароля. Для чего метод идентификации через плагин «auth_socket» меняется на идентификацию через пароль «mysql_native_password».

Чтобы произвести замену, для начала входим в MySQL как пользователь root через команду:

sudo mysql

Далее, делается проверка на метод идентификации для каждого пользователя root посредством команды:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Вывод:

Приведенный лог проверки показывает, что пользователь, наделенный правами root, авторизуется через плагин auth_socket.

Применить авторизацию при помощи пароля можно командой:

ALTER USER

При этом необходимо изменить значение «password» на надежный пароль. Полная команда выглядит так:

'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Необходимо проверить, что новые настройки вступили в силу, и пользователь root входит, только используя пароль, без помощи плагина auth_socket. Команда:

SELECT user,authentication_string,plugin,host FROM mysql.user;

Вывод:

В списке видно, что пользователи с правами root проходят идентификацию, вводя пароль, а не через плагин. Получив такое подтверждение, можно выполнить выход из MySQL через команду:

exit
Смена способа аутентификации

В некоторых случаях может потребоваться создание отдельного пользователя с ограниченными правами. Например, он может добавлять в базу новые данные, но удалять или корректировать их не сможет.

Для этого выполняется вход в среду базы:

sudo mysql

Не стоит забывать, что если была включена авторизация при помощи ввода пароля, как было описано выше, привилегии вошедшему будут выданы, как для рядового пользователя. Для доступа с правами root необходимо ввести команду:

mysql -u root -p

После этого появится возможность создания нового пользователя базы данных и генерации для него надежного пароля. Сделать это можно командой:

CREATE USER 'пользователь'@'localhost' IDENTIFIED BY 'password';

Новому пользователю можно делегировать определенное количество функций. Например, полный доступ к таблицам или право на внесение и изменение данных. Изменять пользовательские привилегии можно следующей командой:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;

 

На последнем шаге выполняется команда:

exit

Она позволяет выйти из системы MySQL.

Тестирование

Когда настройка MySQL на Ubuntu закончена, необходимо удостовериться в корректности работы сервера базы данных. Выполнить это можно двумя способами:

  1. Проверка автоматического запуска.
  2. Принудительное подключение к базе данных.

Независимо от способа установки базы данных, она запускается в автоматическом режиме. Проверить это можно при помощи команды:

systemctl status mysql.service

В логе консоли должен появиться вывод, соответствующий нижеприведенному:

В случае, когда сервер базы данных еще не запущен активация осуществляется командой:

sudo systemctl start mysql

Для вторичного контроля можно использовать принудительное подключение к базе данных посредством команды:

sudo mysqladmin -p -u root version

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

Ответ от сервера должен выглядеть примерно следующим образом:

Данный ответ подтверждает, что сервер базы данных запущен и находится в рабочем состоянии.

Удаление MySQL

Иногда возникают ситуации, требующие удаления MySQL из Ubuntu. Например, когда нужно опробовать новую базу данных.

Удаление MySQL в Ubuntu начинается с ее остановки при помощи команды:

sudo service mysql stop

Если необходима полная деинсталляция базы данных, включая пользователей, пакеты, настройки конфигурации и прочее, относящееся к СУБД, то нужно последовательно выполнить следующие команды:

sudo apt-get remove --purge mysql-server mysql-client mysql-common

sudo apt-get autoremove

sudo apt-get autoclean

Если необходимо сохранить файлы конфигурации, а также данные, список команд выглядит по-другому:

$ sudo apt-get remove mysql-server mysql-client mysql-common
$ sudo apt-get autoremove
$ sudo apt-get autoclean

Ручная настройка MySQL сервера на Ubuntu

Заметка по установке Linux Ubuntu Server 16.04 на сервер HP  (думаю, что подобным образом его можно поставить на любой другой сервер) и о том, как настроить MySQL сервер.

Во время установки выбираем установить LAMP, SSH server, Samba сервер.

Система спросит, надо будет выбрать перечисленное пробелами.

DHCP сервера у меня не было, поэтому отметил «Настроить сеть вручную». Настройкой занялся после установки ОС.

Установленный сервер Ubuntu выглядит таким образом:

Настройка сети

Логинимся в систему и выполняем следующую команду:

sudo lshw -C network

Получаем примерно следующее:

Здесь нас интересует имя сетевого адаптера logical name: enp0s3.

Далее выполняем следующую команду:

sudo nano /etc/network/interfaces

В данном файле прописываем настройки сети для адаптера enp0s3:

(Настройки у вас должны быть, конечно, свои)

Сохраняем файл комбинацией клавиш Ctrl+O и выходим из программы с помощью Ctrl+X.

Перезапускаем сеть:

sudo /etc/init.d/networking restart

На этом этапе сеть должна уже работать и соседние компьютеры пинговаться.

Настройка MySQL

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

Так же необходимо изменить движок таблиц по умолчанию с InnoDB на MyISAM (в моем случае), так как транзакций не будет, а на движке MyISAM все будет работать быстрее. Для этого необходимо присвоить переменной default_storage_engine значение MyISAM в файле mysqld.cnf.

Пишем в консоли:

sudo nano /etc/mysql/mysql.conf.d/mysql.cnf

Прописываем переменную в конфиге и комментируем строку bind-address = 127.0.0.1 чтобы мы могли подключаться к MySQL с других компьютеров:

По умолчанию MySQL сервер не позволит пользователю root подключиться с других компьютеров.

Создадим нового пользователя и дадим ему полные права. Для этого запустим mysql client на сервере либо по SSH:

mysql -h 127.0.0.1 -u root -p

Введем пароль, установленный для root и получим следующее:

На этом этапе и можем писать SQL запросы. В конце каждого запроса ставим символ ‘;‘ и нажимаем Enter.

Создаем нового пользователя MySQL со всеми правами

Создаем нового пользователя (здесь myuser11 это пароль):

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'myuser11';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'myuser11';

Даем все права:

GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';

Обновляем все права доступа командой:

FLUSH PRIVILEGES;

На этом этапе мы имеем настроенный MySQL сервер с админом myuser, который может подключаться к MySQL с других компьютеров.

Просмотрено:
1 811

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

mysql с xampp в ubuntu 14.04

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

.

подключение к MySQL из командной строки

Переполнение стека

  1. Около
  2. Продукты

  3. Для команд
  1. Переполнение стека
    Общественные вопросы и ответы

  2. Переполнение стека для команд
    Где разработчики и технологи делятся частными знаниями с коллегами

  3. Вакансии
    Программирование и связанные с ним технические возможности карьерного роста

  4. Талант
    Нанимайте технических специалистов и создавайте свой бренд работодателя

  5. Реклама
    Обратитесь к разработчикам и технологам со всего мира

  6. О компании

Загрузка…

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *