Mysql ��������� sql ���� linux

Sergey Danielyan

Правильная установка и настройка MySQL в Linux

Эта статья, по замыслу, должна служить пошаговым руководством по корректной настройки MySQL сервера в Linux в общем и в CentOS в частности, начиная от подготовки системы и заканчивая настройкой прав пользователей.
В этот раз текста будет минимум — только команды.

Установка MySQL

Проверяем, установлен ли MySQL сервер

Если установлен, шаги по установке можете пропустить, хотя ознакомиться я все же советую с ними.

Существуют следующие основные пакеты связанные с mysql:

  • mysql — клиент mysql
  • mysql-server — сервер mysql
  • mysql-devel — для разработки и подключения библиотек и хидеров mysql
  • mysql-connector-java — JDBC коннектор (используется, например, в EJBCA)

sudo yum install mysql mysql-server mysql-devel mysql-connector-java

Теперь надо установить сервер mysql на запуск в определенные runlevel‘ы (2, 3 и 5):

Если кто забыл соответствие цифрового значения runlevel‘а символьному:

Стартуем демон mysql:

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

Теперь пора настроить сервер. Начнем с пользователей.

Вот состояние таблицы user до начала действий с ней:

mysql -u root
> use mysql
> select host,user from user;

5 rows in set (0.00 sec)
> quit

Как видете, безопасность на уровне плинтуса. Хорошо хоть, что анонимного пользователя нет.

Для настройки базовых вещей в сервере, запустим настройку сервера через mysql_secure_installation. На время этой установки, пароль будет security. Ваш же пароль, как понимаете, должен отличаться.

Запустится скрипт, с запросами на то или иное действие. Вот ответы:

Skip root password for root
Мы еще не устанавливали пароль для root, поэтому при запуске скрипта и запросе пароля для root , просто нажмите Enter .

Install new password for root: security
А вот тут можно установить пароль для root

Do remove an anonymous user
На вопрос о том, удалить ли анонимного пользователя, отвечаем да

Do not disallow remote connections
Не запрещаем коннект к нашему северу с удаленных серверов (если, конечно, эта опция вам нужна, в другом случае, запретите ее)

Do remove a test database
Тестовая база нам не нужна — удаляйте ее

Do reload the privileges
Перегрузим привилегии для их активации

Теперь для всех root пользователей установлен пароль.

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

SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘security’);
SET PASSWORD FOR ‘root’@’localhost.localdomain’ = PASSWORD(‘security’);
SET PASSWORD FOR ‘root’@’127.0.0.1’ = PASSWORD(‘security’);

UPDATE mysql.user SET Password = PASSWORD(‘security’) WHERE user = ‘root’;

Если же вы не запускали конфигурацию через mysql_secure_installation или не хотите этого делать по каким-то другим причинам, следующие команды удалят any пользователей:

DROP USER »@’localhost’;
DROP USER »@’localhost.localdomain’;

Также, пароль для IPv6 localhost (@::1) можно установить таким образом:

Читайте также:  System support utility для windows

Близится финал нашего действия. Осталось две вещи:

  • открыть порты для mysql:

sudo iptables -I INPUT -p tcp —dport 3306 -m state —state NEW,ESTABLISHED -j ACCEPT
sudo iptables -I OUTPUT -p tcp —sport 3306 -m state —state ESTABLISHED -j ACCEPT

выставить кодировку UTF-8 по-умолчанию — файл /etc/my.cnf :

[mysqld]
init_connect=‘SET collation_connection = utf8_unicode_ci’
character-set-server = utf8
collation-server = utf8_unicode_ci

[client]
default-character-set = utf8

Источник

MySQL: Run Query from Bash Script or Linux Command Line

Sometimes it is needed to run some MySQL queries from the Linux command-line interface without accessing the interactive MySQL prompt.

For example, when it is required to schedule a backup of MySQL database or to automate execution of some SQL queries with a Bash script.

In this article i will show the most useful, from my point of view, options of the MySQL command-line client and show how to run multiple SQL queries to a database from a Bash script.

Cool Tip: List MySQL users, their passwords and granted privileges from the command-line prompt! Read more →

MySQL: Execute SQL Queries From The Linux Shell

Execute SQL query from the Linux command-line:

-pPASSWORD: This is not a typo! There should not be a space between your password and the -p when you pass it on the command-line!

Run SQL query on the explicitly specified database:

Run SQL query on the explicitly specified host:

Suppressing column headings:

Suppress table borders:

Save the output to a file:

Cool Tip: Create a MySQL database and GRANT ALL PRIVILEGES on it to a user! Simple and clear MySQL tutorial with good examples! Read more →

The most useful MySQL options when executing SQL queries from the Linux command-line or a Bash script:

Option Description
—user , -u The MySQL user name to use when connecting to the server.
—password , -p The password to use when connecting to the server.
—database , -D The database to use.
—host , -h Connect to the MySQL server on the given host.
—skip-column-names , -N Do not write column names in results.
—batch , -B Print results using tab as the column separator, with each row on a new line.

MySQL: Run SQL Queries From A Bash Script

The part tells the shell that i am going to enter multi-lines until the EOF tag.

Note that here shouldn’t be any spaces just before the second EOF tag, otherwise it will be considered as a part of the SQL query.

By the way, you can rename the EOF to anything you want, e.g. .

Cool Tip: Do you have a backup? You MUST have it! Backup MySQL databases from the command-line! This is really easy! Read more →

Use the following construction if you need to run multiple SQL queries from a Bash script:

Источник

MySQL

Содержание

MySQL — свободная СУБД для малых и средних приложений. Входит в состав LAMP и XAMPP.

Версии MySQL в Ubuntu

Установка

MySQL есть в репозиториях Ubuntu. Он разбит на несколько пакетов.

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

При установке конфигурационный скрипт запросит пароль для администратора (root) базы данных.

Читайте также:  Сборка windows что поставить

Для того чтобы установить консольный клиент MySQL выполните команду:

Для того чтобы установить модуль для работы с MySQL в PHP выполните команду:

Настройка

Конфигурация сервера MySQL содержится в файле /etc/mysql/my.cnf.

Доступ к серверу из сети

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

Кодировки

По-умолчанию в Ubuntu MySQL устанавливается с кодировкой latin1 . В этом можно убедиться посмотрев вывод запроса:

В связи с этим, даже используя при работе с сервером команду

и используя при создании таблиц

невозможно добиться полной поддержки кодировки utf8:

Кодировка по-умолчанию все равно останется latin1, что неудобно и может привести к ошибкам.

Чтобы сервер сразу загружался с нужной кодировкой, необходимо отредактировать файл /etc/mysql/my.cnf:

В секцию [mysqld] добавьте следующие строки:

Так же желательно установить кодировку для клиента и mysqldump. Для этого в секциях [client] и [mysqldump] необходимо добавить строчку:

Перезагрузите сервер MySQL:

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

Администрирование

Установка root пароля

Восстановление забытого пароля для root’a

Схожая проблема возникает если не задать пароль при установке MySQL, в этом случае mysql использует плагин unix-socket.

Запустите mysqld с параметрами —skip-grant-tables —user=root :

Если команда не сработает, добавьте строку « skip-grant-tables » в секцию « [mysqld] » файла /etc/mysql/mysql.conf.d/mysqld.cnf . Затем выполните sudo service mysql restart . После выполнения операций удалите эту строку.

Подключитесь к MySQL-серверу командой:

Обновите пароль для root’a:

Для MySQL версий mysqldump . Основные ее параметры приведены в таблице:

Параметр Описание Пример
-u Пользователь, от лица которого будет производится дамп баз данных. -uroot
-p

Пароль пользователя. Пароль необязательно указывать, достаточно упомянуть этот параметр для того, чтобы утилита знала что подключение требует пароля. -ppassword
-p -h Хост, на котором расположена база данных. -h127.0.0.1 -A Создать бекап всех баз данных. -A -B Базы данных, которые нужно забэкапить. -B db1 db2 db3 —tables

Таблицы, которые нужно забэкапить. Перекрывает действие ключа -B —tables db1.table1 db1.table2 db2.table3 -d Создать бекап структуры таблиц. Содержимое таблиц скопировано не будет. -d —skip-extended-insert Не использовать многострочные INSERT-записи при создании дампа. —skip-extended-insert -w’where_clause ‘ Создавать дамп только тех строк, которые попадают под условие. -w’Id > 10 AND Id ‘

Отключение и включение автозагрузки сервиса

Начиная с версии Ubuntu 15.04 отключение и включение сервисов возможно одной командой, без редактирования конфигов. В примерах команд ниже слово «SERVICE» следует заменить на «mysql».

Узнать стоит ли сервис в автозагрузке:

Убрать сервис из автозагрузки в Ubuntu-16.04:

Добавить сервис в автозагрузку в Ubuntu-16.04:

MySQL Workbench

MySQL Workbench – инструмент для визуального проектирования баз данных. MySQL Workbench существует в двух вариантах:

Источник

Работа с MySQL базами данных в консоли Linux

Долгое время все основные операции с MySQL-базами я проводил в веб-интерфейсе — посредством обычной хостинг-панели и утилиты PhpMyAdmin. В таком формате все администрирование базы данных ложилось на плечи приложения PhpMyAdmin, которое написано на языке PHP и зависит от разных факторов, например конфигурации веб-сервера, версий программного обеспечения и самого PHP. Когда количество баз данных растет, а окружения постоянно меняются, MyPhpAdmin требует дополнительных ресурсов и настройки, иначе может работать не совсем стабильно, например срабатывают ошибки, лимиты и таймауты. Да и сам веб-интерфейс имеет свои ограничения, поэтому для серьезных задач профессионалы используют только командную строку. Как выяснилось, это намного быстрее, стабильнее и безопаснее. В этой заметке хочу поделиться основными командами для работы с MySQL/MariaDB в консоли VPS-сервера под управлением ОС Linux.

Подключение

mysql -u username -p #подключение к MySQL-серверу от имени пользователя

mysql -u username -p databasename #подключение к базе данных от имени ее пользователя

exit #покинуть базу данных и оборвать соединение с MySQL-сервером

Создание

CREATE DATABASE databasename; #создать базу данных с указанным именем

SHOW CREATE DATABASE databasename; #создание базы данных с выводом параметров

CREATE DATABASE `databasename` CHARACTER SET utf8 COLLATE utf8_general_ci; #создание базы данных с указанными параметрами (кодировка utf8)

CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘userpassword’; #создать пользователя базы данных с именем и паролем

GRANT ALL PRIVILEGES ON databasename.table_of_database TO ‘username’@’localhost’; #предоставить пользователю права доступа к базе данных и ее таблице

GRANT ALL PRIVILEGES ON databasename.* TO ‘username’@’localhost’; #предоставить пользователю права доступа ко всем таблицам указанной базы данных

GRANT ALL PRIVILEGES ON *.* TO ‘username’@’localhost’; #предоставить пользователю права доступа ко всем базам данных и таблицам

GRANT SELECT, INSERT, DELETE ON databasename.* TO ‘username’@’localhost’; #предоставить пользователю ограниченные права доступа с возможностью выбирать базу данных, вставлять строки в таблицы, удалять строки

FLUSH PRIVILEGES; #применить, чтобы установленные права доступа для пользователя вступили в силу

REVOKE ALL PRIVILEGES ON databasename.* TO ‘username’@’localhost’; #отменить все права доступа к указанной базе данных и всем ее таблицам для пользователя

Просмотр

SHOW DATABASES; #показать все базы данных

USE databasename; #перейти в указанную базу данных

SHOW TABLES; #показать все таблицы текущей базы данных

SELECT * FROM tablename; #показать содержание указанной таблицы базы данных

SELECT User FROM mysql.user; #вывести на экран всех пользователей MySQL

SELECT User, Host FROM mysql.user; #вывести на экран всех пользователей MySQL и их хосты

SELECT User, Host, Password FROM mysql.user; #вывести на экран всех пользователей MySQL, их хосты и пароли (количество параметров можно добавлять)

SHOW GRANTS; #просмотр всех привилегий активного пользователя

SHOW GRANTS FOR ‘username’@’localhost’; #показать права доступа (привилегии) для указанного пользователя базы данных

Операции

DROP DATABASE databasename; #удалить базу данных

DROP USER ‘username’@’localhost’; #удалить пользователя базы данных

SET PASSWORD FOR ‘username’@’localhost’ = PASSWORD(‘newpassword’); #установить пароль для пользователя базы данных

RENAME TABLE tablename TO newtablename; #переименовать название ранее выбранной таблицы базы данных (выбор с помощью USE)

DELETE FROM tablename WHERE fieldname = ‘name’; #удалить строку из указанной таблицы

ALTER TABLE tablename DROP INDEX columnname; #удалить столбец из базы данных

TRUNCATE TABLE Tablename; #полное удаление содержимого таблицы базы данных

mysqldump -u username -p databasename > dump_file.sql #создание резервной копии базы данных (дамп)

mysqldump -u root -p -B dbname1 dbname2 > dump.sql #создание дампа выбранных баз данных

mysqldump -u root -p -A > dump.sql #дамп всех баз данных

mysql -u root -p namedatabase #восстановление или импорт дампа базы данных

SHOW GLOBAL STATUS; #вывести на экран статистику MySQL-базы данных

Источник

Читайте также:  Windows update bluetooth driver windows
Оцените статью