- Sergey Danielyan
- Правильная установка и настройка MySQL в Linux
- Установка MySQL
- Настройка сервера
- Установка MySQL Linux — настройка и запуск
- Установка MySQL в трех популярных дистрибутивах
- Работаем с MySQL через командную строку
- Что делать если вижу знаки вопросов вместо текста в MySQL?
- Как сделать бэкап базы mysql через консоль Linux?
- Заключение
- Комментарии 2
- Работа с MySQL базами данных в консоли 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) можно установить таким образом:
Близится финал нашего действия. Осталось две вещи:
- открыть порты для 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 Linux — настройка и запуск
Система управления базами данных MySQL является очень универсальным программным продуктом. На ее основе можно создать движок для сайта, подключить имеющуюся базу данных, брать оттуда данные и вносить изменения.
В ОС Linux система работает в качестве демона — запущенного сервера.
Установка MySQL Linux производиться из консоли, минуя графические интерфейсы, во-первых надо знать подобную программу хорошо, если уж возникла потребность ей пользоваться, во-вторых нужно произвести базовые настройки, которые потом может придется корректировать.
Думается, аргументов хватит.
В различных дистрибутивах установка и запуск MySQL Linux производится немного по-разному, а настройка MySQL сервера одинакова.
Все действия производится от имени суперпользователя.
Установка MySQL в трех популярных дистрибутивах
Сейчас Gentoo нормально тянет нужные пакеты, если в выводе этой команды потребуется добавить что то и MySQL не установится, нужно добавить строки, подсвеченные зеленым шрифтом в файл /etc/portage/package.use, сохранить его и снова произвести установку.
Далее производим начальную настройку, генерируя конфигурацию по умолчанию
Запуск MySQL Linux:
добавляем его в автозагрузку:
Далее запускам демона и создаем первичную конфигурацию добавляем его в автозапуск:
Debian подобные системы, тоже устанавливаем, запускаем сервер, делаем его автоматически стартуемым, только первичная конфигурация создается не отдельной командой, а в процессе всей установки
Установка MySQL Linux закончена, но в процессе выполнения приведенных команд при запуске скрипта настройки конфигурации по умолчанию потребуется ввести несколько параметров. Вот достаточно безопасная настройка MySQL Linux сервера:
первый вопрос пропускаем, нажимаем Enter, на втором устанавливаем пароль для root – администратора сервиса, на третьем удаляем анонимного пользователя (жмем букву Y), на 4-м разрешаем соединения с удаленными серверами, на 5-м — оставляем пока тестовую базу, и в завершении перезагружаем привилегии (опять жмем Y).
Затем смотрим таблицу пользователей командой:
Выйдет табличка в псевдографике, в ней должен остаться один пользователь root.
Если на компьютере настроен файрволл, то откроем на нем tcp-порт 3306 для MySQL на входящие и исходящие соединения.
Запуск MySQL Linux сервера после окончательной настройки
Далее надо сделать заново запуск MySQL Linux сервера, и уже можно работать.
Вводим в консоль MySQL, в консоли появится приглашение
Далее, вводя команды (сервис работает со стандартным языком MySQL-запросов), можно:
- SHOW DATABASES; -посмотреть существующие базы данных;
- CREATE DATABASE test2; — создать новую базу данных с именем test2;
- USE test2; — использовать для текущих изменений базу test2;
Можно составлять таблицы, заполнять их содержимым, настраивать связи, создавать запросы для извлечения данных, т.е. уже полноценно работать с базами данных.
Такая установка MySQL Linux довольно примитивна, обычно ставится сразу три пакета — php, веб-сервер и MySQL, так как они тесно взаимосвязаны. Такой метод позволяет управлять базами данных и веб-приложениями уже не в консоли, а в окне браузера.
Также рекомендуем Вам к прочтению статьи, имеющие к этой процедуре отношение:
Источник
Работаем с MySQL через командную строку
День добрый, друзья! 🙂 Для подключения к mysql наберите
- h — хост базы данных, если коннектимся к локальной базе (по ip 127.0.0.1), этот параметр можно опустить
- u — имя пользователя
- p — пароль, его нужно будет ввести после нажатия enter
Например, если нужно законнектиться к локальной быдухе под root`ом и пароль у него не установлен (пустой пароль — это плохо), достаточно написать
Если на экране появляется приветствие mysql, то всё прошло ok.
Для выхода из командной строки mysql можно написать exit, в linux достаточно нажать ctrl+C. Теперь можно писать любые mysql-запросы. Чтобы запрос выполнился, в конце обязательно нужно поставит точку с запятой «;». При написании длинных запросов удобно делать enter`ом переход на следующую строку. А после полного написание запроса поставить «;» и нажать «enter».
Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:
Результатом будет что то вроде этого:
Выбрать базу данных jeka:
Посмотреть названия всех таблиц в конкретной базе данных (после выполнения use):
Просмотреть структуру таблицы (имена и тип полей):
Достать информацию о юзере с >
Бэкап структуры таблицы, а точнее sql-запрос на её создание
Если в конце запроса поставить не ; а \G, то результат будет показан другим образом — иногда весьма удобно, если таблица имеет много полей:
Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:
Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.
Подробнее о том, как изменять структуру mysql-таблиц (alter table).
Что делать если вижу знаки вопросов вместо текста в MySQL?
Это проблема с кодировкой. Вероятно в my.ini файле mysql-сервера не добавлено:
Нужно добавить в .ini файл либо выполнить в консоли команду «SET NAMES utf8», после чего во время текущей сессии отображаться русский текст в mysql-консоли будет без проблем:
Как сделать бэкап базы mysql через консоль Linux?
Сделать бэкап базы database в файл dump_name.sql
[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_name.sql] – имя файла, дампа на выходе.
Развернуть базу из файла через командную строку
[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_to_restore.sql] – имя файла, из которого поднимаем базу
Сделать дамп структуры одной таблицы mysql (без данных):
Например, задампим таблицу users из базы данных mydatabase:
Развернуть mysql-dump в БД с именем database_name:
Ещё одна интересная штука. Выполнять из консоли, не требуется предварительно подключаться к mysql (mysql>). Вывести список таблиц базы данных, не подключаясь непосредственно к mysql:
Заключение
Может показаться, что писать запросы в командной строке не удобно. Но это заблуждение. На слабых машинах phpmyadmin работает не так шустро как хотелось бы. Тем более не на всех серверах стоят морды с phpmyadmin, adminer и т.д. Linux + mysql в терминале реально повысили мою производительность.
- Как сделать копию структуры таблицы в mysql? Решено!
- Как добавить AI в существующую таблицу MySQL? 2 ответа
- Установить mysql 5.6 на travis Решено!
- mysqldump только структуры таблиц 1 ответ
- mysqldump: Got error: 1044: Access denied for user when using LOCK TABLES 1 ответ
- MySQL — изменение полей, структуры таблицы 0 комментариев
- Запросы инъекции для mysql 0 комментариев
- Доступ к mysql из-вне3 комментария
- Mysql перенос таблиц из одной базы данных в другую 0 комментариев
- Анализ производительности MySQL с использованием performance_schema 0 комментариев
Комментарии 2
Viktor, спасибо. Судя по скринам, штука интересная.
Правда, уж больно много зависимостей она имеет.. Как решу проблему с зависимостями, отпишусь.
eugene-PC:www eugene$ eugene$ sudo rpm -ivh
Источник
Работа с 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-базы данных
Источник