От автора: девушка, у вас машина не заводится? Может «с толкача» попробуем? Я помогу! Не знаете, как это? «С толкача» заводили только сервер СУБД через cmd? Значит, как запустить MySQL через командную строку вы знаете, а автомобиль – даже не догадываетесь.
Мадмуазель, вы «странная» блондинка!.
Странности в описании MySQL
При подготовке каждой статьи мне приходится «основательно» шерстить интернет в поисках справочных материалов по той или иной «сайтостроительной» дисциплине. По большей части «наук» в Сети опубликовано множество подробных руководств и учебников, но только не по MySQL.
Конечно, есть достойные образовательные ресурсы, но в основной части по СУБД приводятся лишь примеры написания команд, и даже без указания синтаксиса. В такой ситуации любому «чайнику» понять, например, как подключиться к MySQL через командную строку, почти нереально.
Чтобы найти ответ новичку, придется перешерстить с десяток тематических форумов, где профессиональные разработчики (корча из себя чуть ли не «академиков») снизойдут до того, чтобы хоть что-то нормально пояснить начинающему.
Как запустить mysql в командной строке [ консоль ]
Стоит понимать, что настоящему админу следует знать все способы запуска и работы с сервером БД. Понятно, что программные оболочки – самый удобный метод, но ведь они не всегда могут оказаться «под рукой». Поэтому знание того, как включить MySQL через командную строку, не раз спасет и данные сайта, и вашу репутацию специалиста (если собираетесь заниматься веб-разработкой профессионально).
Онлайн курс «PHP-разработчик»
Изучите курс и создайте полноценный проект — облачное хранилище файлов
С нуля освоите язык программирования PHP, структурируете имеющиеся знания, а эксперты помогут разобраться с трудными для понимания темами, попрактикуетесь на реальных задачах. Напишете первый проект для портфолио.
Освоите PHP, MySQL, SQL, фрейсворк Laravel
Научитесь работать со стандартом REST и RESTful API
Упор на практику. Поддержка экспертов
Рассмотрим эту тему более подробно. И не корчите, пожалуйста, мины, если что-то из сказанного в данном материале покажется вам таким же простым, как заводить автомобиль «с толкача» :).
Запускаем cmd
Для запуска MySQL из командной строки сначала активируем саму утилиту (cmd), которая входит в стандартный набор Windows. Сделать это можно несколькими способами:
Клавиатурным сочетанием Win+R, а затем в появившемся диалоге «Выполнить» ввести cmd
Через панель «Пуск».
Кроме этого MySQL может поставляться с «родной» оболочкой. Например, если вы устанавливаете сервер БД на локальную машину как самостоятельное «приложение», которое не входит в набор для «джентльменов».
Родная MySQL командная строка запускается также как и обычная cmd. Отличие в работе обеих утилит проявится позже. Об этом мы поговорим в следующем разделе.
Установка MySQL 8 на Windows 10 – пошаговая инструкция для начинающих
Работа с командной строкой
Сначала разберемся со встроенной в операционную систему утилитой. Рассмотрим, как запустить MySQL из командной строки Windows. Для этого нужно:
Путь к папке в файловой системе ПК, куда вы установили сервер БД.
Учетная запись пользователя – логин и пароль.
Если вы работаете с Денвером, то исполняемый файл находится на виртуальном диске, который создается после запуска локального сервера, по этому пути: Z:usrlocalmysql-5.5bin
Как я уже сказал, командная строка MySQL в Denwer запускается через cmd OC. То есть, сначала запускаем ее, а затем прописываем путь к исполняемому файлу СУБД. Пароль и логин для доступа можно указывать сначала или потом после активации утилиты MySQL. Как по мне, то удобнее прописывать все сразу: Z:usrlocalmysql-5.5binmysql.exe -u root
Работа с сервером из консоли
1. Проверить, прописан-ли вызов сервера MySql в качестве службы Windows.
(Панель управления -> Система и безопасность -> Администрирование -> Службы -> musqld )
2. Если эта служба не прописана, то добавляем ее.
Добавление службы mysqld
Прописываем полный путь к утилите mysqld.exe в двойных кавычках:
«C:OSPanelmodulesdatabaseMySQL-5.7-x64binmysqld.exe»
—install «mysqld» ( назначаем имя службы — «mysqld»)
После этого указываем следующую команду (путь к файлу настроек):
—defaults-file=»C:OSPanelmodulesdatabaseMySQL-5.7-x64my.ini»
Жмем Enter и получаем:
Service successfully installed
C:UsersАдминистратор>
Удаление службы mysqld
Для удаление службы mysqld в командной строке пропишем:
C:UsersАдминистратор>sc delete mysqld [Enter]
— служба будет удалена
Запуск службы mysqld
Обновим вкладку » Службы » — появится новая служба — mysqld , в ее свойствах выбрать » Тип запуска: » — Вручную
Для того, чтобы запустить эту службу, запишем:
C:UsersАдминистратор>net start mysqld [Enter]
Жмем «Enter» и получаем:
Если обновим вкладку «Службы» — увидим, что служба mysqld — работает
Подключение к серверу
Для подключение к серверу небходимо указать путь к утилите mysql.exe :
C:UsersАдминистратор>C:OSPanelmodulesdatabaseMySQL-5.7-x64binmysql -u root [Enter]
Если указан пароль — -p :
C:UsersАдминистратор>C:OSPanelmodulesdatabaseMySQL-5.7-x64binmysql -u root -p [«Enter»]
Жмем «Enter» и будет запрошен пароль
Для того, чтобы не набирать постоянно путь к утилите, необходимо прописать путь .
Чтобы прописать путь выбираем:
-> свойства компьютера,
-> дополнительные параметры,
-> переменные среды,
-> в системных переменных находим Path (путь),
-> жмем «изменить»,
-> в изменении системной переменной мы идем в конец, добавляем точку с запятой и добавляем новый путь:
C:OSPanelmodulesdatabaseMySQL-5.7-x64bin ( оканчивается на bin )
Затем перезапускаем командную строку.
Теперь, чтобы подключится к серверу, достаточно написать:
C:UsersАдминистратор>mysql -u root [«Enter»]
Commands end with ; or g — команды окончания запроса ( точка с запятой или g ),
Your MySql connection id is 3 — номер нашего соединения с сервером — 3,
Введя h и нажав «Enter»- увидим список всех возможных команд,
c — очистить текущий оператор ввода.
exit; или q — выход из MySql
Выход из монитора mysql
Чтобы выйти из монитора:
mysql>exit; [«Enter»]
Bye
ЗАВЕРШЕНИЕ РАБОТЫ С СЕРВЕРОМ
Закрываем соединение и завершаем работу с сервером:
C:UsersАдминистратор>net stop mysqld [«Enter»]
Служба «mysqld» останавливается.
Служба «mysqld» успешно остановлена.
C:UsersАдминистратор>
КОМАНДЫ ДЛЯ РАБОТЫ НА СЕРВЕРЕ
Просмотр баз данных на сервере
Для того, чтобы посмотреть какие базы данных имется на сервере, можно воспользоваться следующей командой:
show databases; .
SQL — является языком регистронезависимым, и операторы принято писать в верхнем регистре:
SHOW DATABASES; ,
а имена баз данных, имена таблиц — пишутся в нижнем регистре.
Если произойдет ошибка: ERROR 2013 (HY000): lost connection to mysql during query (потеряно соединение с MySQL во время запроса), то можно попробовать увеличить connect_timeout в файле my.ini .
Рекомендуемое значение составляет 10 секунд.
Или набрать в консоли:
mysql> SET GLOBAL connect_timeout = 10;
Выбор базы данных
Для того, чтобы выбрать базу данных используется следующая команда:
mysql> use [нужная база данных] [точка с запятой не нужна]
— здесь точка с запятой не используется , поскольку use — не является оператором (командой) MySQL, а является командой консоли.
Просмотр таблиц в базе данных
mysql> show tables; [с точкой с запятой]
Источник: phpabstract.ru
1234ru / mysql-win.md
Нужно выбрать каталог, где MySQL будет хранить файлы баз данных и некоторые служебные файлы. Рекомендуется это сделать вне каталога сервера MySQL, т.к. файлы БД следует рассматривать независимо от конкретной инсталляции/версии.
Затем нужно создать файл my.ini , поместив его в корневой каталог сервера MySQL (т.е. рядом с bin и пр.; my.ini в корневом каталоге запуска сервер будет пытаться найти и прочитать автоматически). Содержимое файла должно быть следующим:
[mysqld] datadir = ‘D:/s/.mysql-datadir’ character_set_server = utf8 sql_mode = skip-networking = 1 named-pipe = 1 local_infile = 1 # С версии 8.0 skip_log_bin = 1 # С версии 8.0 против долгого waiting for handler commit при вставках # log-syslog = 0 # До версии 5.7 включительно [client] # mysql, mysqldump, mysqladmin user = someone password = «a password» pipe loose-local-infile = 1 # С версии 8.0 для LOAD DATA LOCAL INFILE [mysqldump] # С версии 8.0 # https://dba.stackexchange.com/a/273040 no-tablespaces = 1 # чтобы не нужна была привилегия PROCESS single-transaction = 1 # чтобы не нужна была привилегия LOCK TABLES
Указание datadir является обязательным. Без этого сервер не запустится. Обратный слэш ( ), стандартно используемый в путях Windows, интерпретируется как экранирующий и образующий управляющие последовательности ( n , s и др.) символ, поэтому его самого нужно экранировать или же использовать вместо него прямой слэш:
datadir = «D:\somedir\data» datadir = «D:/somedir/data»
Как правило, данные требуют хранения в кодировке UTF-8. Настройка character_set_server позволяет избежать явного указания кодировки при каждом случае создания базы данных или таблицы.
Если при запуске сервера возникают сообщения об ошибках насчет невомзожности записи в системный журнал событий Windows, можно добавить в my.ini запись log-syslog = 0 .
Все настройки сервера перечислены здесь и здесь.
Первый запуск mysqld — инициализация каталога данных
С версии 5.7 нужно проводить первичную инициализацию каталога данных, для чего при первом запуске служит специальный ключ:
mysqld —initialize
Может возникнуть сообщение от брандмауэра Windows, которому нужно указать соотв. разрешения.
Инициализировав каталог данных, сервер завершит работу и вернёт управление командной строке.
В каталоге данных среди прочих будет файл с расширением .err , где можно посмотреть журнал сервера и поискать сообщения об ошибках, если что-то пошло не так.
Второй запуск mysqld — установка пароля пользвателю root
При первом запуске сервера для рута был сгенерирован временный пароль (действительный только на одну сессию) и записан в err-файл. Вместо того, чтобы искать его там, удобнее лишний раз запустить сервер в режиме без проверки прав:
mysqld —skip-grant-tables
Этот режим позволит залогиниться под рутом без указания пароля, после чего по специальной процедуре установить желаемый пароль. Нужно выполнить следующие шаги:
Создание учетных записей, загрузка данных и дальнейшая работа
Теперь нужно создать учетные записи обычных пользователей и базы данных для них.
Для этого снова запускаем mysqld , уже без каких-либо дополнительных ключей, после чего соединяемся с ним с помощью клиента mysql от имени пользователя root . Теперь потребуется указать пароль:
mysql -u root -p
Далее создаем учетные записи пользователей и базы данных. Как правило, каждому пользователю выделяется своя база данных, к которой он получает полный доступ. Набор команд при этом следующий:
Упрощенный вариант: один пользователь (не root) с доступом ко всем базам — более подходящий вариант для локальной машины, за которой работает один человек и разделение прав доступа ни к чему. В таком случае первая команда выполняется только один раз.
Работа через named pipe
Сервер MySQL на компьютере разработчика обычно принимает соединения только с этого же компьютера. Такие соединения можно принимать через named pipe, а сетевой интерфейс сервера MySQL вообще закрыть за ненадобностью и по соображениям безопасности.
За включение named pipe и отключение сети отвечают две разных настройки (причем второе без первого не сработает). Запуск сервера с ними выглядит следующим образом:
mysqld —named-pipe —skip-networking
Или указать эти же опции в my.ini , чтобы запускать сервер без аргументов:
[mysqld] . named-pipe skip-networking
В каталоге данных появится файл .pid .
Как PHP под Windows, так и различные GUI для работы с базами данных (например, MySQL Workbench, однако не(!) JetBrains DataGrip) умеют устанавливать соединение через named pipe.
Утилитам командной строки ( mysql , mysqladmin и пр.) нужно указывать опцию —pipe .
Настройки для клиента ( [client] )
В конфигурационном файле также можно указать настройки для клиентских программ (например, чтобы не вводить каждый раз пароль и пр.).
В отличие от Linux, конфигурационный файл из домашнего каталога пользователя не читается. Список мест, откуда файлы будут прочитаны, можно посмотреть командой mysql —help (где-то в середине вывода будет фраза Default options are read from the following files in the given order). Можно указыать клиентские настройки в том же файле, что и настройки сервера:
[mysqld] . [client] user = someone password = «a password» pipe
Обновление сервера MySQL
- Повторяем пункты 1-3 из раздела Загрузка и подготовка к запуску. Пакет можно разместить в каталоге рядом с имеющимся, чтобы на всякий случай было две версии одновременно.
- Открываем командную строку и останавливаем текущую версию сервера: mysqld stop или mysqladmin -u root -pпароль shutdown
- Заменяем путь в переменной PATH .
- Копируем файл my.ini из старого каталога в новый.
- Даём команду на запуск, не забыв необходимые ключи. Например, mysqld —skip-networking —named-pipe . Первый запуск может проходить долго.
- Если возникает ошибка про файл с названием вида VCRUNTIME*.dll — значит, нужно обновить версию Microsoft Visual Studio. Скачиваем файл vc_redist.x64.exe с официального сайта Microsoft и запускаем его. После этого повторяем предыдущий пункт, всё должно пройти нормально.
- Если сервер все-таки не запускается (завершает работу и отдает управление в командной строке), нужно найти в файл с расширением *.err в каталоге для хранения данных и посмотреть, что там написано.
Один из вариантов решения проблемы — сначала запустить сервер с ключом —initialize , и после того, как он завершит работу, запустить его снова уже в штатном режиме.
*Замечено, что при обновлении с версии 5.7 при запуске над теми же данными (без перезаливки) сервер требует запуска два-три раза подряд, и только последний из них проходит успешно. - Выполняем запрос SELECT VERSION() , убеждаемся, что запущена обновлённая версия сервера.
Источник: gist.github.com