Как запустить MySQL через командную строку « с толкача»
От автора: девушка, у вас машина не заводится? Может «с толкача» попробуем? Я помогу! Не знаете, как это? «С толкача» заводили только сервер СУБД через cmd? Значит, как запустить MySQL через командную строку вы знаете, а автомобиль – даже не догадываетесь. Мадмуазель, вы «странная» блондинка!.
Странности в описании MySQL
При подготовке каждой статьи мне приходится «основательно» шерстить интернет в поисках справочных материалов по той или иной «сайтостроительной» дисциплине. По большей части «наук» в Сети опубликовано множество подробных руководств и учебников, но только не по MySQL.
Конечно, есть достойные образовательные ресурсы, но в основной части по СУБД приводятся лишь примеры написания команд, и даже без указания синтаксиса. В такой ситуации любому «чайнику» понять, например, как подключиться к MySQL через командную строку, почти нереально.
Чтобы найти ответ новичку, придется перешерстить с десяток тематических форумов, где профессиональные разработчики (корча из себя чуть ли не «академиков») снизойдут до того, чтобы хоть что-то нормально пояснить начинающему.
Стоит понимать, что настоящему админу следует знать все способы запуска и работы с сервером БД. Понятно, что программные оболочки – самый удобный метод, но ведь они не всегда могут оказаться «под рукой». Поэтому знание того, как включить MySQL через командную строку, не раз спасет и данные сайта, и вашу репутацию специалиста (если собираетесь заниматься веб-разработкой профессионально).
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Получить курс сейчас!Рассмотрим эту тему более подробно. И не корчите, пожалуйста, мины, если что-то из сказанного в данном материале покажется вам таким же простым, как заводить автомобиль «с толкача» .
Запускаем cmd
Для запуска MySQL из командной строки сначала активируем саму утилиту (cmd), которая входит в стандартный набор Windows. Сделать это можно несколькими способами:
Клавиатурным сочетанием Win+R, а затем в появившемся диалоге «Выполнить» ввести cmd
Через панель «Пуск».
Кроме этого MySQL может поставляться с «родной» оболочкой. Например, если вы устанавливаете сервер БД на локальную машину как самостоятельное «приложение», которое не входит в набор для «джентльменов».
Родная MySQL командная строка запускается также как и обычная cmd. Отличие в работе обеих утилит проявится позже. Об этом мы поговорим в следующем разделе.
Работа с командной строкой
Сначала разберемся со встроенной в операционную систему утилитой. Рассмотрим, как запустить MySQL из командной строки Windows. Для этого нужно:
Путь к папке в файловой системе ПК, куда вы установили сервер БД.
Учетная запись пользователя – логин и пароль.
Если вы работаете с Денвером, то исполняемый файл находится на виртуальном диске, который создается после запуска локального сервера, по этому пути: Z:\usr\local\mysql-5.5\bin
Как я уже сказал, командная строка MySQL в Denwer запускается через cmd OC. То есть, сначала запускаем ее, а затем прописываем путь к исполняемому файлу СУБД. Пароль и логин для доступа можно указывать сначала или потом после активации утилиты MySQL. Как по мне, то удобнее прописывать все сразу: Z:\usr\local\mysql-5.5\bin\mysql.exe -u root
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Получить курс сейчас!Мы зашли на сервер СУБД под правами администратора. У меня пароль для root не установлен, поэтому его значение не указано. После того, как мы запустили MySQL из командной строки, внизу появится справочная информация о версии утилиты, сервера и id подключения.
Теперь давайте проверим правильность проведенной процедуры и «силу» своих прав. Например, выведем список всех таблиц, которые сейчас используются на сервере:
MySQL в командной строке Windows выдал нам лишь таблицы, входящие в состав системной базы. Это потому, что все данные, хранящиеся в ней, используются в работе запущенного экземпляра СУБД. Таким образом мы узнали, что сервер работает и что мы зашли на него с правами администратора, как и планировали.
Схема работы с оболочкой, устанавливаемой вместе с системой управления БД, немного отличается. Чтобы «прочувствовать» все это на себе, давайте активируем MySQL через эту командную строку.
После ее запуска появляется окно, в котором нужно сразу вводить пароль. В остальном весь процесс взаимодействия с утилитой одинаков.
Работа с другими приложениями
Состав стандартного набора средств СУБД не ограничивается одним «экзешником» сервера. Их ассортимент можно просмотреть, заглянув в ту же папку, где «стоит» сервер БД. Для примера запустим утилиту dump MySQL через командную строку.
Сначала переходим на виртуальный диск, затем с помощью команды cd в ту папку, где хранится утилита. Напомню, что она предназначена для создания резервных копий баз.
На следующем шаге перед тем, как зайти в MySQL через командную строку, нам потребуется указать учетную запись и пароль к ней. Пример использования команды mysqldump:
mysqldump -uroot world>C:\Users\домашний\Desktop\dump\copy.sql
mysqldump -uroot world>C:\Users\домашний\Desktop\dump\copy.sql |
После ввода команды нажмите «Enter». Результатом работы MySQL из командной строки должна стать созданная копия базы, расположенная по указанному пути. Как видим, мы нажали на кнопку и получили ожидаемый результат.
Чтобы команда сработала корректно, указанная директория на момент выполнения должна быть создана. Иначе утилита вернет сообщение, что такого пути не существует.
Также стоит отметить, что указанный пользователь MySQL в командной строке должен обладать правами на изменение базы или учетной записью администратора.
Подобным образом запускаются и другие утилиты, входящие в состав стандартного набора. С их помощью вы сможете выполнять все основные операции по администрированию СУБД: управлять ролями, создавать бэкапов, редактировать содержимое хранилищ.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Получить курс сейчас!Хотите изучить MySQL?
Посмотрите курс по базе данных MySQL!
СмотретьКак запустить сервер MySQL на linux?
Довольно простой вопрос. Мне просто нужна база данных SQL на моей версии Kali linux, чтобы я мог практиковать SQL.
> mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Я также убедился, что он уже установлен с помощью apt-get.
Какие шаги мне нужно предпринять, чтобы иметь возможность создать базу данных с таблицами и данными, которые я могу запрашивать?
mysql linux command-lineПоделиться Источник Jmaurier 25 апреля 2016 в 03:18
2 ответа
- Не удалось запустить сервер MySQL
- Как запустить сервер Shiny на linux с помощью удаленного доступа?
Я пытаюсь запустить в производство свое приложение shiny. Я могу запустить свое приложение shiny локально на своей машине Windows, начиная с R. Однако, поскольку нам нужно использовать Linux для развертывания приложения через интернет, мы решили использовать для этого сервер Linux. Мы получаем…
5
Я не знаю насчет Кали, но на 45-м это было бы так
$ sudo service mysql start
Как только эта команда возвращается, служба mysqld
запускается, поэтому вы можете использовать клиент mysql
для подключения к ней.
Конечно, вы также должны убедиться, что у вас установлен пакет
, а не только mysql-client
и mysql-common
, и что вы инициализировали экземпляр базы данных. Полные инструкции по установке можно найти в официальной документации , но короткая версия
- Убедитесь, что установщик создал учетную запись пользователя
mysql
. Это учетная запись, которая будет «own» серверный процесс, как только он начнется. - Перейдите в каталог данных. (Я использовал установщик по умолчанию
/var/lib/mysql
; вы можете изменить это, отредактировавmy.cnf
.) От имени пользователя root выполните демон сервера с параметром
--initialize
. Проверьтеwhereis
, чтобы определить правильный путь, а затем$ sudo /path/to/mysqld --initialize --user=mysql
Эта команда будет вертеться некоторое время, затем отобразит автоматически сгенерированный пароль и выйдет. Как только команда возвращается, экземпляр базы данных инициализируется и создаются системные таблицы. Теперь вы можете запустить экземпляр базы данных в обычном режиме (используя
service start
), затем войти в систему как пользователь базы данныхroot
(что не то же самое, что системный пользователь
), используя пароль сверху, затем изменить пароль, создать нового пользователя базы данных, войти в систему как этот пользователь, создать пользовательскую базу данных и начать создавать таблицы.
Опять же, официальная документация -это место, где нужно искать это; если какие-либо инструкции в официальной документации отличаются от моих инструкций, вы должны игнорировать меня и следовать инструкциям официальной документации.
Поделиться Darwin von Corax
1
Если sudo service mysql start
не работает для вас, пожалуйста, попробуйте запустить mysqld_safe
и не убивайте процесс. Используйте другую вкладку, чтобы проверить состояние службы mysql. Это должно решить вашу проблему mysqld.sock
.
Если это не сработает, то, пожалуйста, отредактируйте свой файл my.cnf и добавьте следующее:
socket=/var/lib/mysql/mysql.sock
А разрешения,
sudo chmod -R 755 /var/lib/mysql/
Надеюсь, это должно сработать.
Поделиться MontyPython 25 апреля 2016 в 03:34
Похожие вопросы:
как войти в mysql и запросить базу данных из linux terminal
Я использую debian linux. У меня есть машина linux, на которой установлен mysql. Я могу войти в свою машину linux, используя root-пользователя, а также другого пользователя. Я могу подключиться к…
как запустить mysql v5.5 на redhat linux
Я новичок как в linux, так и в mysql, но каким-то образом, получив помощь от net, я установил mysql v5.
Как запустить несколько экземпляров mySQL на boot
В настоящее время у меня есть 3 mySQL экземпляров на моем сервере Linux Centos 64 bit. Когда сервер загружается, он запускает только первый экземпляр mySQL. В этот момент я должен mysqld_multi stop,…
Не удалось запустить сервер MySQL
Работает Windows 7 64-bit. Я не смог запустить экземпляр сервера MySQL 5.6. Когда я пытаюсь запустить его из верстака MySQL, я получаю следующее: 2013-11-23 14:05:07-проверка состояния службы…
Как запустить сервер Shiny на linux с помощью удаленного доступа?
Как запустить сервер Mysql в Java программно?
Мое приложение Java должно подключиться к файлу базы данных Mysql, который присутствует на диске. Для этого ему нужно запустить сервер Mysql и использовать его для чтения файла. Проблема в том, что…
Установка MySQL на сервер 64 bit Oracle Linux
Перенаправьте все запросы mysql на другой сервер DB
У меня есть промежуточный сервер на AWS, где мое веб-приложение running.the использует выделенную базу данных server(mysql/linux) от другого поставщика. я хотел бы запустить новый сервер на AWS,…
MacOS не удается запустить сервер MySQL
У меня есть MacOS Сьерра. Я установил сервер MySQL, который работал, однако после перезагрузки Mac Book я не могу запустить сервер MySQL. Я попытался изменить порт с 3306 на 3307 в файле my.cnf ….
Как установить и запустить сервер Mercurial на удаленном хосте Linux с ограниченными правами пользователя?
У меня есть удаленный управляемый хостинговый сервер Linux, и я хотел бы установить и запустить на нем сервер Mercurial для связи с локальными репозиториями (clone, pull, push). Сервер имеет Apache,…
Работа с mysql через консоль
День добрый, друзья! 🙂 Для подключения к mysql наберите
mysql -h 127.0.0.1 -u root -p
- h — хост базы данных, если коннектимся к локальной базе (по ip 127.0.0.1), этот параметр можно опустить
- u — имя пользователя
- p — пароль, его нужно будет ввести после нажатия enter
Например, если нужно законнектиться к локальной быдухе под root`ом и пароль у него не установлен (пустой пароль — это плохо), достаточно написать
mysql -u root
Если на экране появляется приветствие 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)
Достать информацию о юзере с id=22:
mysql> SELECT * FROM users WHERE id=22;
Бэкап структуры таблицы, а точнее sql-запрос на её создание
show create table table_name;
Если в конце запроса поставить не ; а \G, то результат будет показан другим образом — иногда весьма удобно, если таблица имеет много полей:
select * from update__v4_errors where id = 1102003\G
Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:
show processlist;
Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist;
актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.
Подробнее о том, как изменять структуру mysql-таблиц (alter table).
Как сделать бэкап базы 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 в терминале реально повысили мою производительность.
Читайте, также:
⚙ЗАПУСТИТЬ, ОСТАНОВИТЬ ИЛИ ПЕРЕЗАПУСТИТЬ СЛУЖБУ MYSQL НА LINUX, WINDOWS ИЛИ MAC ИЗ КОНСОЛИ
Управление базой данных является одной из наиболее распространенных задач в малых, средних и крупных компаниях, поскольку они позволяют гораздо более детально и непосредственно контролировать данные, которые должны быть записаны, а также структуру, которая должна быть предоставлена сами по себе.
Несмотря на то, что на уровне базы данных существует несколько вариантов, одним из самых популярных и используемых тысячами администраторов является MySQL, который позволяет нам иметь сервер базы данных SQL (язык структурированных запросов) с функциями и выдающиеся функции, такие как безопасность, скорость доступа, масштабируемость, поддержка нескольких пользователей и выполнение различных процессов одновременно.
При настройке сервера MySQL, независимо от используемой операционной системы, естественно, что с течением времени и при добавлении все большего количества таблиц и баз в какой-то момент MySQL может генерировать какой-либо тип ошибки, либо загружая базы данных, обращаясь к на запросы или генерацию ошибок выполнения, если это произойдет с вами, в Solvetic мы дадим вам практический совет, который поможет вам обновить MySQL и остановит или перезапустит службы MySQL и, таким образом, сможет работать в полном и целостном режиме с базы созданы.
Запуск службы MySQL
Давайте посмотрим 3 варианта в зависимости от вашей версии.
/etc/init.d/mysqld запустить службу mysqld запустить службу mysql start
Остановите службу MySQL
У нас есть 3 варианта в зависимости от версии.
/etc/init.d/mysqld остановить службу mysqld остановить службу mysql stop
Перезапустите службу MySQL
/etc/init.d/mysqld перезапустить службу mysqld перезапустить службу mysql перезапустить
Вы научитесь выполнять этот процесс просто на MacOS, Linux и Windows.
Если у вас не установлен MySQL, вы можете перейти по следующей ссылке и скачать соответствующую версию:
MySQL
1. Как запустить, остановить или перезапустить службы MySQL в Windows 10С того момента, как мы установили и настроили наш сервер MySQL в Windows 10, система отвечает за перезапуск и остановку служб MySQL для правильного завершения процессов установки. Теперь, если мы настроили наш сервер некоторое время назад, у нас есть несколько способов выполнить задачи по запуску, перезапуску или остановке служб.
2. Как запустить, остановить или перезапустить сервисы MySQL с платформы MySQL в Windows 10Шаг 1
Первый использует саму платформу MySQL, для этого мы должны сначала войти в MySQL с соответствующими учетными данными:
Шаг 2
Как только мы установим соединение, мы перейдем в меню «Сервер» и там выберем опцию «Запуск / выключение»:
Шаг 3
Мы будем перенаправлены в следующий раздел, где мы можем увидеть текущее состояние сервера MySQL:
Шаг 4
Как мы видим в этом случае, сервер активен (работает), чтобы остановить его, просто нажмите кнопку «Остановить сервер», и мы увидим сводку выполненной задачи и убедитесь, что сервер остановлен:
Шаг 5
Чтобы запустить его, мы нажимаем кнопку «Запустить сервер» и нам необходимо ввести корневой пароль для завершения процесса запуска:
Еще один метод, предлагаемый Windows 10 для выполнения этих действий, заключается непосредственно в службах операционной системы. Когда мы устанавливаем MySQL в Windows 10, автоматически создается специальная служба для MySQL.
Шаг 1
Чтобы убедиться в этом, мы будем использовать следующую комбинацию клавиш и выполнить команду services.msc:
+ R
services.msc
Шаг 2
Нажмите OK и во всплывающем окне мы находим сервис MySQL:
Шаг 3
Мы щелкаем правой кнопкой мыши по упомянутому сервису, и отображаемые параметры будут возможны. Там мы выбираем необходимую опцию для нашего сервера MySQL.
- Остановить службу
- Перезапустить сервис
- Запустите его, если он был остановлен
Другой доступный вариант — выполнить эту задачу из командной строки как администратор, для этого мы должны получить доступ к консоли и выполнить следующее:
C: \ Program Files \ MySQL \ MySQL Server 5.7 \ bin \ mysqld
примечание
Мы также можем выполнить следующий заказ:
C: \ Program Files \ MySQL \ MySQL Server 8. 0 \ bin \ mysqladmin "-u завершение работы root
Таким образом, Windows позволяет нам выполнять эти действия различными способами, но каждый из них практичен.
5. Как запустить, остановить или перезапустить службы MySQL в LinuxВ средах Linux задачи запуска, перезапуска или остановки сервера несколько проще, поскольку они выполняются непосредственно с консоли, поэтому в Linux в данном примере Ubuntu Server 19.04
Шаг 1
Сначала мы можем узнать состояние сервера MySQL, выполнив следующее:
sudo service mysql status
Шаг 2
Теперь, чтобы остановить сервис, мы запустим:
служба MySQL остановка
Шаг 3
Для запуска сервиса мы выполняем:
служба mysql start
Шаг 4
Если целью является перезапуск сервиса, мы должны выполнить следующее:
перезапуск службы mysql
Шаг 5
Кроме того, в Linux мы можем выполнить следующие команды для выполнения этих действий:
/etc/init. d/mysqld start /etc/init.d/mysqld stop /etc/init.d/mysqld перезапустить службу mysqld запустить службу mysqld остановить службу mysqld перезапустить6. Как запустить, остановить или перезапустить сервисы MySQL с платформы MySQL в macOS
Как и в Windows 10, macOS предлагает нам несколько опций для эффективного выполнения этого процесса, мы увидим каждый из них.
При установке MySQL на macOS платформа администрирования MySQL будет установлена по умолчанию, поэтому при запуске подключения мы можем перейти в меню «Сервер» и выбрать опцию «Запуск / выключение». После этого мы повторяем шаги, описанные ранее в Windows 10, чтобы остановить или запустить службу MySQL.
7. Как запустить, остановить или перезапустить сервисы MySQL из Системных настроек в macOSШаг 1
MySQL имеет свою особенность и заключается в том, что он не размещается в приложениях, поэтому вся его конфигурация будет доступна в «Системных настройках»:
Шаг 2
Нажав на MySQL, мы будем перенаправлены в окно конфигурации, и на вкладке «Экземпляры» мы увидим текущую используемую версию MySQL и остановим (если активен) сервис:
Шаг 3
При нажатии на Stop MySQL Server потребуется ввести пароль администратора для авторизации действия:
Шаг 4
Нажмите OK, и мы увидим, что сервер остановлен, и есть возможность запустить его с помощью кнопки «Start MySQL Server»:
Терминал macOS позволяет нам выполнить задачу запуска или остановки службы MySQL простым способом.
Шаг 1
Если мы хотим запустить сервис, просто запустите следующую строку:
sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Шаг 2
Если вы хотите остановить службу, мы выполним следующее:
sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist9. Как запустить, остановить или перезапустить сервисы MySQL, используя DBngin
Шаг 1
Это бесплатная утилита, с помощью которой мы можем управлять различными активными базами данных в системе, вы можете работать параллельно с PostgreSQL, MySQL, Redis и т. Д. Ваша бесплатная загрузка доступна по следующей ссылке:
DBngin
Шаг 2
Его использование простое, после установки мы создаем новый экземпляр с требуемым типом базы данных, в этом случае MySQL, мы назначаем имя, и если эта база данных существует, мы увидим следующее:
Шаг 3
Там мы нажимаем Start, чтобы запустить службу, и после этого мы можем нажать Stop, чтобы остановить службу MySQL:
WHM (Web Host Manager) — это панель управления в средах Linux, благодаря которой мы сможем управлять различными системными параметрами как на аппаратном, так и на программном уровне, работая вместе с CPanel, упрощая использование и управление сотнями параметров.,
Шаг 1
Первый шаг — получить доступ через IP-адрес сервера и ввести наши учетные данные для доступа:
Шаг 2
Получив доступ, мы входим в поисковую систему «перезапустить», и в меню слева мы увидим список всех сервисов, которые мы можем перезапустить, в этом случае мы выбираем «SQL (Server) MySQL»:
Шаг 3
Теперь мы нажимаем Да, и процесс перезапуска службы MySQL будет выполнен:
Опции могут быть различными и полными, чтобы запускать, останавливать или перезапускать нашу службу MySQL в Windows, MacOS или Linux.
Установка MySQL 5.5.23 — PHP-MyAdmin.RU
Статья описывает процесс установки и первоначальной настройки на локальном компьютере, работающим под операционной системой Windows XP, прекрасно зарекомендовавшей себя связки программ, используемых при создании, как крупных, так и средних веб-проектов: Apache, MySQL, PHP и phpMyAdmin.
Авторы: Виктор Волков, Иван Шумилов
Содержание:
Сайт разработчика: http://www.mysql.com/
Документация: http://dev.mysql.com/doc/
Дистрибутив: http://www.mysql.com/downloads/mysql/
Прямая ссылка: mysql-5.5.23-win32.msi
Скачайте самораспаковывающийся архив «Windows (x86, 32-bit), MSI Installer» и запустите его.
Установка MySQL в картинках
Далее будут показаны те диалоговые окна, в которых необходимо делать какой-либо выбор.
Нажмите в данном окне выборочную установку компонентов «Custom».
Здесь вы можете выбрать дополнительные компоненты и сменить установочную директорию программы.
Теперь приступим к настройке MySQL сервера.
Выбираем детализированную настройку — «Detailed Configuration».
Отмечаем пункт «Developer Machine». Мы ведь разработчики – правда? 🙂
Выбрав пункт «Multifunctional Database», вы сможете работать как с таблицами типа InnoDB (с возможностью использования транзакций), так и с высокоскоростной MyISAM (как правило для веб-разработок используется именно этот тип таблиц).
Выбор диска и директории для хранения таблиц типа InnoDB.
В данном диалоговом окне выбирается максимально возможное количество подключений к серверу MySQL. При выборе «Decision Support (DSS)/OLAP», максимальное количество подключений будет ограничено двадцатью, чего более чем достаточно при установке сервера на домашнем компьютере и отсутствии большого количества одновременных подключений.
Отметив «Enable TCP/IP Networking» мы включаем поддержку TCP/IP соединений и выбираем порт, через который они будут осуществляться. Стандартным для сервера MySQL является порт 3306. Отметив «Enable Strict Mode», мы задаем режим строгого соответствия стандарту SQL (данную опцию рекомендуется оставлять включенной).
Обратите внимание на выставление настроек данного окна. Отметив «Manual Selected Default Character Set / Collation» и выбрав из ниспадающего меню «cp1251» определяем, что изначально для таблиц будет использоваться кодировка Cyrillic Windows (cp1251), что означает корректную работу с русским языком в данной кодировке.
Если отметить «Install As Windows Service», сервер будет запускаться в виде сервиса, что является рекомендуемым способом запуска. Ниже, в ниспадающем списке, задается имя сервиса. Далее, уберите галочку рядом с «Launch the MySQL Server automatically» — мы будем запускать сервер вручную. Также поставьте галочку рядом с «Include Bin Directory in Windows PATH» — это позволит установить видимость директории «bin», для командной строки.
Установите пароль пользователя «root». Советую сделать это. Поставьте хотя бы какой-нибудь простенький пароль, только не оставляйте поле пустым, это убережёт вас от возможных неприятностей в дальнейшем.
В данном окне обратите внимание на строку «Write configuration file», которая указывает на месторасположение конфигурационного файла MySQL — «my.ini», далее, его необходимо будет немного отредактировать.
Откройте для редактирования файл «my.ini».
- В раздел [client], после строки:
port=3306
Добавьте строку определяющую каталог содержащий файлы описания кодировок:
character-sets-dir=»C:/Program Files/MySQL/MySQL Server 5. 5/share/charsets» - В раздел [mysqld], после строки:
port=3306
Добавьте следующие две строки, первая из которых вам уже известна, вторая – устанавливает кодировку в которой данные передаются MySQL:
character-sets-dir=»C:/Program Files/MySQL/MySQL Server 5.5/share/charsets»
init-connect=»SET NAMES cp1251″ - Далее, найдите строку:
default-storage-engine=INNODB
Замените изначально устанавливаемый тип таблиц на MYISAM:
default-storage-engine=MYISAM
Сохраните изменения и закройте файл «my.ini».
Установка и настройка сервера MySQL – завершена.
Как запустить MySQL сервер на конкретных IP — IT Blog
Подходящим решением которое я нашел для запуска MySQL сервера на конкретных IP адресах, это запустить его на всех и потом отфильтровать подключаемых клиентов через iptables.
Для теста я использовал Ubuntu Server 16.04.5 LTS, который имел более 200 внешних белых IP и был высоконагруженным.
MySQL сервер был установлен так:
sudo apt-get install mysql-server mysql-client mysql -V mysql Ver 14. 14 Distrib 5.7.23, for Linux (x86_64) using EditLine wrapper
К MySQL серверу нужен был доступ от localhost и нескольких адресов в интернете.
Поэтому я запустил MySQL сервер на всех IP, закомментировав «bind-address» в конфигурации:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf #bind-address = 127.0.0.1 #skip-networking sudo service mysql restart
Создал пользователей для хостов с которых будут выполнятся подключения, более детально смотрите в моей статье — Как создать пользователя MySQL и настроить права доступа
Потом через iptables разрешил подключения только с нужных IP:
/sbin/iptables -A INPUT -s 127.0.0.1 -p tcp --destination-port 3306 -j ACCEPT /sbin/iptables -A INPUT -s 192.168.1.5 -p tcp --destination-port 3306 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP
Правило DROP должно быть только последним, если нужно еще добавить IP в iptables, то удалим DROP и в конце снова добавим:
/sbin/iptables -D INPUT -p tcp --dport 3306 -j DROP /sbin/iptables -A INPUT -s 192. 168.5.33 -p tcp --destination-port 3306 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP
Кстати, на тесте при попытке указать несколько адресов в bind-address, MySQL запускался только на последнем:
bind-address = 192.168.1.11 bind-address = 127.0.0.1
Как вариант, у меня возникает еще такая идея, запустить MySQL только на 127.0.0.1 (bind-address = 127.0.0.1), через iptables переадресовать на любой внешний IP, ну и потом правилами выше можно еще ограничить доступ):
sudo sysctl -w net.ipv4.conf.all.route_localnet=1 sudo iptables -t nat -A PREROUTING -i enp0s3 -p tcp -d 192.168.1.11 --dport 3306 -j DNAT --to-destination 127.0.0.1:3306
Смотрите также мои статьи:
IPTables правила для MySQL
Установка и настройка MySQL сервера на Ubuntu
linux — Не могу запустить mysql сервер
Не могу запустить mysql командой
mysql -u root -p
После ввода пароля выдает ошибку:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld. sock' (13)
при запуске
mysqladmin -u root -p status
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (13)'
Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!
sudo service mysql start:
Error:
Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xe" for details.
systemctl status mysql.service
Error:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2020-09-25 17:43:51 EEST; 1min 21s ago
Process: 7786 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=203/EXEC)
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: mysql. service: Failed with result 'exit-code'.
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: Failed to start MySQL Community Server.
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: mysql.service: Scheduled restart job, restart counter is>
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: Stopped MySQL Community Server.
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: mysql.service: Start request repeated too quickly.
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: mysql.service: Failed with result 'exit-code'.
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: Failed to start MySQL Community Server.
journalctl -xe
Error:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2020-09-25 17:43:51 EEST; 2min 24s ago
Process: 7786 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=203/EXEC)
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: mysql. service: Failed with result 'exit-code'.
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: Failed to start MySQL Community Server.
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: mysql.service: Scheduled restart job, restart counter is>
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: Stopped MySQL Community Server.
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: mysql.service: Start request repeated too quickly.
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: mysql.service: Failed with result 'exit-code'.
сен 25 17:43:51 hulimulushka-HP-ProBook-450-G6 systemd[1]: Failed to start MySQL Community Server.
(remind) hulimulushka@hulimulushka-HP-ProBook-450-G6:~/coding/python/remind$ sudo service mysql start
Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xe" for details.
(remind) hulimulushka@hulimulushka-HP-ProBook-450-G6:~/coding/python/remind$ journalctl -xe
-- Support: http://www. ubuntu.com/support
--
-- Произошел сбой юнита mysql.service.
--
-- Результат: failed.
сен 25 17:46:24 hulimulushka-HP-ProBook-450-G6 systemd[1]: mysql.service: Scheduled restart job, restart counter is>
-- Subject: Назначен автоматический перезапуск юнита
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Назначен автоматический перезапуск юнита mysql.service, так как для него был задан
-- параметр Restart=.
сен 25 17:46:24 hulimulushka-HP-ProBook-450-G6 systemd[1]: Stopped MySQL Community Server.
-- Subject: Завершена остановка юнита mysql.service.
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Процесс остановки юнита mysql.service был завершен.
сен 25 17:46:24 hulimulushka-HP-ProBook-450-G6 systemd[1]: mysql.service: Start request repeated too quickly.
сен 25 17:46:24 hulimulushka-HP-ProBook-450-G6 systemd[1]: mysql.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit mysql. service has entered the 'failed' state with result 'exit-code'.
сен 25 17:46:24 hulimulushka-HP-ProBook-450-G6 systemd[1]: Failed to start MySQL Community Server.
-- Subject: Ошибка юнита mysql.service
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Произошел сбой юнита mysql.service.
--
-- Результат: failed.
4.3 mysql.server — сценарий запуска сервера MySQL
4.3
mysql.server — сценарий запуска сервера MySQLДистрибутивы MySQL для Unix и Unix-подобных систем включают сценарий mysql.server , запускающий Сервер MySQL с использованием mysqld_safe . Может быть используется в таких системах, как Linux и Solaris, которые используют System Каталоги запуска в стиле V для запуска и остановки системных служб. это также используется элементом запуска macOS для MySQL.
mysql.server — используемое имя скрипта в дереве исходного кода MySQL. Установленное имя может быть разные (например, mysqld или MySQL ). В следующем обсуждении настройте имя mysql.server в соответствии с вашим система.
Примечание
Для некоторых платформ Linux установка MySQL из RPM или Пакеты Debian включают поддержку systemd для управления MySQL запуск и завершение работы сервера.На этих платформах mysql.server и mysqld_safe не установлены, потому что они не нужны. Для получения дополнительной информации см. Управление сервером MySQL с помощью systemd.
Чтобы запустить или остановить сервер вручную с помощью mysql.server , вызовите его из
командная строка с начала
или остановить
аргументы:
mysql.server start
mysql.остановка сервера
mysql. server изменяет местоположение на MySQL
каталог установки, затем вызывает mysqld_safe . Чтобы запустить сервер как некоторые
конкретного пользователя, добавьте соответствующий параметр пользователя
в группу [mysqld]
глобального /etc/my.cnf
файл параметров, как показано далее в
эта секция. (Возможно, вам придется отредактировать mysql.server , если вы установили двоичный файл
распространение MySQL в нестандартном месте.Измените его на
измените местоположение в соответствующий каталог перед запуском mysqld_safe . Если вы это сделаете, ваш измененный
версия mysql.server может быть перезаписана, если
вы обновляете MySQL в будущем; сделайте копию вашего отредактированного
версию, которую можно переустановить.)
mysql.server stop останавливает сервер, отправляя сигнал к нему. Вы также можете остановить сервер вручную, выполнение mysqladmin shutdown .
Чтобы запускать и останавливать MySQL автоматически на вашем сервере, вы должны
добавьте команды запуска и остановки в соответствующие места в вашем / etc / rc *
файлы:
Если вы используете пакет RPM сервера Linux (
MySQL-сервер -
), или установка собственного пакета Linux, mysql.server скрипт может быть установлен в файлВЕРСИЯ
.rpm/ etc / init.d
справочник с именемmysqld
илиmysql
. См. Установка MySQL в Linux с использованием пакетов RPM от Oracle, чтобы узнать больше. информация о пакетах Linux RPM.Если вы устанавливаете MySQL из исходного дистрибутива или используете двоичный формат распространения, который не устанавливается mysql. server автоматически, вы можете установить скрипт вручную. Его можно найти в
support-files
каталог в MySQL каталог установки или в дереве исходного кода MySQL.Скопируйте скрипт в каталог/etc/init.d
с именем mysql и сделайте его исполняемый файл:cp mysql.server /etc/init.d/mysql chmod + x /etc/init.d/mysql
После установки скрипта команды, необходимые для активации его запуск при запуске системы зависит от вашей операционной системы. В Linux вы можете использовать chkconfig :
chkconfig - добавить mysql
В некоторых системах Linux следующая команда также кажется необходимо полностью включить mysql сценарий:
chkconfig - уровень 345 MySQL на
В FreeBSD сценарии запуска обычно должны быть
/ usr / местные / и т. Д. / Rc.d /
. Установитеmysql.server
скрипт как/usr/local/etc/rc.d/mysql.server.sh
на включить автоматический запуск. МодельRC (8)
на странице руководства указано, что сценарии в этом каталоге выполняется, только если их базовое имя совпадает с* .sh
шаблон имени файла оболочки. Любой другой файлы или каталоги, присутствующие в каталоге, являются молча игнорируется.В качестве альтернативы предыдущей настройке некоторые рабочие системы также используют
/ etc / rc.местный
или/etc/init.d/boot.local
для запуска дополнительные услуги при запуске. Чтобы запустить MySQL с помощью этого метод, добавьте команду, подобную следующей, к соответствующий файл запуска:/ bin / sh -c 'cd / usr / local / mysql; . /bin/mysqld_safe --user = mysql & '
Для других систем обратитесь к вашей операционной системе документацию, чтобы узнать, как установить сценарии запуска.
mysql.server считывает параметры из [mysql.server]
и [mysqld]
разделы файлов опций. За
обратная совместимость, также читается [mysql_server]
разделы, но должны быть текущими
вы должны переименовать такие разделы в [сервер mysql]
.
Вы можете добавить параметры для mysql.server в
файл global /etc/my.cnf
.Типичный
Файл my.cnf
может выглядеть так:
[mysqld]
datadir = / USR / локальные / MySQL / var
сокет = / var / tmp / mysql.sock
порт = 3306
пользователь = MySQL
[mysql.server]
basedir = / usr / local / mysql
Сценарий mysql. server поддерживает параметры
показано в следующей таблице. Если указано, они необходимо поместить в файл опций, а не в
командная строка. mysql.server поддерживает только начать
и остановить
как
аргументы командной строки.
Таблица 4.2 Параметры файла параметров mysql.server
Название опции | Описание | Тип |
---|---|---|
на основе | Путь к каталогу установки MySQL | Имя каталога |
datadir | Путь к каталогу данных MySQL | Имя каталога |
pid-файл | Файл, в который сервер должен записывать свой идентификатор процесса | Имя файла |
тайм-аут запуска службы | Как долго ждать запуска сервера | Целое число |
на основеir =
dir_name
Путь к каталогу установки MySQL.
datadir =
dir_name
Путь к каталогу данных MySQL.
pid-file =
имя_файла
Путь к файлу, в который сервер должен писать его идентификатор процесса. Сервер создает файл в данных каталог, если не указан абсолютный путь, чтобы указать другой каталог.
Если эта опция не указана, mysql.server использует значение по умолчанию
имя_хоста
.pid[mysqld_safe]
группа файлов опций. Потому что mysql.server читает[mysqld]
группа файлов опций, но не[mysqld_safe]
group, вы можете убедиться, что mysqld_safe получает то же значение, когда вызывается из mysql. сервер как при вызове вручную поставив тот жеpid-файл
настройка в[mysqld_safe]
и[mysqld]
группы.тайм-аут запуска службы =
секунды
Как долго в секундах ждать подтверждения сервера запускать. Если сервер не запускается в течение этого времени, MySQL.сервер завершает работу с ошибкой. В значение по умолчанию — 900. Значение 0 означает, что вообще не ждать. для запуска. Отрицательные значения означают ждать вечно (нет тайм-аут).
Первые шаги в MySQL — запуск и подключение к MySQL
Содержание Предыдущий Следующийпоследнее изменение 10 июля 2020 г.
В этой главе мы сделаем наши первые шаги с MySQL. Мы будем запустите сервер, подключитесь к серверу с помощью клиентского инструмента, создайте новый user и выполните наши первые операторы SQL.
Запуск / остановка сервера MySQL
Сервер MySQL — это демон, работающий в фоновом режиме. Как вы начинаете MySQL зависит от вашей системы и типа установки, которую вы сделали.
$ sudo /etc/init.d/mysqld start $ sudo /etc/init.d/mysqld stop
В традиционных системах на основе инициализации мы бы использовали приведенные выше команды для запуска и остановите сервер MySQL.
$ sudo сервис mysql start $ sudo сервис mysql stop
Debian перешел на Upstart, который представляет собой демон на основе событий, используемый для запуска задачи и услуги и курирование их.В системах, которые используют Upstart, мы начинаем и остановите сервер MySQL, используя указанные выше команды.
$ sudo /usr/local/mysql/support-files/mysql.server start $ sudo /usr/local/mysql/support-files/mysql.server stop
Если мы установили MySQL из исходников, мы можем использовать mysql.server
команда для запуска и остановки MySQL.
Проверка статуса MySQL
Мы собираемся показать, как проверить состояние сервера MySQL.
$ service mysql status ● mysql.сервис - Сервер сообщества MySQL Загружено: загружено (/lib/systemd/system/mysql.service; включено; предустановка поставщика: включено) Активный: активен (работает) с Pi 2017-01-27 16:32:12 CET; 2ч 7мин назад Основной PID: 9439 (mysqld) CGroup: /system.slice/mysql.service └─9439 / usr / sbin / mysqld 27 янв 16:32:10 t400 systemd [1]: Запуск Сервера сообщества MySQL ... 27 янв 16:32:12 t400 systemd [1]: запущен сервер сообщества MySQL. 27 янв 16:32:26 t400 systemd [1]: запущен сервер сообщества MySQL.
Проверяем статус командой service mysql status
.
$ mysqladmin -u root -p пинг Введите пароль: mysqld жив
Мы используем инструмент mysqladmin
, чтобы проверить,
бежит. Параметр -u
указывает пользователя, который
пингует сервер. Параметр -p
— это пароль для
Пользователь. Если пароль опущен, mysqladmin
запрашивает
для одного. Символы, которые вы вводите после приглашения, не отображаются.
Это более безопасное решение для работы с mysqladmin
.Таким образом, никто за вашей спиной не сможет увидеть набранный вами пароль
и он не сохраняется в истории оболочки.
Инструмент mysqladmin
mysqladmin
— это клиент для выполнения административных операций.
$ mysqladmin -uroot -p выключение
Мы используем инструмент mysqladmin
для выключения сервера MySQL.
$ mysqladmin -u root -p версия Введите пароль: ... Версия сервера 5.7.17-0ubuntu0.16.04.1 Версия протокола 10 Подключение Localhost через сокет UNIX Сокет UNIX /var/run/mysqld/mysqld.sock Время работы: 45 сек. ...
Мы используем mysqladmin
для проверки версии сервера MySQL.
$ mysqladmin -u root -p создать testdb
Можно создать базу данных с mysqladmin
.
$ mysqladmin -u root -p drop testdb
Эта команда удаляет базу данных.
$ mysqladmin -u root -p пароль Введите пароль: Новый пароль: Подтвердите новый пароль:
Мы можем использовать mysqladmin
для изменения пароля пользователя.Вводим старый пароль и два раза новый.
Инструмент mysql
mysql
— это инструмент командной строки MySQL. Это простая оболочка.
Он поддерживает интерактивное и неинтерактивное использование.
$ mysql -u корень -p Введите пароль: Добро пожаловать в монитор MySQL. Команды заканчиваются на; или \ g. Ваш идентификатор подключения MySQL - 10 Версия сервера: 5.7.17-0ubuntu0.16.04.1 (Ubuntu) Авторское право (c) 2000, 2016, Oracle и / или ее дочерние компании. Все права защищены. Oracle является зарегистрированным товарным знаком Oracle Corporation и / или ее филиалы.Другие названия могут быть товарными знаками соответствующих владельцы. Введите "помощь"; или '\ h' для помощи. Введите '\ c', чтобы очистить текущий оператор ввода. mysql>
Мы подключаемся к серверу с помощью инструмента mysql
. Обратите внимание, что у нас есть
пропустил пароль после опции -p
. Набираем пароль
после запроса «Введите пароль» .
Инструмент командной строки mysql
имеет mysql>
в качестве приглашения. В этом приглашении
мы можем выполнять как встроенные команды mysql,
, так и операторы SQL.Нам необходимо ознакомиться с инструментом mysql
. Ctrl + L очищает экран, Ctrl + D или quit
команда quit
файл mysql
. Нам нужно различать mysql
команды и операторы SQL. Операторы SQL заканчиваются точкой с запятой.
mysql> справка Для получения информации о продуктах и услугах MySQL посетите: http://www.mysql.com/ Для получения информации для разработчиков, в том числе Справочного руководства MySQL, посетите: http: // dev. mysql.com/ Чтобы купить поддержку MySQL Enterprise, обучение или другие продукты, посетите: https://shop.mysql.com/ Список всех команд MySQL: Обратите внимание, что все текстовые команды должны быть первыми в строке и заканчиваться знаком ';' ? (\?) Синоним слова "помощь". clear (\ c) Очистить текущий оператор ввода. connect (\ r) Переподключиться к серверу. Необязательные аргументы - это db и host. delimiter (\ d) Установить разделитель операторов. edit (\ e) Редактировать команду с помощью $ EDITOR. ego (\ G) Отправить команду на сервер mysql, отобразить результат вертикально.exit (\ q) Выйти из mysql. То же, что и бросить. go (\ g) Отправить команду на сервер mysql. help (\ h) Показать эту справку. nopager (\ n) Отключить пейджер, печатать в стандартный вывод. notee (\ t) Не пишите в Outfile. пейджер (\ P) Установить ПЕЙДЖЕР [to_pager]. Распечатайте результаты запроса через PAGER. print (\ p) Распечатать текущую команду. приглашение (\ R) Измените приглашение mysql. quit (\ q) Выйти из mysql. ...
Введите help, чтобы получить полный список команд mysql
.
mysql> системный pwd / home / janbodnar
Системная команда
может выполнять команду оболочки.Мы запустили
команда pwd
, чтобы узнать наш текущий рабочий каталог.
mysql> выйти до свидания
Команда quit
завершает работу оболочки mysql
.
$ mysql --version mysql Ver 14.14 Distrib 5.7.17, для Linux (x86_64) с использованием оболочки EditLine
mysql
может использоваться также не интерактивно. Вот и получаем версию
инструмента.
Создание базы данных
Теперь мы собираемся создать нашу базу данных.
mysql> ПОКАЗАТЬ БАЗЫ ДАННЫХ; + -------------------- + | База данных | + -------------------- + | information_schema | | mysql | | performance_schema | | sys | + -------------------- + 4 ряда в наборе (0,00 сек)
Оператор SHOW DATABASES
показывает все доступные базы данных на нашем
система. Обратите внимание, что операторы SQL заканчиваются точкой с запятой. Есть четыре
базы данных присутствуют. information_schema
, mysql
,
и performance_schema
— системные базы данных MySQL. sys
— это набор объектов схемы, используемых для настройки и диагностики.
сценарии использования. Пользовательских баз данных пока нет.
mysql> СОЗДАТЬ БАЗУ ДАННЫХ mydb; Запрос выполнен, затронута 1 строка (0,00 сек)
Этот оператор создает новую базу данных. В этом руководстве мы будем использовать mydb
база данных. Чтобы создать новую базу данных, нам нужно иметь определенные
привилегии. Помните, что мы подключились к серверу с пользователем root, который
является суперпользователем и имеет все привилегии.
mysql> ПОКАЗАТЬ БАЗЫ ДАННЫХ; + -------------------- + | База данных | + -------------------- + | information_schema | | mydb | | mysql | | performance_schema | | sys | + -------------------- + 5 рядов в наборе (0,00 сек)
Показаны все базы данных, среди них — база данных mydb
.
mysql> ИСПОЛЬЗУЙТЕ mydb; База данных изменена
Чтобы работать с базой данных, мы должны сначала выбрать ее.
Выбираем конкретную базу данных с помощью команды USE
.
mysql> ПОКАЗАТЬ ТАБЛИЦЫ; Пустой набор (0,00 сек)
Оператор SHOW TABLES
показывает все доступные таблицы в
база данных. Поскольку это новая база данных, таблицы не найдены.
mysql> исходный cars.sql База данных изменена Запрос в порядке, затронуты 0 строк (0,20 сек) Запрос в порядке, затронута 1 строка (0,08 сек) ...
В первой главе мы предоставили несколько сценариев SQL для создания
несколько таблиц. Мы используем команду source для выполнения автомобилей.sql
скрипт, который создает для нас таблицу Cars
.
mysql> ПОКАЗАТЬ ТАБЛИЦЫ; + ---------------- + | Tables_in_mydb | + ---------------- + | Автомобили | + ---------------- + 1 ряд в наборе (0,00 сек)
Теперь оператор SHOW TABLES
отображает одну доступную таблицу.
mysql> ВЫБРАТЬ * ИЗ Машины; + ---- + ------------ + -------- + | Id | Имя | Стоимость | + ---- + ------------ + -------- + | 1 | Audi | 52642 | | 2 | Мерседес | 57127 | | 3 | Skoda | 9000 | | 4 | Volvo | 29000 | | 5 | Bentley | 350000 | | 6 | Citroen | 21000 | | 7 | Хаммер | 41400 | | 8 | Volkswagen | 21600 | + ---- + ------------ + -------- + 8 рядов в наборе (0,00 сек)
И это данные в таблице.
Создание нового пользователя
Как и в случае с корневой учетной записью Unix, рекомендуется не использовать MySQL root-аккаунт суперпользователя для наших повседневных задач. Мы должны использовать корень учет только тогда, когда это необходимо. Создаем новую учетную запись что мы будем использовать. У этого пользователя будут ограниченные права. При использовании пользователя root мы могли случайно нанести большой вред наши данные.
mysql> СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ user12 @ localhost ИДЕНТИФИЦИРОВАНО '34klq *';
Приведенная выше команда создает нового пользователя с именем user12
. У аккаунта пароль 34klq *
. Пользователь создан,
но у него нет привилегий.
mysql> ПРЕДОСТАВЛЯТЬ ВСЕ НА mydb. * to user12 @ localhost;
Этот оператор предоставляет все привилегии пользователю12
для всей базы данных.
объекты в базе данных mydb
. Этих привилегий будет достаточно
для примеров в этом руководстве.
mysql> выйти до свидания $ mysql -u user12 -p
Теперь мы можем подключиться к MySQL с новой учетной записью пользователя.
$ mysql -u user12 -p mydb -e "ВЫБРАТЬ * ИЗ МАШИНЫ" Введите пароль: + ---- + ------------ + -------- + | Id | Имя | Стоимость | + ---- + ------------ + -------- + | 1 | Audi | 52642 | | 2 | Мерседес | 57127 | | 3 | Skoda | 9000 | | 4 | Volvo | 29000 | | 5 | Bentley | 350000 | | 6 | Citroen | 21000 | | 7 | Хаммер | 41400 | | 8 | Volkswagen | 21600 | + ---- + ------------ + -------- +
Мы подключаемся к базе данных mydb
без взаимодействия и
выполнить инструкцию SQL. Оператор для выполнения указывается после
вариант -e
.
В этой главе мы сделали наши первые шаги с системой баз данных MySQL.
Содержание Предыдущий СледующийКак установить MySQL в Ubuntu 18.04
Предыдущая версия этого руководства была написана Хейзел Вирдо
Введение
MySQL — это система управления базами данных с открытым исходным кодом, обычно устанавливаемая как часть популярного стека LAMP (Linux, Apache, MySQL, PHP / Python / Perl).Он использует реляционную базу данных и SQL (язык структурированных запросов) для управления своими данными.
Краткая версия установки проста: обновите индекс вашего пакета, установите пакет mysql-server
, а затем запустите включенный сценарий безопасности.
- sudo apt update
- sudo apt установить mysql-server
- sudo mysql_secure_installation
Из этого туториала Вы узнаете, как установить MySQL версии 5. 7 на сервере Ubuntu 18.04. Однако, если вы хотите обновить существующую установку MySQL до версии 5.7, вы можете вместо этого прочитать это руководство по обновлению MySQL 5.7.
Предварительные требования
Чтобы следовать этому руководству, вам потребуется:
Шаг 1. Установка MySQL
В Ubuntu 18.04 только последняя версия MySQL включена в репозиторий пакетов APT по умолчанию. На момент написания это MySQL 5.7
Чтобы установить его, обновите индекс пакета на своем сервере с apt
:
Затем установите пакет по умолчанию:
- sudo apt установить mysql-server
Это установит MySQL, но не будет предлагать вам установить пароль или внести какие-либо другие изменения в конфигурацию.Поскольку это делает вашу установку MySQL небезопасной, мы рассмотрим это далее.
Шаг 2. Настройка MySQL
Для новых установок вам нужно запустить включенный сценарий безопасности. Это изменяет некоторые из менее безопасных параметров по умолчанию для таких вещей, как удаленный вход в систему root и выборочные пользователи. В более старых версиях MySQL вам также нужно было инициализировать каталог данных вручную, но теперь это делается автоматически.
Запустите сценарий безопасности:
- sudo mysql_secure_installation
Это проведет вас через ряд запросов, в которых вы можете внести некоторые изменения в параметры безопасности вашей установки MySQL.В первом запросе вас спросят, хотите ли вы настроить подключаемый модуль проверки пароля, который можно использовать для проверки надежности вашего пароля MySQL. Независимо от вашего выбора, следующее приглашение будет заключаться в установке пароля для пользователя MySQL root . Введите и подтвердите безопасный пароль по вашему выбору.
Оттуда вы можете нажать Y
, а затем ENTER
, чтобы принять значения по умолчанию для всех последующих вопросов. Это приведет к удалению некоторых анонимных пользователей и тестовой базы данных, отключению удаленного входа в систему с правами root и загрузке этих новых правил, чтобы MySQL немедленно учитывал сделанные вами изменения.
Для инициализации каталога данных MySQL вы должны использовать mysql_install_db
для версий до 5.7.6 и mysqld --initialize
для 5.7.6 и новее. Однако, если вы установили MySQL из дистрибутива Debian, как описано в шаге 1, каталог данных был инициализирован автоматически; вам не нужно ничего делать. Если вы все равно попытаетесь запустить команду, вы увидите следующую ошибку:
Вывод
mysqld: не удается создать каталог '/ var / lib / mysql /' (код ошибки: 17 - файл существует)
.. .
2018-04-23T13: 48: 00.572066Z 0 [ERROR] Отмена
Обратите внимание, что даже если вы установили пароль для пользователя root MySQL, этот пользователь не настроен для аутентификации с помощью пароля при подключении к оболочке MySQL. При желании вы можете изменить этот параметр, выполнив шаг 3.
Шаг 3 — (Необязательно) Настройка аутентификации и привилегий пользователя
В системах Ubuntu, работающих под управлением MySQL 5.7 (и более поздних версий), пользователь root MySQL настроен на аутентификацию с использованием подключаемого модуля auth_socket
по умолчанию, а не с помощью пароля.Это позволяет повысить безопасность и удобство использования во многих случаях, но также может усложнить ситуацию, когда вам нужно разрешить внешней программе (например, phpMyAdmin) доступ к пользователю.
Чтобы использовать пароль для подключения к MySQL как root , вам необходимо переключить его метод аутентификации с auth_socket
на mysql_native_password
. Для этого откройте в терминале командную строку MySQL:
Затем проверьте, какой метод аутентификации использует каждая из ваших учетных записей MySQL, с помощью следующей команды:
- ВЫБЕРИТЕ пользователя, строку_ аутентификации, плагин, хост ИЗ mysql. Пользователь;
Выход
+ ------------------ + --------------------- ---------------------- + ----------------------- + --- -------- +
| пользователь | authentication_string | плагин | хост |
+ ------------------ + ------------------------------ ------------- + ----------------------- + ----------- +
| корень | | auth_socket | localhost |
| mysql.session | * ЭТОТ НЕЗАВИСИМЫЙ ПАРОЛЬ, ЧТО МОЖЕТ БЫТЬ ЗДЕСЬ | mysql_native_password | localhost |
| mysql.sys | * ЭТОТ НЕЗАВИСИМЫЙ ПАРОЛЬ, ЧТО МОЖЕТ БЫТЬ ЗДЕСЬ | mysql_native_password | localhost |
| debian-sys-maint | * CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+ ------------------ + ------------------------------ ------------- + ----------------------- + ----------- +
4 ряда в наборе (0,00 сек)
В этом примере вы можете видеть, что пользователь root действительно аутентифицируется с помощью подключаемого модуля auth_socket
. Чтобы настроить учетную запись root для аутентификации с паролем, выполните следующую команду ALTER USER
.Обязательно измените пароль
на надежный пароль по вашему выбору и обратите внимание, что эта команда изменит пароль root , который вы установили на шаге 2:
- ALTER USER 'root' @ 'localhost' ИДЕНТИФИКАЦИЯ mysql_native_password ПО 'паролю';
Затем запустите FLUSH PRIVILEGES
, который сообщает серверу перезагрузить таблицы предоставления и применить ваши новые изменения:
Еще раз проверьте методы аутентификации, используемые каждым из ваших пользователей, чтобы убедиться, что root больше не аутентифицируется с помощью плагина auth_socket
:
- ВЫБЕРИТЕ пользователя, строку_ аутентификации, плагин, хост ИЗ mysql.Пользователь;
Выход
+ ------------------ + --------------------- ---------------------- + ----------------------- + --- -------- +
| пользователь | authentication_string | плагин | хост |
+ ------------------ + ------------------------------ ------------- + ----------------------- + ----------- +
| корень | * 3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql. session | * ЭТОТ НЕЗАВИСИМЫЙ ПАРОЛЬ, ЧТО МОЖЕТ БЫТЬ ЗДЕСЬ | mysql_native_password | localhost |
| mysql.sys | * ЭТОТ НЕЗАВИСИМЫЙ ПАРОЛЬ, ЧТО МОЖЕТ БЫТЬ ЗДЕСЬ | mysql_native_password | localhost |
| debian-sys-maint | * CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+ ------------------ + ------------------------------ ------------- + ----------------------- + ----------- +
4 ряда в наборе (0,00 сек)
В этом примере вывода видно, что пользователь MySQL root теперь аутентифицируется с помощью пароля. Как только вы подтвердите это на своем собственном сервере, вы можете выйти из оболочки MySQL:
В качестве альтернативы некоторые могут найти, что для их рабочего процесса лучше подключиться к MySQL с выделенным пользователем.Чтобы создать такого пользователя, снова откройте оболочку MySQL:
Примечание: Если у вас включена аутентификация по паролю для root , как описано в предыдущих параграфах, вам нужно будет использовать другую команду для доступа к оболочке MySQL. Следующий код запустит ваш клиент MySQL с правами обычного пользователя, и вы получите права администратора в базе данных только после аутентификации:
Оттуда создайте нового пользователя и дайте ему надежный пароль:
- СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'sammy' @ 'localhost' ИДЕНТИФИЦИРОВАНО 'паролем';
Затем предоставьте новому пользователю соответствующие права.Например, вы можете предоставить права пользователя всем таблицам в базе данных, а также право добавлять, изменять и удалять права пользователя с помощью этой команды:
- ПРЕДОСТАВЛЯТЬ ВСЕ ПРИВИЛЕГИИ НА *. * 'Sammy' @ 'localhost' С ОПЦИЕЙ ПРЕДОСТАВЛЕНИЯ;
Обратите внимание, что на этом этапе вам не нужно снова запускать команду FLUSH PRIVILEGES
. Эта команда необходима только при изменении таблиц предоставления с помощью таких операторов, как INSERT
, UPDATE
или DELETE
. Поскольку вы создали нового пользователя, вместо изменения существующего, FLUSH PRIVILEGES
здесь не требуется.
После этого выйдите из оболочки MySQL:
Наконец, давайте протестируем установку MySQL.
Шаг 4. Тестирование MySQL
Независимо от того, как вы его установили, MySQL должен был запуститься автоматически. Чтобы проверить это, проверьте его статус.
- статус systemctl mysql.service
Вы увидите следующий результат:
Вывод
● mysql.сервис - Сервер сообщества MySQL
Загружено: загружено (/lib/systemd/system/mysql.service; включено; предустановка поставщика: en
Активен: активен (работает) с 23.04.2018 21:21:25 UTC; 30мин назад
Основной PID: 3754 (mysqld)
Заданий: 28
Память: 142,3 МБ
Процессор: 1.994 с
CGroup: /system.slice/mysql.service
└─3754 / usr / sbin / mysqld
Если MySQL не запущен, вы можете запустить его с помощью sudo systemctl start mysql
.
Для дополнительной проверки вы можете попробовать подключиться к базе данных с помощью инструмента mysqladmin
, который является клиентом, который позволяет запускать административные команды.Например, эта команда говорит, что нужно подключиться к MySQL как root ( -u root
), запрашивать пароль ( -p
) и возвращать версию.
- sudo mysqladmin -p -u корневая версия
Вы должны увидеть примерно такой результат:
Вывод
mysqladmin Ver 8.42 Distrib 5.7.21, для Linux на x86_64
Авторское право (c) 2000, 2018, Oracle и / или ее дочерние компании. Все права защищены.
Oracle является зарегистрированным товарным знаком Oracle Corporation и / или ее
филиалы.Другие названия могут быть товарными знаками соответствующих
владельцы.
Версия сервера 5.7.21-1ubuntu1
Версия протокола 10
Подключение Localhost через сокет UNIX
Сокет UNIX /var/run/mysqld/mysqld. sock
Время работы: 30 мин 54 сек
Темы: 1 Вопросы: 12 Медленные запросы: 0 Открытие: 115 Очистка таблиц: 1 Открытых таблиц: 34 запросов в секунду в среднем: 0,006
Это означает, что MySQL запущен и работает.
Заключение
Теперь у вас на сервере установлена базовая установка MySQL.Вот несколько примеров следующих шагов:
404 | Микро Фокус
Формируйте свою стратегию и трансформируйте гибридную ИТ-среду.
Помогите вам внедрить безопасность в цепочку создания стоимости ИТ и наладить сотрудничество между ИТ-подразделениями, приложениями и службами безопасности.
Помогите вам быстрее реагировать и получить конкурентное преимущество благодаря гибкости предприятия.
Ускорьте создание гибридного облака с помощью консультационных услуг, услуг по трансформации и внедрению.
Службы управления приложениями, которые позволяют поручить управление решениями экспертам, разбирающимся в вашей среде.
Услуги стратегического консалтинга для разработки вашей программы цифровой трансформации.
Полнофункциональное моделирование сценариев использования с предварительно созданными интеграциями в портфеле программного обеспечения Micro Focus, демонстрирующее реальные сценарии использования
Услуги экспертной аналитики безопасности, которые помогут быстро спроектировать, развернуть и проверить реализацию технологии безопасности Micro Focus.
Служба интеграции и управления службами, которая оптимизирует доставку, гарантии и управление в условиях нескольких поставщиков.
Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.
Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.
Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.
Мобильные услуги, которые обеспечивают производительность и ускоряют вывод продукта на рынок без ущерба для качества.
Анализируйте большие данные с помощью аналитики в реальном времени и ищите неструктурированные данные.
Комплексные услуги по работе с большими данными для продвижения вашего предприятия.
Как запустить MySQL Server на Mac, Windows и Linux
Вы хотите знать, как запустить, остановить и перезапустить сервер MySQL? Узнайте, как это сделать в каждой операционной системе, в этой статье.
MySQL на Mac
Чтобы запустить MySQL на Mac, вы можете использовать командную строку.Используемые вами команды зависят от того, какая у вас версия MySQL: до 5.7 или 5.7 и новее.
Версия 5.7 вышла в октябре 2015 года, поэтому, если вы загружали ее в любое время в течение последних нескольких лет, скорее всего, она будет после версии 5.7.
Новее 5.7
Для MySQL версии 5.7 и новее откройте Терминал и выполните команду launchctl.
Запустить сервер MySQL:
sudo launchctl load -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Остановить сервер MySQL:
sudo launchctl unload -F / Library / LaunchDaemons / com.oracle.oss.mysql.mysqld.plist
Старше 5,7
Если вы используете версию MySQL старше 5.7, ваши команды немного отличаются.
Запустить сервер MySQL:
sudo /usr/local/mysql/support-files/mysql. server start
Остановить сервер MySQL:
sudo /usr/local/mysql/support-files/mysql.server stop
Перезапустите сервер MySQL:
судо / usr / локальные / mysql / файлы поддержки / mysql.перезапуск сервера
MySQL в Windows
Если вы используете MySQL в Windows, вы можете использовать командную строку или раздел «Службы» на панели управления.
Командная строка
Чтобы запустить или остановить MySQL из командной строки Windows:
Откройте командную строку, найдя ее в меню «Пуск» или нажав клавишу Windows и выполнив поиск по запросу «команда».
Введите следующие команды для запуска или остановки MySQL:
Запустить сервер MySQL:
mysqld
Если эта команда не работает, это потому, что папка, в которой находится этот инструмент, не находится в переменной среды Windows PATH.Вместо этого вы можете запустить MySQL с помощью этой команды (заменив папку 8. 0 папкой для версии MySQL, которую вы используете):
"C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin \ mysqld"
Остановить сервер MySQL:
"C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin \ mysqladmin" -u root shutdown
Вы должны заменить папку 8.0 на папку для версии MySQL, которую вы используете.
Службы в панели управления
Кроме того, вы можете использовать раздел «Службы» в Windows для запуска, остановки и перезапуска сервера MySQL.
Для этого:
- Нажмите клавишу Windows, чтобы открыть меню «Пуск» и разрешить поиск.
- Введите «services.msc»
- Нажмите Enter, откроется окно «Службы».
- Поиск службы MySQL
- Щелкните Start, Stop или Restart, чтобы выполнить соответствующее действие для MySQL.
MySQL в Linux
Если вы используете MySQL в Linux, вы можете запускать, останавливать или перезапускать MySQL с помощью командной строки.
Для этого можно использовать одну из нескольких различных команд.
Запустить сервер MySQL:
/etc/init.d/mysqld start
или
сервис mysqld start
или
сервис mysql start
Остановить сервер MySQL:
/etc/init.d/mysqld stop
или
служба mysqld stop
или
служба mysql stop
Перезапустите сервер MySQL:
/etc/init.d/mysqld перезапуск
или
перезапуск службы mysqld
или
перезапуск службы mysql
Заключение
Итак, есть несколько различных способов запуска, остановки и перезапуска MySQL в каждой операционной системе.Все они поддерживают метод командной строки, а команды немного отличаются.
Как установить и настроить MySQL в Ubuntu 20.04 LTS
MySQL, что означает «Мой» (имя дочери соучредителя Майкла Видениуса) Structured Query Language, — это система управления реляционными базами данных с открытым исходным кодом. Эта СУБД поддерживается Oracle и работает практически на всех платформах, таких как Linux, UNIX и MS Windows. MYSQL обычно является первым выбором для онлайн-публикаций и веб-приложений.Facebook, YouTube и Twitter используют MySQL в качестве своей СУБД. MySQL является частью очень популярного стека LAMP: Linux, Apache, MySQL и Python / PHP / Perl.
В этой статье мы шаг за шагом опишем, как действовать:
- Установите последнюю версию MySQL, доступную в репозитории пакетов apt
- Запустите сценарий безопасности MySQL
- Настройте пользователя root для доступа к оболочке MySQL
- Наконец проверьте, работает ли MySQL
Мы выполнили команды и процедуры, упомянутые в этой статье, на Ubuntu 20.04 Система LTS
Установка MySQL и настройка безопасности
В этом разделе мы описываем, как установить MySQL из командной строки Ubuntu и настроить безопасность.
Вы можете открыть командную строку Ubuntu или терминал либо из панели поиска средства запуска приложений, либо нажав Ctrl + Alt + T.
Шаг 1. Обновление индекса репозитория
Чтобы установить последнюю доступную версию программного обеспечения из интернет-репозиториев, индекс вашего локального репозитория должен соответствовать этому.Выполните следующую команду от имени sudo, чтобы обновить индекс локального репозитория:
$ sudo apt-get update
Шаг 2. Установите сервер MySQL с apt
. Выполните следующую команду от имени sudo для установки MySQL из репозиториев APT.
$ sudo apt-get install mysql-server
Обратите внимание, что только авторизованный пользователь Ubuntu может добавлять, удалять и настраивать программное обеспечение.
Система может запросить у вас пароль для sudo, а также предложить вам вариант Y / n для продолжения установки.Введите Y и нажмите Enter; После этого в вашей системе будет установлен MySQL. Однако процесс может занять некоторое время в зависимости от скорости вашего интернета.
Шаг 3: Проверьте установку (необязательно)
Вы можете проверить свою установку MySQL, а также проверить номер версии, выполнив следующую команду в своем терминале:
$ mysql --version
Шаг 4.
Настройте безопасность с помощью запуск предоставленного сценария безопасностиВсякий раз, когда вы устанавливаете новую копию MySQL, есть некоторые настройки по умолчанию, которые вы должны изменить, чтобы повысить безопасность вашей установки MySQL.К ним относятся удаление тестовых пользователей, тестовых баз данных и разрешение удаленного входа в систему пользователем root.
Выполните следующую команду от имени sudo, чтобы запустить сценарий безопасности:
$ sudo mysql_secure_installation
Когда вы запустите эту команду, первое, что вам будет предложено сделать, это настроить плагин проверки пароля. Это позволяет вам установить безопасный пароль для root, в зависимости от силы пароля, который вы хотите выбрать. Введите Y, чтобы запустить плагин проверки пароля, и вы получите следующий запрос:
Введите число по вашему выбору для надежности пароля и нажмите Enter.Затем система запросит у вас новый пароль root. Введите пароль и повторите его при следующих запросах.
Затем система отобразит надежность введенного вами пароля, а также спросит вас, хотите ли вы продолжить ввод пароля.
Введите Y для Да и нажмите Enter.
Теперь система будет задавать вам серию вопросов по одному, и вы можете установить безопасность своей системы в зависимости от ваших ответов на эти вопросы.
Серия вопросов:
Первый вопрос задаст вам, хотите ли вы удалить анонимных тестовых пользователей.
Нажмите y и клавишу Enter.
Второй вопрос спросит вас, хотите ли вы запретить вход root из удаленной системы. Обычно это должен быть ваш выбор, потому что для безопасной системы пользователю root должно быть разрешено подключаться только с localhost.
Поэтому мы рекомендуем ввести y.
В третьем вопросе задается вопрос, хотите ли вы удалить базу данных MySQL по умолчанию с именем «test» из вашей системы, а также удалить доступ к ней.
Введите y, чтобы удалить эту тестовую базу данных.
Чтобы все ваши изменения, настроенные выше, вступили в силу, система должна перезагрузить таблицы разрешений. Введите y, и все ваши изменения безопасности будут применены.
Настройка root для использования оболочки MySQL
При запуске сценария безопасности вы указали пароль для root. Однако этому пользователю не разрешено подключаться к MySQL Shell с тем же паролем. Вы можете настроить root для использования MySQL Shell, изменив метод аутентификации с «auth_socket» по умолчанию на «mysql_native_password».
Вот как это сделать:
Шаг 1. Запустите оболочку MySQL
Сначала запустите оболочку MySQL, выполнив следующую команду от имени sudo:
$ sudo mysql
Это запустит оболочку MySQL, чтобы вы могли работать в командной строке MySQL.
Шаг 2: Проверьте метод аутентификации для пользователей MySQL
В командной строке MySQL введите следующую команду, которая позволит вам проверить метод / плагин аутентификации, который в настоящее время используют все ваши учетные записи MySQL:
mysql> SELECT user , строка_аутентификации, плагин, хост ОТ mysql. Пользователь;
В приведенных выше выходных данных вы можете видеть, что root использует плагин auth-socket для аутентификации по умолчанию.
Шаг 3. Измените метод аутентификации для root
Наша цель состоит в том, чтобы пользователь root аутентифицировался в MySQL с паролем. Для этого выполните следующую команду, в которой пользователь root будет идентифицирован с помощью mysql_native_password. Помните, что этот пароль должен быть очень надежным.
mysql> ALTER USER 'root' @ 'localhost' ИДЕНТИФИКАЦИЯ mysql_native_password ПО 'паролю';
С этого момента у вашего пользователя root больше не будет пароля, который вы указали при запуске предоставленного сценария безопасности, а будет надежный пароль, который вы указали в приведенной выше команде.
Шаг 4. Перезагрузите таблицы разрешений
Теперь пришло время указать серверу использовать новые настройки разрешений с этого момента. Выполните следующую команду в командной строке MySQL, чтобы перезагрузить таблицы предоставления и зарегистрировать изменения:
mysql> FLUSH PRIVILEGES;
Шаг 5.
Перепроверьте метод аутентификации для пользователей MySQLТеперь, если вы повторно проверите метод аутентификации для своих учетных записей MySQL с помощью следующей команды, вы увидите, что ваш пользователь root теперь использует плагин mysql_native_password для аутентификации:
mysql> ВЫБЕРИТЕ пользователя, аутентификационную_строку, плагин, хост ИЗ mysql.Пользователь;
Теперь, когда ваш пользователь root настроен для подключения к оболочке MySQL с безопасным паролем, вы можете выйти из оболочки с помощью следующей команды:
mysql> exit
Проверка работы MySQL
Чтобы проверьте, работает ли MySQL в вашей системе или нет, вы можете использовать один из следующих методов:
Метод 1: Проверьте статус mysql.service
После установки MySQL в вашей системе, скорее всего, будет запущен mysql.service автоматически.Вывод следующей команды должен проверять активный статус службы:
$ systemctl status mysql. service
Если по какой-то причине служба не запущена, вы можете использовать следующую команду в качестве sudo для запуска службы:
$ sudo systemctl start mysql
Вы можете использовать следующую команду, чтобы снова остановить службу, если необходимо:
$ sudo systemctl stop mysql
Метод 2: подключившись к MySQL Admin как root и запустив любую административную команду
MySQL Admin — это клиент, который позволяет выполнять административные операции в MySQL.В качестве примера давайте запустим на нем одну из административных команд, чтобы проверить, правильно ли работает система и настроен ли наш корень для этого.
$ sudo mysqladmin -p -u root version
Эта команда предназначена для подключения к MySQL как root, получения пароля root, а затем возврата номера версии администратора MySQL.
Если команда выполняет то, что она должна делать, и выдает результат, аналогичный приведенному выше, вы можете быть уверены, что ваш MySQL запущен и работает.
Процесс установки и настройки MySQL в Ubuntu некоторым может показаться обременительным, особенно при использовании командной строки.Однако, если вы внимательно выполните вышеуказанные шаги один за другим, у вас не будет проблем с надежной, безопасной и стабильной установкой MySQL, работающей на вашем Ubuntu.
: Глава 11. Общее администрирование MySQL :: Часть III: Администрирование MySQL :: MySQL :: SQL :: eTutorials.org
Одна общая цель, которую вы как администратор MySQL будете иметь, — убедиться, что сервер работает как можно дольше. максимально возможного времени, чтобы ваши пользователи могли получить к нему доступ. Однако иногда необходимо выключить сервер.Например, если вы перемещаете базу данных, вы не хотите, чтобы сервер одновременно обновлял таблицы в этой базе данных. Эта книга не может разрешить противоречие между желанием сохранить работоспособность сервера и необходимостью время от времени его выключать. Но мы можем по крайней мере обсудить, как запустить и остановить сервер, чтобы у вас была возможность выполнить любую операцию по своему усмотрению. Многие аспекты процедур для этого различны для UNIX и Windows, поэтому в следующем обсуждении они рассматриваются отдельно.
Запуск сервера MySQL в UNIX
В UNIX сервер MySQL может быть запущен вручную или автоматически во время запуска системы. Также можно настроить автоматический запуск сервера во время загрузки системы как часть стандартной процедуры запуска. (На самом деле, вероятно, именно так вы запустите сервер в нормальных рабочих условиях после того, как все настроите так, как вы хотите.) Но прежде чем обсуждать, как запустить сервер, давайте рассмотрим, под какой учетной записью он должен запускаться, когда это действительно начинается.В многопользовательской операционной системе, такой как UNIX, у вас есть выбор, какую учетную запись использовать для запуска сервера. Например, если вы запустите его вручную, сервер будет работать как пользователь UNIX, под которым вы вошли в систему. То есть, если я вхожу в систему как paul и запускаю сервер, он работает как paul. Если вместо этого я использую команду su для переключения пользователя на root, а затем запускаю сервер, он запускается как root.
Вы должны иметь в виду две цели для процедуры запуска вашего сервера MySQL в UNIX:
Вы хотите, чтобы сервер запускался от имени другого пользователя, кроме root.Сказать, что сервер работает «от имени» данного пользователя, означает, что серверный процесс связан с идентификатором пользователя учетной записи этого пользователя и что он имеет права этого пользователя на чтение и запись файлов в файловой системе. Это имеет определенные последствия для безопасности, особенно для процессов, которые выполняются от имени пользователя root, поскольку root может делать все, что угодно, даже опасно. (Некоторые из проблем, которые могут возникнуть, описаны в Главе 12.) Один из способов избежать этих опасностей — это заставить сервер отказаться от своих особых привилегий.Процессы, которые запускаются от имени пользователя root, имеют возможность изменить свой идентификатор пользователя на идентификатор другой учетной записи и, таким образом, отказаться от привилегий root в обмен на привилегии обычного непривилегированного пользователя. Это делает процесс менее опасным. В общем, вам следует ограничить мощность любого процесса, если ему действительно не нужен root-доступ, и mysqld, в частности, этого не делает. Серверу требуется доступ и управление содержимым каталога данных MySQL, но мало чего другого. Это означает, что если сервер запускается от имени пользователя root, вы должны указать ему изменить во время процедуры запуска, чтобы он запускался от имени непривилегированного пользователя.(Исключение возникает в Solaris, если у вас возникли проблемы с сервером, который часто выгружается, и вы хотите заставить его оставаться заблокированным в памяти с помощью параметра —memlock. Этот параметр требует запуска сервера с правами root.)
Вы хотите, чтобы сервер все время работал от имени одного и того же пользователя. Иногда сервер не может работать от имени одного пользователя, а иногда от имени другого пользователя. Это приводит к тому, что файлы и каталоги создаются в каталоге данных с разными владельцами, и даже может привести к тому, что сервер не сможет получить доступ к определенным базам данных или таблицам. Постоянная работа сервера от имени одного и того же пользователя позволяет избежать этой проблемы.
Запуск сервера с использованием непривилегированной учетной записи для входа
Чтобы настроить запуск сервера от имени непривилегированного пользователя без полномочий root, выполните следующую процедуру:
Выключите сервер, если он работает:
% mysqladmin -p -u отключение root
Выберите учетную запись для входа в систему для запуска mysqld.Вы можете использовать любую учетную запись, но концептуально и административно проще создать отдельную учетную запись, которая предназначена исключительно для деятельности MySQL. Вы также можете назначить имя группы специально для использования с MySQL. Я назову эти имена пользователей и групп mysqladm и mysqlgrp. Если вы используете другие имена, заменяйте их везде, где вы видите mysqladm и mysqlgrp в этой книге. Например, если вы установили MySQL под своей учетной записью и не имеете особых административных прав в своей системе, вы, вероятно, запустите сервер под своим собственным идентификатором пользователя. В этом случае замените mysqladm и mysqlgrp своим именем входа и именем группы. Если вы установили MySQL в Linux с помощью файла RPM, процедура установки могла создать учетную запись автоматически, используя mysql как для имени пользователя, так и для имени группы. Замените это имя на mysqladm и mysqlgrp.
При необходимости создайте учетную запись для входа с именем, которое вы выбрали, используя обычную процедуру создания учетной записи в вашей системе. Вам нужно будет сделать это как root.
Измените владельца и группу, владеющую каталогом данных и всеми подкаталогами и файлами в нем, чтобы пользователь mysqladm владел ими.Например, если каталог данных — / usr / local / mysql / data, вы можете установить владельца для этого каталога и его содержимого следующим образом (вам нужно будет запустить эту команду как root):
# chown -R mysqladm.mysqlgrp / usr / local / mysql / data
Это хорошая мера безопасности — установить режим доступа к каталогу данных, чтобы не допустить к нему других людей. Для этого измените его права доступа так, чтобы его мог использовать только mysqladm. Если каталог данных / usr / local / mysql / data, вы можете настроить все, что находится в нем и под ним, чтобы оно было доступно только для mysqladm, отключив все «групповые» и «прочие» разрешения следующим образом:
# chmod -R go-rwx / usr / local / mysql / data
Последние пару шагов фактически являются частью более полной процедуры блокировки, которая подробно описана в главе 12.Обязательно ознакомьтесь с этой главой для получения дополнительных инструкций по назначению прав собственности и режимов, особенно если ваша установка MySQL имеет нестандартную организацию.
После завершения предыдущей процедуры вы должны всегда запускать сервер с опцией —user = mysqladm, чтобы, если он вызывается пользователем root, он сменил свой идентификатор пользователя на mysqladm. (Это верно как для случая, когда вы запускаете сервер вручную как root, так и для настройки сервера, который будет вызываться во время процедуры запуска вашей системы. Системы UNIX выполняют операции запуска от имени пользователя root UNIX, поэтому любые процессы, инициированные как часть этой процедуры, выполняются по умолчанию с привилегиями root.) Лучший способ гарантировать, что пользователь указан согласованно, — это указать его в файле параметров. Например, поместите следующие строки в /etc/my.cnf:
[mysqld] пользователь = mysqladm
Для получения дополнительной информации о файлах параметров см. Раздел «Указание параметров запуска» далее в этой главе.
Если вы запускаете сервер при входе в систему как mysqladm, наличие строки пользователя в вашем файле параметров приведет к предупреждению о том, что параметр может использоваться только пользователем root.Это означает, что сервер не имеет возможности изменить свой идентификатор пользователя и будет работать как mysqladm. В любом случае вы этого хотите, поэтому просто игнорируйте предупреждение.
Параметр —user был добавлен в mysqld в MySQL 3.22. Если у вас более старая версия, используйте команду su, чтобы указать системе запускать сервер под определенной учетной записью, когда вы запускаете его с правами root. Вам нужно будет прочитать страницу руководства вашей системы для su, потому что разные версии su различаются по синтаксису вызова.
Способы запуска сервера
После того, как вы решили, какую учетную запись использовать для запуска сервера, у вас есть несколько вариантов того, как его запустить. Сервер можно запустить вручную из командной строки или автоматически во время процедуры запуска системы. Для этого используются следующие методы:
Вызов mysqld напрямую
Вероятно, это наименее распространенный метод. Я не буду обсуждать это дальше, за исключением того, что скажу, что mysqld — help — это полезная команда для выяснения, какие параметры запуска поддерживает сервер.
Вызов сценария mysqld_safe
mysqld_safe вызывает сервер, затем отслеживает его и перезапускает, если он умирает. mysqld_safe обычно используется в версиях UNIX в стиле BSD, а также в mysql.server в системах, отличных от BSD. (mysqld_safe назывался safe_mysqld до MySQL 4, что необходимо учитывать при выполнении любых инструкций, приведенных в этой главе, касающихся mysqld_safe. )
mysqld_safe перенаправляет сообщения об ошибках и другие диагностические данные с сервера в файл в каталоге данных для создания журнала ошибок.mysqld_safe устанавливает владельца журнала ошибок так, чтобы он принадлежал пользователю, имя которого указано с параметром —user. Это может привести к проблемам, если вы в разное время будете использовать разные значения —user. Симптомом является то, что попытка mysqld_safe записать в журнал ошибок завершится неудачей с ошибкой «доступ запрещен». Это может быть особенно проблематично, потому что, если вы изучите журнал ошибок, чтобы увидеть, в чем проблема, он не будет содержать полезной информации, связанной с причиной. Если возникает эта проблема, удалите журнал ошибок и снова вызовите mysqld_safe.
Вызов сценария mysql.server
mysql.server запускает сервер, выполняя mysqld_safe. Этот сценарий может быть вызван с аргументом start или stop, чтобы указать, хотите ли вы, чтобы сервер запускался или завершался. Он служит оболочкой для mysqld_safe для использования в системах, которые используют метод System V для размещения сценариев запуска и завершения работы в нескольких каталогах. Каждый каталог соответствует определенному уровню выполнения и содержит сценарии, которые должны запускаться, когда машина входит или выходит из этого уровня выполнения.
Для координации нескольких серверов используйте скрипт mysqld_multi
Этот метод запуска более сложен, чем другие, поэтому я отложу обсуждение до раздела «Запуск нескольких серверов» далее в этой главе.
Сценарии mysqld_safe и mysqld_multi устанавливаются в каталог bin в каталоге установки MySQL или их можно найти в каталоге сценариев исходного дистрибутива MySQL.Сценарий mysql.server устанавливается в каталог share / mysql в каталоге установки MySQL или может быть найден в каталоге файлов поддержки исходного дистрибутива MySQL. Вам нужно будет скопировать его в соответствующий каталог запуска и сделать исполняемым, если вы хотите его использовать. Если вы устанавливаете MySQL с помощью файла RPM, полученного с веб-сайта MySQL, сценарий mysql.server устанавливается под именем mysql; вы найдете его в каталоге /etc/rc.d/init.d. Если вы используете MySQL RPM, полученный от RedHat, аналогичный сценарий запуска устанавливается под именем mysqld.
Действия, которые необходимо предпринять для запуска сценария запуска во время загрузки системы, зависят от типа вашей системы. Прочтите следующие примеры и используйте или адаптируйте инструкции, которые наиболее точно соответствуют процедурам запуска вашей системы.
Для систем в стиле BSD обычно в каталоге / etc есть несколько файлов, которые запускают службы во время загрузки. Эти файлы часто имеют имена, начинающиеся с rc, и вполне вероятно, что там будет файл с именем rc.local (или что-то подобное), предназначенное специально для запуска локально установленных служб. В такой системе вы можете добавить в rc.local следующие строки для запуска сервера:
если [-x / usr / local / bin / mysqld_safe]; тогда / usr / local / bin / mysqld_safe & фи
Измените строки соответствующим образом, если путь к вашему каталогу bin MySQL отличается в вашей системе.
Для систем типа System V вы можете установить mysql.server. Скопируйте его в соответствующий каталог запуска в / etc.Возможно, это уже было сделано за вас, если вы запускаете Linux и устанавливаете MySQL из файла RPM. В противном случае установите сценарий в основной каталог сценариев запуска с именем, которое вы хотите использовать, убедитесь, что сценарий является исполняемым, и разместите ссылки на него в соответствующем каталоге уровня выполнения.
Примечание: Здесь я предполагаю, что mysql.server устанавливается в каталог запуска под именем mysql, но обычно я продолжаю обсуждать его как mysql.server, чтобы прояснить, о чем я говорю.
Макет каталогов файлов запуска варьируется от системы к системе, поэтому вам нужно будет проверить, как ваша система их организует. Например, в Solaris общий уровень выполнения многопользовательского режима равен 2. Главный каталог сценария — /etc/init.d, каталог уровня выполнения — /etc/rc2.d, поэтому команды будут выглядеть следующим образом:
# cp mysql. server /etc/init.d/mysql # cd /etc/init.d # chmod + x mysql # cd /etc/rc2.d # ln -s ../init.d/mysql S99mysql
Во время запуска системы процедура загрузки автоматически вызывает сценарий S99mysql с аргументом start.
Linux имеет аналогичный набор каталогов, но они организованы в /etc/rc.d (например, /etc/rc.d/init.d и /etc/rc.d/rc3.d). В системах Linux обычно есть команда chkconfig, предназначенная для управления сценариями запуска. Вы можете использовать его для установки скрипта mysql.server вместо того, чтобы вручную запускать команды, подобные только что показанным. Следующие инструкции показывают, как установить mysql.server в каталоги запуска, используя имя mysql:
Скопируйте файл mysql.серверный скрипт из любого места в каталог init.d и сделать его исполняемым:
# cp mysql.server /etc/rc.d/init.d/mysql # chmod + x /etc/rc.d/init.d/mysql
Зарегистрируйте скрипт и включите его:
# chkconfig - добавить mysql # chkconfig mysql on
Чтобы проверить, правильно ли включен сценарий, запустите chkconfig с параметром —list:
# chkconfig --list mysql mysql 0: выключено 1: выключено 2: включено 3: включено 4: включено 5: включено 6: выключено
Эти выходные данные показывают, что сценарий будет выполняться во время запуска для уровней выполнения 3, 4 и 5.
Если у вас нет chkconfig, вы можете использовать процедуру, аналогичную той, что используется для Solaris, хотя имена путей немного отличаются. Чтобы включить сценарий для уровня выполнения 3, используйте следующие команды:
# cp mysql.server /etc/rc.d/init.d/mysql # cd /etc/rc.d/init.d # chmod + x mysql # cd /etc/rc.d/rc3.d # ln -s ../init.d/mysql S99mysql
В Mac OS X процедура запуска пока другая. Каталоги / Library / StartupItems и / System / Library / StartupItems содержат подкаталоги для служб, которые запускаются во время загрузки системы.Вы можете настроить MySQL, используя существующие службы в качестве модели, или, проще говоря, вы можете просто посетить http://www.entropy.ch/software/macosx/mysql/, чтобы найти пакет элементов запуска. После установки пакета вам может потребоваться немного изменить его основной скрипт, чтобы он соответствовал местоположению, в котором установлен ваш сервер.
Запуск сервера MySQL в Windows
ДистрибутивыMySQL для Windows включают несколько серверов, каждый из которых построен с различными опциями. Вы можете найти сводку по различным серверам в Приложении A.Для этого обсуждения я буду использовать mysqld в качестве примеров, применимых к любой версии Windows, в которой работает MySQL, и mysqld-nt для примеров, которые более применимы к версиям Windows на базе NT (NT, 2000 и XP).
Вы можете запустить сервер вручную из командной строки под любой версией Windows. Кроме того, для систем на базе NT можно установить любой сервер как услугу. Вы можете настроить службу MySQL на автоматический запуск при запуске Windows и управлять ею из командной строки или с помощью диспетчера служб Windows.Если вы используете один из серверов, созданных специально для NT, вы можете настроить его так, чтобы клиенты могли подключаться по именованным каналам.
Запуск сервера вручную
Чтобы запустить сервер вручную, вызовите его из командной строки:
C: \> mysqld
Если вы хотите, чтобы сообщения об ошибках направлялись в окно консоли, а не в журнал ошибок (файл mysql. err в каталоге данных), используйте параметр —console:
C: \> mysqld --console
Используйте mysqld-nt в системах на базе NT, если вы хотите разрешить соединения через именованные каналы.Поддержка именованных каналов включена по умолчанию для mysqld-nt вплоть до MySQL 3.23.49. Теперь это было изменено; чтобы воспользоваться преимуществами поддержки именованных каналов для MySQL 3.23.50 и выше, добавьте параметр —enable-named-pipe в команду запуска. (Это не обязательно хорошая идея! Причина, по которой именованные каналы теперь отключены по умолчанию, заключается в том, что они вызывают проблемы во время выключения сервера на многих машинах. Если вы используете эту опцию, обязательно проверьте, действительно ли ваш сервер выключается должным образом.)
Чтобы остановить сервер, используйте mysqladmin:
C: \> mysqladmin -p -u root shutdown
Запуск сервера как службы
В версиях Windows на базе NT сервер MySQL можно установить как службу с помощью следующей команды:
C: \> mysqld-nt --install
Это приведет к автоматическому запуску сервера при каждом запуске Windows. Если вы предпочитаете использовать службу, которая не запускается автоматически, установите сервер как «ручную» службу:
C: \> mysqld-nt - руководство по установке
В этих примерах используется mysqld-nt, но на самом деле вы можете установить любой сервер как службу.Вместо этого вы можете установить mysqld, если, например, вас не волнует поддержка именованных каналов.
Как правило, когда вы устанавливаете сервер как службу, вы не указываете других параметров в командной строке и вместо этого указываете их в файле параметров. (См. Раздел «Определение параметров запуска» далее в этой главе.) Исключение из этого правила возникает, если вы устанавливаете несколько серверов Windows в качестве служб. Подробнее см. В разделе «Запуск нескольких серверов» далее в этой главе.
После того, как сервер установлен как служба, вы можете управлять им с помощью имени службы, которым является MySql.Это можно сделать из командной строки или из диспетчера служб Windows, если вы предпочитаете графический интерфейс. Диспетчер служб можно найти как элемент «Службы» на панели управления Windows или в элементе «Администрирование» на панели управления, в зависимости от вашей версии Windows.
Чтобы запустить или остановить службу из командной строки, используйте следующие команды (имя службы фактически может быть указано в любом регистре, потому что оно не чувствительно к регистру):
C: \> чистый старт MySql C: \> чистая остановка MySql
Если вы используете диспетчер служб, он представляет окно, в котором отображается список известных ему служб, а также дополнительная информация, например, запущена ли каждая служба и является ли она автоматической или ручной.Чтобы запустить или остановить сервер MySQL, выберите его запись в списке служб, а затем выберите соответствующую кнопку или пункт меню.
Вы также можете выключить сервер из командной строки с помощью mysqladmin shutdown.
Чтобы удалить сервер из списка служб, выключите его, если он запущен, а затем введите следующую команду:
C: \> mysqld-nt --remove
Примечание: Хотя вы можете управлять службами с помощью диспетчера служб или команд в командной строке DOS, вам следует избегать взаимодействия между этими двумя подходами. Обязательно закрывайте диспетчер служб всякий раз, когда вы вызываете команды, связанные со службами, из приглашения.
Указание параметров запуска
На любой платформе существует два основных метода указания параметров запуска при вызове сервера:
Вы можете перечислить их в командной строке, и в этом случае можно использовать длинные или краткие формы любого параметра, для которого доступны обе формы. Например, вы можете использовать —user = mysqladm или -u mysqladm.
Вы можете указать параметры в файле параметров. При указании опции таким образом можно использовать только ее длинную форму опции, и она дается без дефисов в начале:
пользователь = mysqladm
Обычно проще всего использовать файл параметров. Вы можете сделать это для любого метода запуска, и как только вы укажете эти параметры, они будут действовать каждый раз при запуске сервера. Перечисление параметров в командной строке работает только при запуске сервера вручную или с помощью mysqld_safe. Это не работает для mysql.server, который предназначен для поддержки только параметров запуска и остановки в командной строке. Кроме того, за некоторыми исключениями, вы не можете указать параметры запуска в командной строке, если вы используете —install или —install-manual для установки сервера Windows как службы. (Исключения обсуждаются в разделе «Запуск нескольких серверов» далее в этой главе.)
Обычно для указания опций сервера в UNIX используются файлы /etc/my.cnf и my.cnf в каталоге данных.В Windows вы можете использовать файл my.ini в системном каталоге Windows, C: \ my.cnf, и файл my.cnf в каталоге данных. Если файл, который вы хотите использовать, не существует, создайте его.
Обычно параметры запуска сервера помещаются в группу параметров [mysqld]. Например, чтобы указать, что вы хотите, чтобы сервер запускался как mysqladm и использовал расположение базового каталога / usr / local / mysql, вы можете поместить следующую группу в файл параметров:
[mysqld] пользователь = mysqladm basedir = / USR / локальные / MySQL
Это эквивалентно запуску сервера с параметрами в командной строке следующим образом:
% mysqld --user = mysqladm --basedir = / usr / local / mysql
Полный список групп опций, используемых серверами и программами запуска серверов, показан в следующей таблице:
mysqld | [mysqld], [сервер] |
mysqld_safe | [mysqld], [сервер], [mysqld_safe], [safe_mysqld] |
safe_mysqld | [mysqld], [сервер], [safe_mysqld] |
MySQL. сервер | [mysqld], [mysql_server] |
libmysqld | [встроенный], [сервер] |
Строка для libmysqld относится к встроенному серверу, который может быть связан с программами для создания приложений на основе MySQL, не требующих отдельного автономного сервера. (Глава 6, «MySQL C API», описывает, как писать приложения, использующие встроенный сервер.)
Группа [сервер] может использоваться для параметров, относящихся к любому серверу, как автономному, так и встроенному.Группы [mysqld] или [embedded] могут использоваться для параметров, которые применяются только к автономным серверам или к встроенным серверам. Точно так же группы [mysqld_safe] или [mysql_server] позволяют вам указывать параметры, которые используются только при вызове одного или другого сценария запуска.
До MySQL 4 mysqld_safe назывался safe_mysqld. Инструкции в этой книге, относящиеся к группе опций [mysqld_safe], которая используется mysqld_safe, следует читать как ссылки на группу [safe_mysqld], если вы используете вместо нее safe_mysqld.
См. Приложение E для получения дополнительной информации о формате и синтаксисе файлов опций.
Если вы запускаете сервер с помощью сценария запуска, третий способ указать параметры — это изменить сценарий, чтобы передать эти параметры непосредственно серверу. Я не рекомендую это, кроме как в крайнем случае. Его существенный недостаток заключается в том, что вам придется не забывать повторять свои изменения каждый раз, когда вы устанавливаете новую версию MySQL, что приведет к уничтожению вашего измененного скрипта с новой версией.
Выключение сервера
Чтобы выключить сервер вручную, используйте mysqladmin:
% mysqladmin -p -u отключение root
Это работает как для UNIX, так и для Windows. Если вы установили сервер в качестве службы под Windows, также можно остановить сервер вручную из командной строки:
C: \> чистая остановка MySql
Или вы можете использовать графический интерфейс, предлагаемый менеджером служб, для выбора и остановки сервера.
Если вы настроили сервер на автоматический запуск при загрузке вашей системы, вам не нужно делать ничего особенного для его автоматической остановки во время выключения системы. Системы BSD UNIX обычно завершают работу служб, отправляя процессам сигнал TERM. Они либо должным образом реагируют на сигнал, либо их бесцеремонно убивают. mysqld завершает работу, когда получает этот сигнал.
Для систем UNIX в стиле System V, которые запускают сервер с mysql.server, процесс завершения работы вызовет этот сценарий с аргументом stop, чтобы сообщить серверу о завершении работы.Вы также можете вызвать сценарий самостоятельно, чтобы выключить сервер вручную. Например, если вы установили сценарий mysql.server как /etc/rc.d/init.d/mysql, вы можете вызвать его следующим образом (для этого вам потребуется root):
# /etc/rc.d/init.d/mysql stop
Если вы запускаете сервер MySQL как службу в системе на базе Windows NT, диспетчер служб автоматически сообщит серверу об остановке во время выключения системы. В других версиях Windows или если вы не запускаете сервер как службу, вы должны выключить сервер вручную с помощью mysqladmin shutdown в командной строке перед завершением работы Windows.
Восстановление контроля над сервером, когда вы не можете к нему подключиться
При определенных обстоятельствах вам может потребоваться перезапустить сервер вручную из-за невозможности подключиться к нему. Конечно, это несколько парадоксально, потому что обычно, когда вы вручную выключаете сервер, вы делаете это, подключаясь к нему с помощью mysqladmin shutdown, который сообщает ему о завершении. Как же тогда может возникнуть такая ситуация?
Во-первых, для пароля root MySQL могло быть установлено значение, о котором вы не знаете.Это может произойти, когда вы меняете пароль, например, если вы случайно набираете невидимый управляющий символ при вводе нового значения пароля. Или вы просто забыли пароль.
Во-вторых, в UNIX подключения к localhost выполняются через файл сокета домена UNIX (например, /tmp/mysql. sock). Если файл сокета будет удален, локальные клиенты не смогут использовать его для подключения. Это может произойти, если ваша система запускает задание cron, которое время от времени удаляет временные файлы в / tmp.
Если вы не можете подключиться, потому что файл сокета был удален, вы можете вернуть его, просто перезапустив сервер. Сервер воссоздает файл сокета при его резервном копировании. Уловка здесь в том, что, поскольку файл сокета исчез, вы не можете использовать его для установления соединения, чтобы сообщить серверу о выключении. Вместо этого вы должны установить соединение TCP / IP. Для этого подключитесь к локальному серверу, указав значение хоста 127.0.0.1, а не localhost:
% mysqladmin -p -u корень -h 127.0.0.1 выключение
127.0.0.1 — это IP-номер (он относится к интерфейсу обратной связи локального хоста), поэтому он явно заставляет использовать TCP / IP-соединение, а не соединение через сокет.
Если это тот случай, когда файл сокета удаляется заданием cron, проблема с отсутствующим сокетом будет повторяться до тех пор, пока вы не измените задание cron или не используете файл сокета, расположенный в другом месте. Вы можете указать другой сокет, указав его в глобальном файле опций. Например, если базовый каталог MySQL — / usr / local / mysql, вы можете переместить туда файл сокета, добавив следующие строки в / etc / my.cnf:
[mysqld] сокет = / usr / локальный / mysql / mysql.sock [клиент] сокет = / usr / локальный / mysql / mysql.sock
Необходимо указать путь как для сервера, так и для клиентских программ, чтобы все они использовали один и тот же файл сокета. Если вы установите путь только для сервера, клиентские программы по-прежнему будут ожидать найти сокет в старом месте. После внесения изменений перезапустите сервер, чтобы он создавал сокет в новом месте. К сожалению, этот метод работает только для клиентов, читающих файл параметров; многие делают, а некоторые — нет.Если вы перекомпилируете MySQL из исходного кода, вы можете перенастроить дистрибутив, чтобы по умолчанию использовать другой путь для сервера и клиентов. Это также автоматически повлияет на сторонние программы, использующие клиентскую библиотеку.
Если вы не можете подключиться, потому что не можете вспомнить или не знаете пароль root, вам необходимо восстановить контроль над сервером, чтобы вы могли снова установить пароль. Для этого выполните следующую процедуру:
Выключите сервер.В UNIX, если вы можете войти в систему как root на хосте сервера, вы можете завершить работу сервера с помощью команды kill. Узнайте идентификатор процесса сервера, просмотрев файл PID сервера (который обычно находится в каталоге данных) или с помощью команды ps. Затем попробуйте приказать серверному процессу нормально завершить работу, отправив ему сигнал TERM:
# kill -TERM PID
Таким образом, таблицы и журналы будут очищены правильно. Если сервер заблокирован и не отвечает на нормальный сигнал завершения, вы можете использовать kill-9, чтобы принудительно завершить его.
# kill -9 PID
Это последнее средство, потому что могут быть не сброшенные модификации, и вы рискуете оставить таблицы в несогласованном состоянии.
В Linux ps может отображать несколько «процессов» mysqld. На самом деле это потоки одного и того же процесса, поэтому вы можете убить любой из них, чтобы убить их всех.
Если вы запустите сервер с помощью mysqld_safe, он будет отслеживать сервер и сразу же перезапустить его после того, как вы его уничтожите. Чтобы этого избежать, определите PID процесса mysqld_safe и сначала завершите его, прежде чем убивать mysqld.
Если вы запускаете сервер как службу под Windows, вы можете отключить его в обычном режиме, не зная паролей, с помощью диспетчера служб или с помощью следующей команды:
C: \> чистая остановка MySql
Чтобы принудительно завершить работу сервера в Windows, используйте диспетчер задач (Alt-Ctrl-Del). Как и kill-9 в UNIX, это последнее средство.
Перезапустите сервер с параметром —skip-grant-tables, чтобы отключить использование таблиц разрешений для проверки соединений.Это позволяет вам подключаться без пароля и со всеми привилегиями. Однако он также оставляет ваш сервер широко открытым, чтобы другие люди могли подключаться таким же образом, поэтому сразу после подключения выполните инструкцию FLUSH PRIVILEGES:
% mysql mysql> ПРИВИЛЕГИИ ПРОМЫВКИ;
Оператор FLUSH указывает серверу перечитать таблицы предоставления, заставляя его снова начать их использовать. Вы останетесь подключенным, но сервер потребует, чтобы все последующие попытки подключения других клиентов проверялись с помощью таблиц, как обычно.Оператор FLUSH также повторно включает оператор GRANT, который отключается, когда сервер не использует таблицы предоставления. После перезагрузки таблиц вы можете изменить пароль root, как показано в разделе «Защита новой установки MySQL» ранее в этой главе.
После изменения пароля root вы можете снова выключить сервер и восстановить его, используя обычную процедуру запуска.
Если вы будете вынуждены завершить работу сервера с помощью kill-9 под UNIX или с помощью диспетчера задач под Windows, внезапный характер завершения работы не даст серверу возможности сбросить любые несохраненные изменения на диск.