Подключение к базе данных MySQL
Другим способом управления табличными данными в IDE NetBeans является запуск внешнего сценария SQL напрямую в IDE. Если сценарий SQL был создан в другом местоположении его можно просто открыть в IDE NetBeans и запустить его в редакторе SQL.
Для наглядности загрузите файл ifpwafcad.sql и сохраните его на компьютере. Этот сценарий предназначен для создания двух таблиц, аналогичных только что созданным таблицам ( Counselor
и Subject
), и немедленного заполнения их данными.
Поскольку этот сценарий перезаписывает уже существующие таблицы, удалите Counselor
и Subject
, чтобы зафиксировать процесс создания таблиц при выполнении сценария. Удаление таблиц
Щелкните правой кнопкой мыши узлы таблиц
Counselor
иSubject
в проводнике баз данных, после чего выберите Delete («Удалить»).Нажмите кнопку Yes («Да») в диалоговом окне Confirm Object Deletion («Подтверждение удаления объекта»). Обратите внимание, что в диалоговом окне перечисляются таблицы, которые будут удалены.
При нажатии кнопки Yes («Да») в диалоговом окне Confirm Object Deletion («Подтверждение удаления объекта») узлы таблиц автоматически удаляются из проводника баз данных.
Выполнение сценария SQL в базе данных MyNewDatabase
В главном меню среды IDE выберите «Файл» > «Открыть». В браузере файлов перейдите к месту хранения
ifpwafcad.sql
и выберите команду «Открыть». Сценарий автоматически откроется в редакторе SQL.Убедитесь, что подключение к базе данных
MyNewDatabase
выбрано в раскрывающемся списке «Соединение» на панели инструментов в верхней части редактора.
Нажмите кнопку ‘Выполнить SQL’ () на панели инструментов редактора SQL. Сценарий будет выполнен для выбранной базы данных, возвращаемые данные будут выведены в окне «Вывод».
Чтобы проверить изменения щелкните правой кнопкой мыши узел подключения
MyNewDatabase
в окне ‘Среда выполнения’ и выберите ‘Обновить’. При выборе пункта «Обновить» компоненты интерфейса пользователя в проводнике данных будут приведены в соответствие с текущим состоянием указанной базы данных. Обратите внимание, что две новые таблицы из сценария SQL теперь отображаются как узлы таблицы в базе данных
обозревателя баз данных.Выберите ‘Просмотреть данные’ в контекстном меню выбранного узла таблицы для просмотра данных, содержащихся в новых таблицах. Таким образом можно сравнить данные в таблицах с данными сценария SQL, чтобы убедиться в их соответствии. Мы ждем ваших отзывов
mysql — Я не могу запустить MySQL Server and Workbench error
Я только что установил MySQL и MySQL Workbench.
После установки обоих я вижу значок «MySQL» в системных настройках. Но если я пытаюсь запустить MySQL Server, он запрашивает пароль, но ничего не происходит. Поэтому я попытался запустить MySQL Server из терминала с помощью следующей команды:
sudo /usr/local/mysql/support-files/mysql.server start
Но это дало мне эту ошибку:
Starting MySQL
.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/MBP.local.pid).
Кто-нибудь может мне помочь?
Раньше у меня не было проблем с запуском и остановкой MySQL, но я забыл пароль MySQL, поэтому мне пришлось удалить MySQL и установить его снова, потому что мне нужно было использовать Workbench. Но, очевидно, без пароля MySQL это не сработало. Есть ли у меня способ восстановить пароль?
1
Jackie 10 Май 2016 в 17:45
2 ответа
Лучший ответ
Проверить, существует ли уже процесс mysql
ps -ef | grep mysql
Если да, убейте процесс
kill -9 PID
илиkillall -9 mysql mysqld
- Убедитесь, что владельцем каталога данных mysql является
mysql:mysql
- Затем попробуйте запустить сервер mysql
sudo mysql. server start
- Если это не решит проблему. Тогда загляните в файл mysql
.err
Проверьте: MySql ERROR! Сервер завершил работу без обновления файла PID
0
Community 23 Май 2017 в 12:23
Строка sudo попытается запустить MySQL как root — плохая идея. Надеюсь, файл mysql.server был скопирован в /etc/init.d во время установки, поэтому все, что вам нужно сделать, это /etc/init.d/mysqld start
0
David Stokes 10 Май 2016 в 15:03
linux — Не могу запустить MySQL на Fedora 20
sudo service mysqld start
Я получаю это:
Redirecting to /bin/systemctl start mysqld.service
Job for mariadb.service failed. See 'systemctl status mariadb.service' and 'journalctl -xn' for details.
Я искал и нашел другую команду для запуска MySQL:
systemctl start mysqld.service
Эта вторая команда повторяет то же самое. Как это предполагает, я пытался:
systemctl status mariadb.service
Это дало некоторую информацию:
mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled) Active: failed (Result: exit-code) since Thu 2014-02-13 09:23:19 IRST; 13min ago Process: 22189 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=1/FAILURE) Process: 22188 ExecStart=/usr/bin/mysqld_safe --basedir=/usr (code=exited, status=1/FAILURE) Process: 22165 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS) Main PID: 22188 (code=exited, status=1/FAILURE) CGroup: /system.
slice/mariadb.service Feb 13 09:23:18 localhost.localdomain mariadb-prepare-db-dir[22165]: chmod: changing permissions of ‘/var/log/mariadb/mariadb.log’: Opera...mitted Feb 13 09:23:18 localhost.localdomain mysqld_safe[22188]: 140213 09:23:18 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'. Feb 13 09:23:18 localhost.localdomain mysqld_safe[22188]: 140213 09:23:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql Feb 13 09:23:18 localhost.localdomain mysqld_safe[22188]: /usr/bin/mysqld_safe: line 138: /var/log/mariadb/mariadb.log: Permission denied Feb 13 09:23:18 localhost.localdomain mysqld_safe[22188]: /usr/bin/mysqld_safe: line 182: /var/log/mariadb/mariadb.log: Permission denied Feb 13 09:23:18 localhost.localdomain mysqld_safe[22188]: 140213 09:23:18 mysqld_safe mysqld from pid file /var/run/mariadb/mariadb.pid ended Feb 13 09:23:18 localhost.localdomain systemd[1]: mariadb.service: main process exited, code=exited, status=1/FAILURE Feb 13 09:23:19 localhost.localdomain systemd[1]: mariadb.service: control process exited, code=exited status=1 Feb 13 09:23:19 localhost.localdomain systemd[1]: Failed to start MariaDB database server. Feb 13 09:23:19 localhost.localdomain systemd[1]: Unit mariadb.service entered failed state. Hint: Some lines were ellipsized, use -l to show in full.
Failed to start MariaDB database server.
Я не знаю точно, что такое MariaDB, поэтому я читал о некоторых различиях между MySQL и MariaDB, но это не помогло решить мою проблему. Подскажите, пожалуйста, что мне делать?
подключение удалённого сервера и синхронизация с ним
В первой части обзора программы MySQL Workbench я показал на примере основные принципы разработки модели данных и создания EER-диаграммы «сущность-связь». Пришло время применить MySQL Workbench в бою, поэтому сегодня я расскажу о создании подключения к удалённому серверу, выгрузке mwb модели на сервер, синхронизации обновлений схемы данных в процессе работы, а так же об управлении MySQL сервером с помощью программы MySQL Workbench.
Экспорт модели MySQL Workbench в SQL дамп
Самый быстрый путь для того, чтобы схема данных из MySQL Workbench попала на сервер — создание SQL дампа mwb модели. Для этого не потребуется создавать удалённое подключение в программе, однако этот способ хорош лишь в случае, если требуется однократная заливка структуры и базовых данных на сервер. Дальнейшая поддержка, обновление и синхронизация модели данных в этом случае будет весьма проблематична (хотя, в MySQL Workbench есть функционал и для этого, но он не входит в планы моего обзора). Итак, открываем нашу модель и выбираем
Если требуется записать дамп в файл, указываем путь до файла в поле «Output SQL Script File» (если оставить поле пустым, SQL скрипт можно будет скопировать на последнем шаге в буфер обмена). Мы видим окно настроек экспорта. Настройки стандартные, чтобы понять их суть, достаточно перевести их названия. Поясню только то, что галочка «Generate INSERT Statements for Tables» включает в дамп базовые данные, располагающиеся во вкладке «Inserts» интерфейса редактирования таблиц модели. После нажатия «Next» мы видим список того, что вообще можно экспортировать. Для экспорта таблиц выбираем «Export MySQL Table Objects», а чтобы экспортировать их выборочно, нажимаем «Show Filter» и выбираем нужные нам таблицы:
Нажав «Next» мы увидим в окне готовый SQL скрипт, откуда сможем скопировать его в буфер обмена или же записать в какой-либо файл.
Путей, которыми структура и данные попадут к вам на сервер масса, а самый распространённый из них — импорт через PHPMyAdmin.
Создание удалённого подключения к серверу MySQL
А вот это уже необходимо для постоянной работы с сервером. Советую не лениться и всегда создавать эти подключения — они дают массу новых возможностей!
На стартовом экране нажимаем плюсик рядом с надписью или выбираем «Database → Manage Connections…», в открывшемся окне нажимаем кнопку «New». MySQL Workbench предлагает три способа подключения к серверу: прямое подключение через пользователя, которому разрешён удалённый доступ к MySQL (обычно доступ таких пользователей ограничивают по ip), socket / pipe подключение через файл сокета (для Unix) или pipe (для Windows), а так же подключение через ssh-туннель (требует наличие ssh доступа и юзера ssh и MySQL с соответствующими правами). Рассмотрим варианты подключения к удалённому серверу:
Через удалённого пользователя MySQL (Standard: TCP/IP)
В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP»:
- В поле «Host» вводим адрес сервера MySQL или адрес сайта (если MySQL сервер находится на самом веб сервере)
- «Port» по умолчанию чаще всего 3306
- Вводим имя пользователя MySQL («Username»), пароль («Password») и имя базы данных («Default Schema»)
- После создания подключения нажимаем «Test Connection» и ждём сообщения «Connection parameters are correct.»
Если что-то пошло не так, проверяем, включен ли у нашего пользователя удалённый доступ, а так же наличие ip адреса нашего компьютера в списке разрешённых для данного юзера.
Через SSH туннель (TCP/IP over SSH)
В диалоговом окне создания подключения выбираем тип подключения «Standard: TCP/IP over SSH»:
- Тут нам придётся ввести адрес веб сервера («SSH Hostname») (порт, если нужно, указывается через двоеточие, например, «linuxsc.pro:18752»)
- Вводим логин и пароль SSH пользователя («SSH Username» и «SSH Password»)
- Адрес MySQL сервера нужно вводить относительно веб сервера, то есть в случае, если MySQL и веб сервер находятся на одной машине, в поле «MySQL Hostname» оставляем «127.0.0.1»
- «MySQL Server Port» по умолчанию 3306
- В поля «Username» и «Password» вводим логин и пароль пользователя MySQL
- Проверяем подключение при помощи кнопки «Test Connection»
Список доступных подключений можно просмотреть в диалоговом окне, выбрав «Database → Manage Connections…»
Синхронизация структуры данных
Для синхронизации структуры базы данных и локальной модели в MySQL Workbench существует специальный инструмент. Открыв нужную модель, выбираем «Database → Synchronize Model…» (Ctrl + Shift + G), после чего мы можем выбрать одно из сохранённых удалённых подключений и отредактировать его параметры. Жмём «Next» для подключения к базе данных:
После подключения к серверу и нажатия «Next» мы увидим список моделей (в левой колонке) и баз данных (в правой колонке), доступных для синхронизации:
Выбрав галочкой нужную базу и схему, нажимаем «Next», запуская процедуру сравнения структур удалённой базы данных и нашей модели:
После завершения процедуры мы можем увидеть список различий между нашей схемой данных и удалённой базой:
Тут мы можем настроить объединение таблиц: протолкнуть наши изменения на сервер («Update Source»), втянуть в локальную модель конфигурацию с сервера («Update Model») или игнорировать отличия («Ignore»). При чём, доступен как вариант настройки для всей базы, так и отдельно для каждой таблицы. При выделении одной из таблиц и выборе способа объединения мы можем видеть SQL запросы, которые выполнятся в процессе синхронизации, а нажав «Next» — увидим полный стек этих запросов:
Просмотрев SQL запросы, нажимаем «Execute >», запуская этим выполнение синхронизации. Если всё пройдёт успешно, мы увидим такой отчёт:
В случае возникновения ошибок их лог отобразится в этом же диалоговом окне. Некоторые из них разобраны в конце этой статьи 😉
Выгрузка на сервер схемы и стартовых данных
Описанная выше синхронизация осуществляет лишь объединение структуры схемы данных удалённой базы и локальной модели, но никак не затрагивает стартовые данные, внесённые в модель («Inserts»). Если требуется выгрузить их, выбираем «Database → Forward Engineer…» (Ctrl + G), затем выбираем одно из сохранённых ранее подключений (или создаём новое) и нажимаем «Next». В остальном механизм выгрузки аналогичен механизму экспорта mwb модели, описанному в начале статьи. Его можно так же использовать, если требуется простая выгрузка схемы данных на сервер без синхронизации.
Администрирование базы данных
MySQL Workbench может быть прекрасной альтернативой PHPMyAdmin и в администрировании данных. Потребуется лишь создать подключение к MySQL серверу. Поскольку я использую Workbench с самого старта разработки, настроенное подключение у меня уже имеется в наличии. Кликаем на нужное подключение на стартовом экране или выбираем «Database → Connect to Database…» (Ctrl + U) и выбираем подключение из списка.
Список доступных для редактирования баз данных можно увидеть в левой панельке в разделе «SCHEMAS». Открыв нужную базу данных, можно увидеть список таблиц в ней:
В правой же области мы можем видеть вкладки разных видов, к примеру, на скриншоте выше открыта вкладка составления SQL запроса, в которой есть масса полезных фишек и примочек, помогающих в его редактировании, которыми я, признаться, ни разу не пользовался 🙂 Выполнять запросы можно комбинацией клавиш Ctrl + Enter.
Для просмотра, создания или редактирования записей нажимаем на нужную таблицу правой кнопкой и выбираем «Select Rows — Limit 1000» или выполняем нужный для выборки SQL запрос:
В открывшейся вкладке мы увидим симпатичный и человекопонятный грид, в котором интуитивно и без труда сможем работать с данными. Протолкнуть изменения в базу можно при помощи кнопки «Apply», а отменить — кнопкой «Cancel» в нижней части вкладки редактора.
Управление сервером, создание и восстановление бэкапов
Создать backup базы данных очень просто, выбрав Server → Data Export при наличии активного подключения к удалённому серверу:
Крутизна, да? 🙂 Можно бэкапить как всю базу, так и по частям. Можно хранить все бэкапы удобно и упорядоченно. Блин, можно всё что хочешь!
Восстановить backup тоже проще простого. Выбираем Server → Data Import, находим нужный файл и не долго думая нажимаем «Start Import»:
В общем, да, в MySQL Workbench есть целая куча всего для управления сервером баз данных: управление пользователями и их правами, управление настройками сервера (если у вашего пользователя есть соответствующий доступ). К примеру, выбрав Server → Server Status, мы можем посмотреть такую вот классную статистику нагрузки на MySQL:
Такую красивую статистику просто скушать хочется! Приятно смотреть на такую эффективную эффективность моих ключей и индексов 🙂 А вот над буфером InnoDB нужно подумать.
Вместо заключения (о некоторых подводных камнях)
Вдохновившись, в заключении я хотел написать хвалебный отзыв о том, на сколько же крута MySQL Workbench. Однако уровень её крутизны, думаю, прослеживается на протяжении всего обзора, а вот о некоторых подводных неприятностях, с которыми мне пришлось столкнуться, стоит упомянуть.
Программа периодически подвисает или «падает»
Суть проблемы: некоторая неустойчивость MySQL Workbench прослеживалась у меня на разных компах с разными ОС. Видимо, разработчики о ней тоже знают — в процессе работы изменения записываются в *.bak файл, что не раз выручало меня после «падения».
Решение: почаще сохраняться 😉 Так же практика показывает, что лучше не тыкать беспорядочно на всё подряд, а перед следующим действием ожидать завершения предыдущего.
Ошибка «Error 1292: Incorrect date / datetime value» при синхронизации
Суть проблемы: чаще всего такая ошибка возникает при попытке синхронизации с таблицей, в которой есть запись со значением ‘0000-00-00’ или ‘0000-00-00 00:00:00’ в полях типа DATE или DATETIME соответственно. В некоторых случаях настройки MySQL позволяют создавать такие записи, но не позволяют редактировать схему таблицы.
Решение: вообще, при синхронизации или экспорте данных MySQL Workbench добавляет специальные запросы, как бы оборачивая основной SQL код:
Вчитавшись в этот код, начинаешь думать, что программа пытается решить эту проблему самостоятельно. Парадокс в том, что для решения проблемы эти строки нужно удалить:
# Удалить эту строку из начала SQL кода
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
...
# Удалить эту строку из конца SQL кода
SET SQL_MODE=@OLD_SQL_MODE;
Ошибка «Error 1005: Can’t create table ‘…’ (errno: 150)» при синхронизации
Суть проблемы: обычно эта ошибка касается неправильной настройки внешних ключей (вкладка «Foreign Keys» в настройках таблиц). У меня она возникала в том случае, если я делал ключом поле с меткой NOT NULL, а в поведении внешнего ключа указывал SET NULL — это абсурд, ведь InnoDB не сможет установить значение NULL в поле, где такое значение запрещено.
Решение: внимательно следим за настройкой поведения внешних ключей. Если необходимо поведение SET NULL, у поля-ключа в дочерней таблице не должен стоять флаг NOT NULL.
Ошибка «Field … can not be null» при выгрузке стартовых данных
Суть проблемы: независимо от настроек таблицы, все поля в «Inserts» имеют по умолчанию значение NULL, даже если такое значение не разрешено для данного поля. Соответственно, при выгрузке на сервер может возникнуть ошибка.
Решение: при добавлении стартовых данных следим за тем, чтобы значение NULL оставалось лишь в тех полях, где это разрешено. Если нужно сделать поле пустой строкой, делаем финт ушами: ставим в него курсор, нажимаем пробел, затем стираем его (во всяком случае, я не придумал ничего получше на такой случай :)).
Ошибка Сan’t connect to MySQL server on .
.. (10061) при подключенииСуть проблемы: говорят, что может быть несколько причин. Я встечал такую ошибку в случае, если в файле my.cnf была установлена настройка «skip-networking» — по сути она не даёт MySQL работать с сетью.
Решение: закомментировать данную опцию:
# skip-networking
Конец
Итак, мой обзор программы MySQL Workbench в двух частях (кстати, первую часть можно найти тут) подходит к концу. Буду рад, если читатель почерпнет для себя в нём что-то полезное или интересное 🙂
Приятной разработки!
Подключение и запрос — одиночный сервер MySQL
- Чтение занимает 2 мин
В этой статье
В следующем документе приведены ссылки на примеры, демонстрирующие подключение и выполнение запросов к серверу базы данных Azure для MySQL.The following document includes links to examples showing how to connect and query with Azure Database for MySQL Single Server. В этом руководством также содержатся рекомендации и библиотеки TLS, которые можно использовать для подключения к серверу на поддерживаемых языках.This guide also includes TLS recommendations and libraries that you can use to connect to the server in supported languages below.
Краткие руководстваQuickstarts
Краткое руководствоQuickstart | ОписаниеDescription |
---|---|
MySQL WorkbenchMySQL workbench | В этом кратком руководстве показано, как использовать клиент MySQL Workbench для подключения к базе данных. This quickstart demonstrates how to use MySQL Workbench Client to connect to a database. Затем можно использовать операторы MySQL для запроса, вставки, обновления и удаления данных в базе данных.You can then use MySQL statements to query, insert, update, and delete data in the database. |
Azure Cloud Shell;Azure Cloud Shell | В этой статье показано, как запустить mysql.exe в Azure Cloud Shell , чтобы подключиться к серверу, а затем выполнить инструкции для запроса, вставки, обновления и удаления данных в базе данных.This article shows how to run mysql.exe in Azure Cloud Shell to connect to your server and then run statements to query, insert, update, and delete data in the database. |
MySQL с Visual StudioMySQL with Visual Studio | Для подключения к серверу MySQL можно использовать MySQL для Visual Studio.You can use MySQL for Visual Studio for connecting to your MySQL server. MySQL для Visual Studio интегрируется непосредственно в обозреватель сервера упрощает настройку новых соединений и работу с объектами базы данных.MySQL for Visual Studio integrates directly into Server Explorer making it easy to setup new connections and working with database objects. |
PHPPHP | В этом кратком руководстве показано, как с помощью PHP создать программу для подключения к базе данных и использовать инструкции MySQL для запроса данных.This quickstart demonstrates how to use PHP to create a program to connect to a database and use MySQL statements to query data. |
JavaJava | В этом кратком руководстве показано, как использовать Java для подключения к базе данных, а затем с помощью инструкций MySQL запрашивать данные.This quickstart demonstrates how to use Java to connect to a database and then use MySQL statements to query data. |
Node.jsNode.js | В этом кратком руководстве показано, как с помощью Node.js создать программу для подключения к базе данных и использовать инструкции MySQL для запроса данных. This quickstart demonstrates how to use Node.js to create a program to connect to a database and use MySQL statements to query data. |
.NET (C#).NET(C#) | В этом кратком руководстве показано, как use.NET (C#) создать программу на C# для подключения к базе данных и использовать инструкции MySQL для запроса данных.This quickstart demonstrates how to use.NET (C#) to create a C# program to connect to a database and use MySQL statements to query data. |
GOGo | В этом кратком руководстве показано, как использовать Go для подключения к базе данных.This quickstart demonstrates how to use Go to connect to a database. Также демонстрируется применение инструкций Transact-SQL для запроса и изменения данных.Transact-SQL statements to query and modify data are also demonstrated. |
PythonPython | В этом кратком руководстве показано, как использовать Python для подключения к базе данных и использования операторов MySQL для запроса данных.This quickstart demonstrates how to use Python to connect to a database and use MySQL statements to query data. |
RubyRuby | В этом кратком руководстве показано, как использовать Ruby для создания программы для подключения к базе данных и использования операторов MySQL для запроса данных.This quickstart demonstrates how to use Ruby to create a program to connect to a database and use MySQL statements to query data. |
C++C++ | В этом кратком руководстве показано, как использовать C++ + для создания программы для подключения к базе данных и использования данных запроса.This quickstart demonstrates how to use C+++ to create a program to connect to a database and use query data. |
Рекомендации по использованию протокола TLS для подключения к базе данныхTLS considerations for database connectivity
Протокол TLS используется всеми драйверами, предоставляемыми или поддерживаемыми корпорацией Майкрософт для подключения к базам данных Azure для MySQL. Transport Layer Security (TLS) is used by all drivers that Microsoft supplies or supports for connecting to databases in Azure Database for MySQL. Специальная настройка не требуется, но необходимо применить TLS 1,2 для вновь созданных серверов.No special configuration is necessary but do enforce TLS 1.2 for newly created servers. Мы рекомендуем использовать TLS 1,0 и 1,1, а затем обновить версию TLS для серверов.We recommend if you are using TLS 1.0 and 1.1, then you update the TLS version for your servers. См. раздел Настройка TLS .See How to configure TLS
БиблиотекиLibraries
База данных Azure для MySQL использует самый популярный выпуск Community Edition базы данных MySQL.Azure Database for MySQL uses the world’s most popular community edition of MySQL database. Таким образом, он совместим с широким спектром языков программирования и драйверов.Hence, it is compatible with a wide variety of programming languages and drivers. Цель этого руководства — обеспечить поддержку трех последних версий драйверов MySQL и взаимодействие с сообществом разработчиков открытого кода, чтобы постоянно улучшать функциональность и удобство использования драйверов MySQL.The goal is to support the three most recent versions MySQL drivers, and efforts with authors from the open source community to constantly improve the functionality and usability of MySQL drivers continue.
Узнайте, какие драйверы совместимы с сервером базы данных Azure для MySQL.See what drivers are compatible with Azure Database for MySQL Single server.
Дальнейшие действияNext steps
Установка и настройка mysql в Ubuntu
Всем привет. Сегодня мы установим mysql в ubuntu. Если следовать простой инструкции, то сложностей точно не возникнет. Итак, можно смело приступать.
- Процесс установки
- Неожиданная ошибка после настройки can’t connect to local Mysql Server
- Процесс настройки mysql
- Настройка прав и привилегий
- Создание нового пользователя
Процесс установки
sudo apt update
sudo apt install mysql-server -y
-y означает то, что вы будете отвечать согласием на все команды, таким образом, все установится без вашего участия. Можете не волноваться, если вы запускаете эту команду. Ведь наверняка вы хотите установить mysql, какие могут быть еще вопросы ? =)
Неожиданная ошибка после настройки can’t connect to local Mysql Server
sudo mysql_secure_installation
По факту это помощник в установке, который настроит всю систему на основе ваших ответов.
Возможно после запуска вы столкнетесь с ошибкой
Error: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
Я столкнулся. Что значит эта ошибка? Сокета либо нет, либо к нему нет доступа. Поэтому идем в папку:
cd /var/run/mysqld
и там действительно пусто. Сокета там нет. Создается он в процессе запуска mysql. Поэтому проверим статус сервиса, следующей командой:
sudo service mysql status
* MySQL is stopped.
Давайте его запустим:
sudo service mysql start
* Starting MySQL database server mysqld
Проверим статус:
sudo service mysql status
Можете еще зайти в папку /var/run/mysqld/. Там вы увидите сокет.
Обратите внимание, с какими правами и под каким пользователем запущен сокет. Часто из-за нехватки прав может быть такая же ошибка
Процесс настройки mysql
Запускаем опять:
sudo mysql_secure_installation
Первый вопрос, который вам зададут: VALIDATE PASSWORD PLUGIN. Это плагин, который позволит определить надежность вашего будущего пароля. Я бы нажал Y. Не вижу в нем ничего плохого. Смело устанавливаем.
Далее вам будет предложено выбрать сложность этого пароля. Смотрите сами: если хотите “поиграться” или делаете mysql для локальной разработки — берите попроще, если это продакшн — только максимальный.
Теперь вам нужно ввести пароль и подтвердить его, а после — согласиться с вводом. Здесь можно задать что-то простое и запоминающееся. Все-равно мы будем менять пароль позже.
В mysql есть анонимные пользователи, которые могут подключаться без аккаунта. Их система предлагает удалить — соглашаемся
В целях безопасности запрещаем подключение к бд с других серверов. отвечаем — Y
Удаляем тестовую базу. Отвечаем — Y
Перезагружаем таблицу с привилегиями. Отвечаем — Y
Если все пройдет хорошо, то в конце вы получите сообщение:
All done!
Настройка прав и привилегий
В mysql с версии 5.7 авторизация root пользователя проходит не через пароль, а посредством auth_socket. То есть, если вы выполните команду:
sudo mysql
то сможете легко попасть в интерфейс программы:
Давайте все же настроим так, чтобы пользователь root мог выполнить вход только по паролю.
Для этого введем следующую команду:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Чтобы поменять auth_socket на mysql_native_password, нам потребуется выполнить следующую команду. Только не забудьте поменять слово “password” на сильный пароль
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Query OK, 0 rows affected (0.00 sec)
Закрепляем все изменения командой:
FLUSH PRIVILEGES;
Запустим команду для проверки плагина авторизации еще раз:
SELECT user,authentication_string,plugin,host FROM mysql.user;
Теперь вы должны увидеть там mysql_native_password
вводим команду:
exit
А теперь давайте занова попробуем подключиться:
sudo mysql
Вероятнее всего, вы получите ошибку:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
Чтобы подключиться к бд, необходимо использовать пару “логин-пароль”:
sudo mysql -u root -p
Создание нового пользователя
Теперь я рекомендую вам создать нового пользователя, который будет работать с нужной ему базой данных. По аналогии, вместо слова password задаем пароль:
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
Теперь давайте выйдем:
exit
Зайдите сначала под root, а потом пользователем user и поочередно выполните команду:
show databases;
вот что видит root:
А что user:
У user‘a список меньше. Давайте дадим ему привилегии. Заходим под пользователем root:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Данными командами мы даем все права пользователю user. Можете почитать более подробно про эту команду. Фактически вы можете дать права на 1 базу на определенный перечень команд.
Теперь, если вы зайдете под пользователем user, то увидите весь список баз данных:
Заключение.
В целом, на этом настройка mysql заканчивается. У вас есть рабочая mysql 5.7 и пользователь с максимальными правами. Что еще для счастья надо? 🙂
MySQL и командная строка | DrupalSPB.org
Вам когда-нибудь приходилось работать с MySQL через командную строку? Случается, что под рукой не оказывается ни phpMyAdmin, ни HeidiSQL, например, когда приходится заходить на сервер клиента по SSH, не имея возможность установить какой-либо софт. В таких случаях выручает командная строка, она же консоль.
Я пользуюсь консолью постоянно и собираюсь показать вам несколько трюков при работе с MySQL.
Основы
Работа с MySQL всегда начинается с авторизации. И здесь все невероятно просто, вам нужно всего лишь передать ваш логин и пароль параметрами командной строки.
mysql –uUSERNAME –pPASSWORD
Таким образом, вы открываете сеанс работы с MySQL сервером.
Так вы можете просмотреть список всех баз данных:
SHOW DATABASES;
Не забывайте ставить точку с запятой в конце каждой команды, это говорит серверу, что команда закончена.
Переключиться на нужную базу данных можно, используя команду USE:
USE database;
Ну и, конечно, посмотреть, что же внутри таблиц находится, можно командой SELECT:
SELECT * FROM table;
Выйти из сеанса работы еще проще, чем зайти:
EXIT
Дальше я приведу несколько примеров работы через консоль.
Экспорт базы данных в файл
mysqldump –uUSERNAME –pPASSWORD DATABASE > DATABASE.sql
Импорт базы данных из файла
mysql –uUSERNAME –pPASSWORD DATABASE < DATABASE.sql
Запуск MySQL запроса из консоли
mysql -uUSERNAME -pPASSWORD -e "SHOW DATABASES;"
Запуск произвольной команды из сеанса MySQL под Linux
На десерт очень занимательная возможность, которая, я уверен, понравится как новичкам, так и профи – запуск любых команд и приложений прямо из сеанса MySQL.
Заливаем дамп базы из файла в базу, не выходя из сеанса MySQL:
mysql> \! mysql –uUSERNAME –pPASSWORD DATABASE < DATABSE.sql
Выводим список процессов Linux:
mysql> \! top
Оценим объем логических разделов жесткого диска:
mysql> \! df -h
Надеюсь, теперь вы по-новому взглянули на MySQL и получили несколько степеней свободы в работе с этой замечательной СУБД без использования дополнительных приложений.
Эта статья написана с использованием WYSIWYG редактора, который мы включили совсем недавно.
Как видите, у него достаточно возможностей для полноценной работы.
А возможность сохранять статью как черновик позволит писать в несколько подходов, не боясь потерять предыдущие наработки.
Призываю писать и делиться опытом!
Как запустить и остановить MySQL вручную в OS X El Capitan и Yosemite
Многим разработчикам требуется MySQL на своих компьютерах Mac, но если вы пытались установить MySQL в OS X El Capitan и Yosemite, вы, вероятно, заметили, что во время процесса вы получите ошибку «установка не удалась». Эта ошибка звучит хуже, чем есть на самом деле, потому что вы можете полностью избежать ее, решив не устанавливать элемент автозагрузки, включенный в пакет MySQL, или вы можете просто проигнорировать ошибку установки и запустить MySQL самостоятельно, когда вам это нужно.В любом случае MySQL на самом деле устанавливается нормально, просто не работает связанный элемент автозагрузки. Как вы, наверное, догадались, это означает, что вам нужно будет запускать и останавливать MySQL самостоятельно.
Да, устанавливается панель предпочтений, которая позволяет использовать графический интерфейс, но многие пользователи предпочитают использовать для этой цели командную строку, поскольку многие из нас все равно работают в Терминале, и есть дополнительная возможность автоматизации.
Запуск, остановка, перезапуск MySQL в Mac OS X
Hre — это три основные команды для запуска, остановки и перезапуска MySQL в Mac OS X, включая OS X El Capitan и OS X Yosemite.Обязательно введите команду в одну строку, sudo, очевидно, требует ввода пароля администратора.
Запустить MySQL
sudo /usr/local/mysql/support-files/mysql.server start
Остановить MySQL
sudo /usr/local/mysql/support-files/mysql.server stop
Перезапустить MySQL
sudo /usr/local/mysql/support-files/mysql.server restart
Конечно, их можно комбинировать с запуском и остановкой сервера Apache, если вы собираетесь настроить локальную среду веб-разработки.
Вы можете скачать последнюю версию MySQL для Mac OS X здесь. Будущие версии установщика MySQL, несомненно, исправят это для OS X, но тем временем, если вы получите сообщение об ошибке установки, либо настройте программу установки и избегайте элемента автозагрузки, либо проигнорируйте ошибку и запустите и остановите mysql самостоятельно, когда это необходимо.
Заинтересованные лица также могут воспользоваться обходным путем, опубликованным в StackOverflow здесь, для автоматической загрузки MySQL при загрузке в OS X El Capitan или Yosemite.
Запуск, остановка, перезапуск MySQL из панели настроек Mac OS
Конечно, вы также можете запускать и останавливать сервер MySQL из связанной панели предпочтений.Для этого просто перейдите в меню Apple и откройте «Системные настройки». Выберите панель предпочтений «MySQL», затем нажмите кнопку «Запустить сервер MySQL», чтобы запустить сервер MySQL на Mac. Если сервер уже запущен, кнопка изменится на «Остановить сервер MySQL». Если вы хотите перезапустить сервер, просто нажмите, чтобы выключить его, подождите минуту или около того, а затем снова включите его. Это будет простой подход для многих пользователей Mac, хотя вам придется возиться с панелью pref по мере необходимости, и если вы пойдете по этому пути, вы захотите снять флажок с опции автозапуска, потому что он выйдет из строя.
В настоящее время я неравнодушен к подходу с использованием командной строки, но использую то, что наиболее подходит для вашей ситуации.
Между прочим, эти методы управления сервером mySQL продолжают работать и в MacOS Sierra.
СвязанныеMySQL — установка — Как запустить и выключить сервер MySQL в системе Unix?
Есть несколько способов, которыми можно запустить сервер MySQL. Чтобы запустить демон вручную в любой операционной системе, в которой установлен сервер MySQL, введите mysqld из командной строки.Чтобы запустить его вручную в системе Unix, в командной строке можно ввести что-то вроде следующего:
mysqld -user = mysql &
В этой строке используется пользователь файловой системы mysql . Запуск демона mysqld от имени root — плохая безопасность. Амперсанд в конце строки указывает оболочке отправить процесс в фоновый режим.
Одна из проблем с запуском демона сервера MySQL напрямую заключается в том, что если он выйдет из строя, вы можете не знать об этом, пока пользователь не пожалуется.Чтобы быть уверенным в автоматическом перезапуске демона, используйте сценарий mysqld_safe.
mysqld_safe &
Предполагается, что пользователь mysql с этим сценарием. Таким образом, вам не нужно указывать пользователя. Этот скрипт будет работать в фоновом режиме по амперсанду. В свою очередь, он запустит несколько экземпляров mysqld для прослушивания клиентских запросов на TCP / IP-порту 3306 для доступа к серверу MySQL. Пользователи не взаимодействуют с mysqld_safe.Если сервер MySQL выйдет из строя, mysqld_safe перезапустит mysqld. Кстати, в более старых версиях MySQL mysqld_safe назывался safe_mysqld.
Другой метод запуска сервера — использование сценария mysql.server. Его можно найти в каталоге, где установлен MySQL. В системе Unix он обычно находится в каталоге / usr / share / mysql. Чтобы использовать этот сценарий, параметр запуска, остановки или перезапуска может быть задан следующим образом:
/ USR / доля / MySQL / MySQL.запуск сервера
Если MySQL еще не настроен на автоматический запуск при запуске системы, этот файл можно скопировать в подкаталог init.d в каталоге / etc. Этот каталог содержит сценарии для демонов, которые должны быть инициализированы при запуске. Чтобы скопировать сценарий mysql.server в исходный каталог, в командной строке можно ввести что-то вроде следующего:
cp /usr/share/mysql/mysql.server /etc/init.d/mysql chmod + x / etc / init.d / mysql
Обычно файл сервера переименовывается в mysql, когда он находится в подкаталоге init.d. Этот же файл будет использоваться для завершения работы сервера MySQL при выключении системы. В некоторых системах Linux подкаталог init.d находится в /etc/rc.d. В этом случае необходимо будет отрегулировать указанную выше строку cp. Вторая строка выше добавляет к файлу права на выполнение для всех пользователей.
В системах FreeBSD каталог /usr/local/etc/rc.d используется для начальных сценариев демона.Подкаталог init.d отсутствует. В некоторых версиях Linux служебная команда может использоваться для запуска или остановки службы MySQL. Это должно быть введено так:
запуск службы mysql
Это фактически запустит сценарий mysqld_safe. Использование параметра stop остановит как демон mysqld, так и сценарий mysqld_safe.
Если ваш сервер использует несколько серверов, их можно запустить с помощью скрипта mysqld_multi.Чтобы не приходилось каждый раз вводить параметр —user из командной строки, в файл конфигурации MySQL можно добавить следующую строку (т.е. /etc/my.cnf):
пользователь = MySQL
Эта простая строка может входить в группу [mysqld] в файле конфигурации. Если вы используете mysqld_safe для запуска сервера, он может находиться в группе [mysqld_safe].
MySQL Docker Containers: понимание основ
Docker быстро становится популярным как метод упаковки и развертывания самодостаточных приложений в основном в контейнерах Linux без сохранения состояния.Но для сервиса с отслеживанием состояния, такого как база данных, это может быть немного головной болью. Как лучше всего настроить MySQL в контейнерной среде? Что может пойти не так? Должны ли мы вообще запускать наши базы данных в контейнерной среде? Как производительность сравнивается, например, с работает на виртуальных машинах или на голых серверах? Как мы управляем реплицированными или кластерными установками, когда необходимо создать, обновить и сделать несколько контейнеров высокодоступными?
Итак, добро пожаловать в нашу новую серию блогов — «MySQL on Docker».Мы коснемся роев, общих томов, контейнеров только для данных, управления безопасностью и конфигурацией, сетей с несколькими хостами, обнаружения сервисов и последствий для мониторинга, когда мы перейдем от сервисов, ориентированных на хост, к услугам, ориентированным на роли, с более короткими жизненными циклами.
В нашем первом посте в блоге мы рассмотрим некоторые основы работы MySQL в контейнере. Мы собираемся использовать термин «Docker» в качестве контейнерной платформы на протяжении всей серии блогов.
Контейнеры MySQL Docker
Контейнер можно рассматривать как «легкую виртуальную машину».Однако, в отличие от виртуальных машин, контейнерам не требуется вся операционная система, все необходимые библиотеки и фактические двоичные файлы приложений. Одно и то же ядро и библиотеки Linux могут совместно использоваться несколькими контейнерами, запущенными на хосте. Docker упрощает упаковку программного обеспечения Linux в автономные образы, в которых все зависимости программного обеспечения объединяются и развертываются повторяющимся образом. В образе будет установлено точно такое же программное обеспечение, независимо от того, запускаем ли мы его на ноутбуке или на сервере. Ключевым преимуществом Docker является то, что он позволяет пользователям упаковать приложение со всеми его зависимостями в стандартизированный модуль (контейнер).Запуск множества контейнеров позволяет каждому сосредоточиться на конкретной задаче; затем несколько контейнеров работают совместно, чтобы реализовать распределенную систему.
Традиционный способ запуска базы данных MySQL — это установка пакетов MySQL на хост («голое железо», виртуальная машина, облачный экземпляр), и приложениям просто нужно будет подключиться к порту прослушивания. Большинство задач управления, например настройка конфигурации, резервное копирование, восстановление, обновление базы данных, настройка производительности, устранение неполадок и т. Д., Должны выполняться на самом хосте базы данных.Ожидается, что для подключения будет доступно несколько портов, например порт TCP 22 для SSH, TCP 3306 для MySQL или UDP 514 для системного журнала.
Представьте MySQL в контейнере как одну единицу, которая обслуживает только связанные с MySQL вещи на порту 3306. Большая часть операций должна выполняться в этом единственном канале. Docker отлично справляется с упаковкой вашего приложения / программного обеспечения в один модуль, который затем можно развернуть где угодно, если установлен механизм Docker. Ожидается, что пакет или образ будет запущен как отдельный процесс для каждого контейнера. С Docker вы (или кто-то другой) создаете образ MySQL, используя определенную версию и поставщика, упаковываете образ и раздаете всем, кто хочет быстро запустить экземпляр MySQL.
Давайте запустим
Давайте познакомимся с контейнером MySQL, работающим на Docker. Мы воспользуемся подходом «сломать / исправить», поэтому ожидайте появления некоторых ошибок то тут, то там. Мы рассмотрим ошибки и выясним, почему они случаются. Мы собираемся использовать официальный образ MySQL, созданный и поддерживаемый Docker.
Для начала у нас должен быть хост. Это могут быть хосты любого типа (физические или виртуальные), работающие в Linux, Mac OS X или Windows. Подробную информацию см. В руководстве по установке Docker. Вы также можете использовать docker-machine для предоставления хостов на поддерживаемом облачном провайдере, таком как DigitalOcean и AWS EC2 Container Service, но мы расскажем об этом в другом сообщении блога. Здесь мы собираемся использовать Ubuntu 14.04 в качестве хоста нашей машины и использовать стандартную командную строку для развертывания и управления.
Затем найдите нужный образ контейнера в реестре Docker.Это может быть общедоступный реестр, такой как Docker Hub, или частный реестр, в котором вы размещаете образ контейнеров локально в своей собственной сети. Если вы не можете найти образ, который вам подходит, вы можете создать свой собственный.
В реестре Docker Hub доступно множество образов контейнеров MySQL. На следующем снимке экрана показаны некоторые примеры:
Запуск контейнера MySQL
Во-первых, вам нужно установить Docker. В ящике Linux:
$ sudo apt-get install docker. io # Ubuntu / Debian
$ yum install docker # RedHat / CentOS
Затем используйте следующую базовую команду для запуска контейнера MySQL:
$ запуск докера --name = test-mysql mysql
Ага, вот и все. Всего два шага. Вот что делает вторая командная строка:
- run — Выполнить команду в новом контейнере.
- —name — Дать имя контейнеру. Если вы не укажете это, Docker сгенерирует случайное имя.
- mysql — Имя образа, указанное на странице Docker Hub.Это простейшее название изображения. Стандартным является «имя пользователя / имя_образа: тег», например «несколько девяти / mysql: 5.6». В данном случае мы указали «mysql», что означает, что у него нет имени пользователя (образ создается и поддерживается Docker, поэтому имя пользователя отсутствует), имя образа — «mysql», а тег — последний (по умолчанию). Если образ не существует, он сначала извлечет его из Docker Hub на хост, а затем запустит контейнер.
Вы должны увидеть следующие строки:
Статус: загружено более новое изображение для mysql: последнее
ошибка: база данных не инициализирована и не указан пароль
Вам необходимо указать один из MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD и MYSQL_RANDOM_ROOT_PASSWORD
Похоже, развертывание контейнера завершилось неудачно.Давайте проверим с помощью следующей команды, есть ли запущенный контейнер:
$ докер пс
Нет работающего контейнера. Покажем все контейнеры (в том числе неработающие):
$ docker ps -a
КОНТЕЙНЕР ИДЕНТИФИКАЦИЯ ИЗОБРАЖЕНИЕ КОМАНДА СОЗДАНО СОСТОЯНИЕ ИМЕНА ПОРТОВ
80b4914976a2 mysql: latest "docker-entrypoint.s 6 минут назад Завершено (1) 6 минут назад test-mysql
В столбце «СОСТОЯНИЕ» вы можете увидеть, что статус был «Выход (1) 6 минут назад».Если программа завершилась с возвратом ненулевого значения, это означает, что программа была завершена с какой-то ошибкой. Так что случилось? Образ MySQL был успешно загружен, но Docker не смог запустить его как контейнер, поскольку среда не настроена должным образом. Об этом говорится в строках ошибок.
Попробуем исправить это, указав одну из переменных среды:
$ docker run --name = test-mysql --env = "MYSQL_ROOT_PASSWORD = mypassword" mysql
FATA [0000] Ответ от демона об ошибке: Конфликт.Имя «test-mysql» уже используется контейнером 80b4914976a2. Вы должны удалить (или переименовать) этот контейнер, чтобы иметь возможность повторно использовать это имя.
К сожалению, произошла еще одна ошибка. Мы пытались запустить новый контейнер с тем же именем, что и у существующего. Удалим созданный контейнер и снова запустим команду:
$ docker rm тест-mysql
$ docker run --name = test-mysql --env = "MYSQL_ROOT_PASSWORD = mypassword" mysql
Вы должны увидеть много строк.Это инициализация MySQL при запуске в качестве недавно установленного программного обеспечения. Вы должны увидеть, что MySQL готов принимать соединения:
2016-06-01T12: 06: 59.543352Z 0 [Примечание] mysqld: готов к подключению.
Версия: '5.7.12' сокет: '/var/run/mysqld/mysqld.sock' порт: 3306 Сервер сообщества MySQL (GPL)
Выглядит хорошо. Наш контейнер MySQL теперь запущен. Однако теперь вы застряли в терминале и ничего не можете сделать, потому что контейнер работает в режиме присоединения (работает на переднем плане).Это так неудобно. Мы ожидаем, что вместо этого MySQL будет работать как служба. Давайте рассмотрим это как неудачное развертывание и остановим текущий контейнер. В другом терминале остановите работающий контейнер и снова запустите его в режиме отсоединения (работает в фоновом режиме):
$ docker stop test-mysql
$ Docker RM тест-MySQL
$ docker run --detach --name = test-mysql --env = "MYSQL_ROOT_PASSWORD = mypassword" mysql
a6b09a8d332a16e008cb3035ffd36bcd664886b79c9d2533c3dc1d47026a33a0
Вы получите вывод идентификатора контейнера, указывающий, что контейнер успешно работает в фоновом режиме. Проверим статус контейнера:
$ докер пс
КОНТЕЙНЕР ИДЕНТИФИКАЦИЯ ИЗОБРАЖЕНИЕ КОМАНДА СОЗДАНО СОСТОЯНИЕ НАЗВАНИЯ ПОРТОВ
83285aa548ba mysql: latest "docker-entrypoint.s 4 минуты назад Up 4 минуты 3306 / tcp test-mysql
Контейнер MySQL теперь запущен и доступен через порт 3306 этого контейнера. Поскольку он работал в фоновом режиме, мы не могли видеть, что происходило во время запуска MySQL.Используйте следующую команду, чтобы узнать, что произошло во время запуска контейнера:
$ журналы докеров test-mysql
Подключение к контейнеру
Затем мы получаем IP-адрес этого контейнера, чтобы получить к нему доступ. Запустите команду inspect:
$ докер проверить тест-mysql
Мы можем видеть много низкоуровневой информации об этом контейнере. Найдите строку «IPAddress»:
«IP-адрес»: «172.17.0.20 ",
Теперь с физического хоста мы можем получить доступ к серверу MySQL. Убедитесь, что пакет клиента MySQL установлен заранее:
$ apt-get установить mysql-client
$ mysql -uroot -pmypassword -h 172.17.0.20 -P 3306
Добро пожаловать в монитор MySQL. Команды заканчиваются на; или \ g.
Ваш идентификатор подключения MySQL - 2
Версия сервера: 5.7.12 Сервер сообщества MySQL (GPL)
Авторские права (c) 2000, 2016, Oracle и / или ее дочерние компании. Все права защищены.
Oracle является зарегистрированным товарным знаком Oracle Corporation и / или ее
филиалы.Другие названия могут быть товарными знаками соответствующих
собственники.
Введите "помощь"; или '\ h' для помощи. Введите '\ c', чтобы очистить текущий оператор ввода.
MySQL>
Вуаля! Теперь у нас есть экземпляр MySQL, работающий в контейнере. Однако этот порт доступен только в сети Docker. Если у вас есть другой контейнер Docker для вашего приложения, вы можете подключиться к нему напрямую через IP-адрес 172.17.0.20 на порт 3306, как показано на следующей диаграмме:
Docker выделяет динамический IP-адрес каждому запущенному контейнеру. Каждый раз при перезапуске контейнера вы получаете новый IP-адрес. Вы можете получить диапазон IP-адресов из сетевого интерфейса Docker в окне Linux. Выполните следующую команду, чтобы увидеть диапазон сети Docker:
$ ip а | grep docker | grep inet
inet 172.17.42.1/16 глобальная область docker0
IP-адрес нашего контейнера — 172.17.0.20, который находится в диапазоне 172.17.42.1/16. Давайте перезапустим контейнер, и вы должны получить новый IP-адрес, назначенный Docker:
. $ docker stop test-mysql
$ docker start test-mysql
$ docker inspect test-mysql | grep IPAddress
«IP-адрес»: «172.17.0.21 ",
Наш IP-адрес только что изменился на 172.17.0.21. Если бы у вас было приложение, которое подключается к этому контейнеру через старый IP-адрес, приложение больше не подключалось бы. Docker представляет другой способ связать ваш контейнер с другим контейнером, чтобы гарантировать, что назначенный ему IP-адрес будет обновлен в связанном контейнере. Допустим, мы развертываем приложение WordPress (в образе которого не установлен MySQL) и хотим установить связь с нашим существующим контейнером MySQL, test-mysql .Вот что вам следует сделать:
$ docker run --detach --name test-wordpress --link test-mysql: mysql wordpress
Через пару минут контейнер test-wordpress будет запущен и связан с нашим контейнером test-mysql:
$ докер пс
КОНТЕЙНЕР ИДЕНТИФИКАЦИЯ ИЗОБРАЖЕНИЕ КОМАНДА СОЗДАНО СОСТОЯНИЕ НАЗВАНИЯ ПОРТОВ
0cb9f4152022 wordpress: latest "/entrypoint.sh apac 15 секунд назад Up 15 секунд 80 / tcp test-wordpress
0a7aa1cf196e mysql: latest "docker-entrypoint.с 16 минут назад Вверх на 16 минут 3306 / tcp test-mysql
Чтобы проверить, правильно ли он связан, войдите в контейнер test-wordpress и просмотрите содержимое / etc / hosts:
$ docker exec -it test-wordpress bash
[электронная почта защищена]: / var / www / html # cat / etc / hosts
172.17.0.22 0cb9f4152022
127.0.0.1 локальный хост
:: 1 локальный хост ip6-localhost ip6-loopback
fe00 :: 0 ip6-локальная сеть
ff00 :: 0 ip6-mcastprefix
ff02 :: 1 ip6-все узлы
ff02 :: 2 ip6-allrouters
172.17.0.21 MySQL 0a7aa1cf196e тест-MySQL
Приложение теперь может видеть запись с IP-адресом и именем хоста, относящуюся к связанному контейнеру MySQL. Если вы перезапустите контейнер MySQL и получите другой IP-адрес, запись будет обновлена Docker соответственно.
Вы также можете предоставить доступ к контейнеру MySQL внешнему миру, сопоставив порт MySQL контейнера с портом хост-компьютера с помощью флага публикации (как показано на диаграмме выше). Давайте повторно запустим наш контейнер и снова запустим его с открытым портом:
$ docker rm -f тест-mysql
$ docker run --detach --name = test-mysql --env = "MYSQL_ROOT_PASSWORD = mypassword" --publish 6603: 3306 mysql
Убедитесь, что контейнер правильно сопоставлен:
КОНТЕЙНЕР ИДЕНТИФИКАЦИЯ ИЗОБРАЖЕНИЕ КОМАНДА СОЗДАНО СОСТОЯНИЕ ИМЕНА ПОРТОВ
8d97b70658a9 mysql: последняя "точка входа в докер.s 3 секунды назад Up 3 секунды 0.0.0.0:6603->3306/tcp test-mysql
0cb9f4152022 wordpress: latest "/entrypoint.sh apac 15 минут назад Up 15 минут 80 / tcp test-wordpress
На этом этапе мы можем получить доступ к контейнеру MySQL прямо из порта машины 6603.
Управление конфигурацией
Контейнер поставляется со стандартными параметрами конфигурации MySQL 5.7 внутри / etc / mysql / my.cnf. Допустим, нашему приложению, которое подключается к этому серверу MySQL, требуется больше max_connections (по умолчанию 151) во время запуска, поэтому нам нужно обновить файл конфигурации MySQL. Лучший способ сделать это в контейнере — создать альтернативные файлы конфигурации в каталоге на хост-машине, а затем смонтировать это местоположение каталога как /etc/mysql/conf.d внутри контейнера mysql.
На главном компьютере создайте каталог и пользовательский файл конфигурации MySQL:
$ mkdir -p / корень / контейнер / тест-mysql / conf.d
$ vim /root/container/test-mysql/conf.d/my-custom.cnf
И добавьте следующие строки:
[mysqld]
max_connections = 200
Затем мы должны повторно запустить контейнер MySQL (удалить и запустить), сопоставив путь к тому, как показано в следующей команде (длинная команда обрезана, чтобы сделать ее более читаемой):
$ docker run \
--detach \
--name = test-mysql \
--env = "MYSQL_ROOT_PASSWORD = mypassword" \
--опубликация 6603: 3306 \
--volume = / корень / докер / тест-mysql / conf.г: /etc/mysql/conf.d \
MySQL
Это запустит новый контейнер test-mysql , где экземпляр MySQL использует комбинированные параметры запуска из значений по умолчанию /etc/mysql/my.cnf и /etc/mysql/conf.d/my-custom.cnf с настройками от последнего имеет приоритет.
Убедитесь, что новый параметр загружен с хоста машины:
$ mysql -uroot -pmypassword -h227.0.0.1 -P6603 -e 'показать глобальные переменные, такие как «max_connections»';
+ ----------------- + ------- +
| Имя_переменной | Значение |
+ ----------------- + ------- +
| max_connections | 200 |
+ ----------------- + ------- +
Многие параметры конфигурации также могут быть переданы в mysqld как флаги.Это даст вам гибкость в настройке контейнера без использования специального файла .cnf. Например, если вы хотите изменить максимальное количество подключений, как указано выше, и параметры сортировки для всех таблиц, чтобы использовать UTF-8 (utf8mb4), просто выполните следующее:
$ docker run \
--detach \
--name = test-mysql \
--env = "MYSQL_ROOT_PASSWORD = mypassword" \
--опубликация 6603: 3306 \
mysql \
--max-connections = 200 \
--character-set-server = utf8mb4 \
--collation-server = utf8mb4_unicode_ci
Хранение данных
Есть несколько способов хранения данных, используемых MySQL, которые работают в контейнерах Docker.Docker может управлять хранением данных вашей базы данных, записывая файлы базы данных на диск в хост-системе, используя собственное внутреннее управление томами. Если вы запустите команду inspect, посмотрите на директиву «Volumes», и вы должны заметить, что по умолчанию каталог данных MySQL (/ var / lib / mysql) смонтирован во внутреннем томе Docker:
$ docker проверить тест-mysql
...
"Объемы": {
"/etc/mysql/conf.d": "/root/docker/test-mysql/conf.d",
"/ var / lib / mysql": "/ var / lib / docker / vfs / dir / 4d437e2fe5ab2f71ffeea2590d72a417a9ca88607c130b46f5ad819d0a5b68cd"
}
Это самый простой способ, достаточно прозрачный для пользователя.Обратной стороной является то, что файлы может быть трудно найти для инструментов и приложений, которые работают непосредственно в хост-системе, то есть вне контейнеров.
Другой способ — создать каталог данных в хост-системе (вне контейнера) и смонтировать его в каталог, видимый изнутри контейнера. Это помещает файлы базы данных в известное место в хост-системе и упрощает для инструментов и приложений в хост-системе доступ к файлам. Обратной стороной является то, что пользователю необходимо убедиться, что каталог существует, и что e.грамм. права доступа к каталогам и другие механизмы безопасности в хост-системе настроены правильно.
Создайте каталог данных на подходящем томе в вашей хост-системе, например / хранилище / докер / mysql-datadir:
$ mkdir -p / хранилище / докер / mysql-datadir
Запустите контейнер mysql следующим образом:
$ docker run \
--detach \
--name = test-mysql \
--env = "MYSQL_ROOT_PASSWORD = mypassword" \
--опубликация 6603: 3306 \
--volume = / корень / докер / тест-mysql / conf.г: /etc/mysql/conf.d \
--volume = / хранилище / докер / mysql-datadir: / var / lib / mysql \
MySQL
Часть команды «—volume = / storage / docker / mysql-datadir: / var / lib / mysql» монтирует каталог / storage / docker / mysql-datadir из базовой хост-системы как / var / lib / mysql внутри контейнера, куда MySQL по умолчанию будет записывать свои файлы данных, как показано на следующей диаграмме:
При осмотре контейнера вы должны увидеть следующие строки:
$ docker проверить тест-mysql
...
"Объемы": {
"/etc/mysql/conf.d": "/root/docker/test-mysql/conf.d",
«/ var / lib / mysql»: «/ хранилище / докер / mysql-datadir»
}
Который теперь более понятен для вас, чтобы увидеть каталог и файлы на хосте машины, созданные этим контейнером:
$ ls -al / хранилище / докер / mysql-datadir /
всего 188452
drwxr-xr-x 5 999 999 4096 3 июня, 10:13.
drwxr-xr-x 3 root root 4096 3 июн 10:06 ..
-rw-r ----- 1999 999 56 3 июня 10:13 auto.cnf
-rw-r ----- 1999 999 1329 3 июня, 10:13 ib_buffer_pool
-rw-r ----- 1 999 999 79691776 3 июня 10:13 ibdata1
-rw-r ----- 1999 999 50331648 3 июня 10:13 ib_logfile0
-rw-r ----- 1999 999 50331648 3 июня 10:13 ib_logfile1
-rw-r ----- 1999 999 12582912 3 июня 10:13 ibtmp1
drwxr-x --- 2 999 999 4096 3 июня 10:13 mysql
drwxr-x --- 2 999 999 4096 3 июня 10:13 performance_schema
drwxr-x --- 2 999 999 12288 3 июня 10:13 sys
Обратите внимание, что перезапуск или удаление контейнера не удаляет каталог данных MySQL.Когда вы перезапускаете контейнер MySQL с помощью команд «stop» и «start», это будет похоже на перезапуск службы MySQL при стандартной установке:
$ docker stop test-mysql
$ docker start test-mysql
Если вы удалите контейнер MySQL, данные на смонтированных томах останутся нетронутыми, и вы сможете запустить новый экземпляр, смонтировав тот же том, что и каталог данных:
$ docker rm -f тест-mysql
$ docker run -d --name = new-mysql -p 6604: 3306 -v / storage / docker / mysql-datadir: / var / lib / mysql mysql
* Если контейнер MySQL работает поверх существующего каталога данных MySQL, переменную $ MYSQL_ROOT_PASSWORD следует опустить в командной строке «run»; в любом случае он будет проигнорирован, а уже существующая база данных никоим образом не будет изменена.
Однако только одному работающему (активному) контейнеру разрешен доступ к каталогу данных MySQL одновременно. Запуск другого контейнера, монтирующего тот же том datadir, вызовет ошибку запуска MySQL в более позднем контейнере:
$ docker run -d --name = another-new-mysql -p 6605: 3306 -v / storage / docker / mysql-datadir: / var / lib / mysql mysql
$ docker регистрирует еще один-новый-mysql
2016-06-10T07: 16: 59.538635Z 0 [Примечание] InnoDB: завершена инициализация пула буферов
2016-06-10T07: 16: 59.540373Z 0 [Примечание] InnoDB: если пользователь, выполняющий mysqld, авторизован, приоритет потока очистки страниц можно изменить.См. Страницу руководства по setpriority ().
2016-06-10T07: 16: 59.551646Z 0 [ОШИБКА] InnoDB: невозможно заблокировать ошибку ./ibdata1: 11
2016-06-10T07: 16: 59.551656Z 0 [Примечание] InnoDB: убедитесь, что у вас еще нет другого процесса mysqld, использующего те же файлы данных или журналов InnoDB.
2016-06-10T07: 16: 59.551659Z 0 [Примечание] InnoDB: повторная попытка заблокировать первый файл данных
2016-06-10T07: 17: 00.552294Z 0 [ОШИБКА] InnoDB: невозможно заблокировать ошибку ./ibdata1: 11
2016-06-10T07: 17: 00.552364Z 0 [Примечание] InnoDB: убедитесь, что у вас еще нет другого процесса mysqld, использующего те же файлы данных или журналов InnoDB.
Это ожидается, поскольку процесс MySQL должен исключительно владеть каталогом данных MySQL, чтобы избежать любых потенциальных конфликтов. Подключение нескольких процессов mysqld к одному и тому же каталогу данных просто невозможно. Вот почему горизонтальное масштабирование MySQL может быть достигнуто только посредством репликации.
На этом блог завершается. Поделитесь своим опытом управления контейнерами MySQL в разделе комментариев ниже.
Командная строка— Запуск и остановка сервера mysql.Укорочить и сделать автомат
Просто создайте псевдоним в вашем файле ~ / .bash_profile или ~ / .profile.
Проверьте с помощью ls -la0 ~ /
, если один из файлов уже существует, иначе создайте его с помощью:
touch ~ / .bash_profile
После открытия .bash_profile с nano ~ / .bash_profile
добавьте строки:
псевдоним iwanttostartmysqlwithareallyshortcommand = 'sudo /usr/local/mysql/support-files/mysql.server start'
псевдоним iwanttostopmysqlwithareallyshortcommand = 'sudo / usr / local / mysql / support-files / mysql.остановка сервера '
запишите файл на диск с помощью ctrl O и выйдите из nano с помощью ctrl X .
Затем введите:
исходный файл .bash_profile
В дальнейшем достаточно ввести
iwanttostartmysqlwithareallyshortcommand
или
iwanttostopmysqlwithareallyshortcommand
для запуска или остановки mysql после ввода пароля.
Также работает более короткий псевдоним, например iwanttostartmysqlnow
. Возможны даже действительно очень короткие, например stm
(= st art m ysql) или spm
(= s to p m ysql). Однако они не должны конфликтовать с другими псевдонимами или действительными командами. Самые короткие, которые я нашел — и их легко запомнить — это 1
для запуска и 0
для остановки mysql. 😉
Чтобы ответить на ваш второй вопрос:
Если вы установили последнюю версию MySQL от Oracle, демон запуска уже должен быть установлен в / Library / LaunchDaemons.
Если вы установили другой пакет mysql (например, homebrew), вы можете использовать приведенный здесь пример и адаптировать его.
Немного измененный пример:
Xml version = "1.0" encoding = "UTF-8"?>
RunAtLoad
<истина />
Ярлык
com.mysql.mysqld
ProgramArguments
<массив>
<строка> / usr / local / mysql / файлы поддержки / mysql.запуск сервера
Сохраните XML как файл с именем /Library/LaunchDaemons/com.mysql.mysql.plist
Настройте права доступа к файлам с помощью рекомендованного Apple владельца «root», группы-владельца «wheel» и разрешений файла «644»
sudo chown корень: колесо /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
Включите эту новую службу MySQL с помощью:
sudo launchctl load -w / Library / LaunchDaemons / com.mysql.mysql.plist
Установите сервер MySQL 8.0.19, используя Zip-архив без установки
В этой статье я собираюсь объяснить пошаговый процесс установки сервера MySQL 8.0.19 с использованием Zip-архива noinstall. В моей предыдущей статье я объяснил пошаговый процесс установки MySQL 8.0. на windows 10.
Шаги по установке MySQL следующие:
- Загрузите и распакуйте файлы
- Создать файлы опций MySQL
- Инициализация каталога данных MySQL и системных баз данных
- Запустите службы сервера MySQL с помощью командной строки
- Создайте MySQL как службу Windows
- Установите значения переменной PATH для доступа к MySQL
- Подключиться к экземпляру MySQL с помощью MySQL workbench
Скачайте и распакуйте файлы
Во-первых, давайте загрузим Zip-архив MySQL 8.0 со страницы загрузки. На странице загрузки выберите Microsoft Windows в раскрывающемся списке «Выбрать операционную систему». Выберите Windows (x86, 64-бит) ZIP архив .
После загрузки zip-архивов скопируйте файлы в желаемое место и извлеките файлы.
Я создал каталог с именем MySQL_Home на диске C: \ моего рабочая станция.Мы используем его как домашний каталог MySQL. Я скопировал извлеченные файлы в каталог C: \ MySQL_Home .
Создать файл конфигурации MySQL
Файл конфигурации используется для запуска сервера базы данных MySQL. Файл содержит следующую информацию.
- Базовый каталог: Базовый каталог для установки. В нашем случае C: \ MySQL_Home — это базовый каталог.
- Каталог данных: Местоположение каталога данных.В нашем случае C: \ MySQL_Data_Directory — это каталог данных
Создайте новый текстовый файл и введите в него следующие параметры. Мы можем использовать обычный текстовый редактор (блокнот или notepad ++), чтобы создать файл конфигурации.
[mysqld] # установить basedir на ваш путь установки basedir = «C: / MySQL_Home /» # установить datadir на местоположение вашего каталога данных datadir = «C: / MySQL_Data_Directory /» |
- Примечание: Когда мы используем путь к Windows, то в файле конфигурации путь должен быть указывается с помощью символа \\ (двойная обратная косая черта) или / (прямая косая черта).Предположим, что файл конфигурации находится в C: \ MySQL_Home , тогда вы должны указать C: / MySQL_Home или C: \\ MySQL_Home
Сохраните файл под именем my.ini в каталоге C: \ MySQL_Home и закройте редактор.
Инициализировать каталоги данных и системные базы данных
ZIP-архив MySQL не включает каталог данных; поэтому мы должны инициализировать его вручную.Когда мы инициализировать его, MySQL создает файлы системной базы данных MySQL и системные таблицы в месте, указанном в файл опций.
Чтобы инициализировать MySQL и создать системные базы данных MySQL, мы должны запустить команду mysqld с — инициализировать или — инициализировать небезопасный вариант . Детали оба варианта следующие:
- Параметр –initialization по умолчанию считается безопасным.Когда мы используем эту опцию, MySQL генерирует случайный пароль root. После завершения установки срок действия пароля root истечет, и вы должны создать новый пароль root
- Когда мы используем параметр –initialize-insecure , нам не нужно указывать пароль root. Это считается, что пользователь создаст пароль root перед тем, как перейти к производству. Проще говоря, мы необходимо создать пароль root, прежде чем использовать этот сервер в производственной среде
Перед запуском службы мы можем определить тип сервера MySQL.Мы можем настроить два типа MySQL Server в Windows.
- Mysqld: Это оптимизированные двоичные файлы с поддержкой именованных каналов.
- Mysqld-debug: Это оптимизированный двоичный файл и скомпилирован с полной отладкой. Имеет автоматическую проверку выделения памяти.
В этой демонстрации мы будем использовать двоичные файлы mysqld. Я устанавливаю MySQL на свою рабочую станцию для инициализации данных MySQL каталоги; Я использую опцию –initialize-insecure .
Откройте командную строку от имени администратора. Сначала перейдите в каталог MySQL_Home \ bin, используя cd команда .:
Выполните следующую команду:
C: \ MySQL_Home \ bin> mysqld.exe —initialize-insecure |
Команда выполняется успешно, но не вернула никакого сообщения.Чтобы убедиться, что инициализация была завершено успешно, откройте C: \ MySQL_Data_Directory . Вы можете увидеть каталоги данных и были созданы файлы системной базы данных, что указывает на успешное завершение инициализации.
Во время процесса инициализации MySQL записывает журналы в каталог данных MySQL. Если каталоги данных не были созданы или возникла ошибка, вы можете просмотреть их, чтобы диагностировать проблему.Формат имени файла журнал ошибок: [Имя хоста] .err .
Теперь давайте запустим службы MySQL.
Запустите службу MySQL с помощью командной строки
Во-первых, давайте запустим службы MySQL из командной строки. Для этого перейдите в базовый каталог MySQL bin и выполните следующую команду.
C: \ MySQL_Home \ bin> mysqld.exe |
Будет запущена служба mysqld . Теперь подключитесь к серверу MySQL с помощью mysql инструменты командной строки. Запустите еще один сеанс командной строки и выполните следующую команду. Он подключается к MySQL сервер, использующий пользователя root.
- Примечание: В этом методе проблема в том, что вы не можете закрыть командную строку, в которой вы выполнили mysqld.Команда exe. Если вы закроете окно, служба MySQL будет остановлена. Чтобы исправить проблему, рекомендуется запускать MySQL как службу Windows
Запустить MySQL как службу Windows
Теперь давайте запустим MySQL как службу Windows. Преимущество создания службы Windows MySQL заключается в том, чтобы получить больший контроль над ним. Мы можем управлять службами с помощью команды NET SERVICE и Services MMC (Консоль управления Microsoft.Мы можем установить MySQL Server как службу, выполнив следующую команду.
C: \ MySQL_Home \ bin \ mysqld.exe — установить |
Как видно на изображении выше, служба установлена. Теперь, чтобы просмотреть службу, откройте Control. Панель Администрирование Откройте Services . В сервисах MMC найдите Служба MySQL.
Как вы можете видеть на изображении выше, сервер MySQL установлен как служба, но мы должны запустить его вручную. следующую команду в PowerShell. Команда должна быть выполнена под учетной записью администратора.
C: \ Windows \ System32 & gt; Чистый запуск mysql |
Как видите, сервис запущен.
Установить переменную PATH для доступа к MySQL
Давайте запустим MySQL из командной строки, не указывая полный путь к файлу mysql.exe. Открыть команду запросите и запустите команду MySQL.
Возникает следующая ошибка:
Когда мы устанавливаем MySQL из zip-архива, мы должны настроить переменную PATH для доступа к MySQL без указав полный путь к mysql.exe.Чтобы легко получить доступ к MySQL, мы можем установить переменную PATH. Для этого открытая система Свойства Откройте Дополнительные настройки системы.
В расширенных настройках системы щелкните Среда.
В диалоговом окне среды открывается. Выберите ПУТЬ. Нажмите «Редактировать».
Откроется диалоговое окно Редактировать системную переменную . В диалоговом окне нажмите Добавить. Укажите полный путь к каталогу bin MySQL.В нашем случае папка bin находится в C: \ MySQL_Home, , поэтому укажите C: \ MySQL_Home \ bin .
Нажмите ОК, чтобы сохранить переменную и закрыть диалоговое окно. Теперь снова запустите команду.
Как видите, ошибка устранена. Укажите пароль и нажмите Enter.
Теперь вы подключены к серверу MySQL.
Подключение к серверу MySQL с помощью рабочей среды
Откройте рабочую среду MySQL и в диалоговом окне подключения укажите имя хоста , и порт . номер , на котором установлен MySQL, и имя пользователя, имеющего доступ к серверу MySQL. Нажмите на Тестовое соединение.
Соединение установлено успешно.
После подключения выполните следующий запрос, чтобы создать базу данных.
Запрос
Создать базу данных MySQLTestDatabase |
Запустите Показать базу данных , чтобы просмотреть список базы данных.
Сводка
Процесс установки сервера MySQL с использованием ZIP-архива noinstall полностью отличается от процесса установки. процесс MySQL с использованием *.msi установщик. Установщик — это инструмент с графическим интерфейсом, который позволяет процесс установки намного проще, чем процесс установки архива MySQL ZIP. В этой статье я объяснил как мы можем установить MySQL Server, используя noinstall ZIP-архив.
Содержание
Нисарг Упадхай — администратор баз данных SQL Server и сертифицированный специалист Microsoft, имеющий более 8 лет опыта администрирования SQL Server и 2 года администрирования баз данных Oracle 10g.Он имеет опыт проектирования баз данных, настройки производительности, резервного копирования и восстановления, настройки высокой доступности и аварийного восстановления, миграции и обновления баз данных. Он получил степень бакалавра технических наук Ганпатского университета. С ним можно связаться по [email protected]
Последние сообщения Nisarg Upadhyay (посмотреть все)Как настроить MySQL на Google Compute Engine
Создайте экземпляр Compute Engine
Создайте экземпляр Compute Engine для MySQL и установите SSH подключение к вновь созданному экземпляру.Операционная система по умолчанию — Debian. версия 9. Если вы предпочитаете использовать другую операционную систему для этого руководства, вы можете выбрать один из вариантов, описанных на публичные изображения в документации по Compute Engine.
Консоль
Чтобы создать экземпляр Compute Engine в Google Cloud Console:
Откройте консоль Google Cloud.
Выберите только что созданный проект и нажмите Продолжить .
Нажмите Создать экземпляр ( Новый экземпляр , если у вас есть экземпляры).Назовите экземпляр mysql-test .
Чтобы указать операционную систему, отличную от значения по умолчанию, в разделе Загрузочный диск нажмите Изменить , чтобы настроить свойства для загрузочного диска. На вкладке Общедоступные изображения выберите операционной системы, а затем нажмите Сохранить .
Нажмите Создать .
Для установления SSH-соединения:
На странице экземпляров ВМ найдите свой новый экземпляр ВМ в списке.
В столбце Connect щелкните SSH . Терминал SSH открывается в окно браузера.
gcloud
Чтобы создать экземпляр Compute Engine, используйте вычисление gcloud
экземпляры создают команду
. Чтобы использовать другую операционную систему, добавьте--image
параметр, за которым следует имя изображения. Например, чтобы использовать Debian 9, добавьте--image debian-9
.экземпляры вычислений gcloud создают mysql-test
Подключитесь к экземпляру с помощью
ssh
.gcloud вычислить ssh mysql-test
Установить MySQL
Следующие шаги описывают, как установить MySQL на Compute Engine. пример.
Debian и Ubuntu
Обновите менеджер пакетов
apt-get
.sudo apt-get update
Установите MySQL. В процессе установки запускается служба MySQL.
sudo apt-get -y установить mysql-server
CentOS 6 и RHEL 6
Установите MySQL.
sudo yum -y установить mysql-server
Запустить сервер MySQL.
sudo service mysqld start
CentOS 7 и RHEL 7
CentOS и RHEL версии 7 теперь содержат MariaDB вместо MySQL как часть своей системы управления пакетами. Чтобы установить MySQL на CentOS 7, вы должны сначала обновите менеджер пакетов.
Обновите диспетчер пакетов, чтобы включить MySQL.
sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
Установите MySQL.
sudo yum -y установить mysql-community-server
Запустить сервер MySQL.
sudo / usr / bin / systemctl запустить mysqld
Повышение безопасности установки MySQL
Чтобы повысить безопасность установки MySQL, запустите mysql_secure_installation
команда. Если вы не установили пароль во время
в процессе установки создайте пароль на этом шаге. Для дополнительной информации
об этой команде см. документацию MySQL для
mysql_secure_installation.
sudo mysql_secure_installation
Подключиться к MySQL
Следующие шаги описывают, как подключиться к MySQL из вашего mysql-test
пример.
Подключитесь к MySQL с помощью клиента MySQL.
sudo mysql -u root -p
Когда вы подключаетесь к MySQL, подсказка меняется на:
MySQL>
После этого вы можете запускать команды MySQL. Например, следующая команда показывает запущенные потоки, включая текущее соединение.
mysql> ПОКАЗАТЬ список процессов;
+ ---- + ------ + ----------- + ------ + --------- + ------ + ------- + ------------------ + | Id | Пользователь | Хост | db | Команда | Время | Государство | Информация | + ---- + ------ + ----------- + ------ + --------- + ------ + - ------ + ------------------ + | 51 | корень | localhost | NULL | Запрос | 0 | NULL | показать список процессов | + ---- + ------ + ----------- + ------ + --------- + ------ + - ------ + ------------------ + 1 ряд в комплекте (0.00 сек)
Вы можете использовать следующую команду для создания списка пользователей.
mysql> ВЫБРАТЬ пользователя, хост, пароль от mysql.user;
+ ------------------ + ------------ + ---------------- --------------------------- + | Пользователь | Хост | Пароль | + ------------------ + ------------ + ----------------- -------------------------- + | корень | localhost | * 992C4DB09F487A275976576CCFA554F7D20A4207 | | корень | mysql-test | * 992C4DB09F487A275976576CCFA554F7D20A4207 | | корень | 127.0.0.1 | * 992C4DB09F487A275976576CCFA554F7D20A4207 | | корень | :: 1 | * 992C4DB09F487A275976576CCFA554F7D20A4207 | | debian-sys-maint | localhost | * AD7B08AF7691A552A57900F1A9D8AE26ED499117 | + ------------------ + ------------ + ----------------- -------------------------- + 5 рядов в комплекте (0,00 сек)
Когда вы закончите выполнение команд, используйте команду
exit
, чтобы выйти из Клиент MySQL, а затем снова используйтеexit
, чтобы выйти из Экземпляр Compute Engine.mysql> выход
выход
Уборка
После того, как вы закончили обучение MySQL, вы можете очистить ресурсы, которые вы создали в Google Cloud, чтобы они не занимали квота, и вам не будут выставлены счета за них в будущем. Следующие разделы описывают, как удалить или отключить эти ресурсы.
Удаление проекта
Самый простой способ избавиться от биллинга — удалить проект, который вы создан для учебника.
Чтобы удалить проект:
- Внимание : Удаление проекта имеет следующие последствия:
- Все в проекте удалено. Если вы использовали существующий проект для В этом руководстве, когда вы удаляете его, вы также удаляете любую другую работу, которую вы проделали в проекте.
- Утеряны идентификаторы пользовательских проектов. При создании этого проекта вы могли создать собственный идентификатор проекта, который хотите использовать в
будущее.Чтобы сохранить URL-адреса, использующие идентификатор проекта, например
appspot.com
URL, удалите выбранные ресурсы внутри проекта вместо удаления всего проекта. - В облачной консоли перейдите на страницу Управление ресурсами .
Перейти к управлению ресурсами
- В списке проектов выберите проект, который вы хотите удалить, а затем нажмите Удалить .
- В диалоговом окне введите идентификатор проекта и нажмите Закройте , чтобы удалить проект.
Если вы планируете изучить несколько руководств и кратких руководств, повторное использование проектов поможет вам избежать превышение квоты проекта.
Удаление экземпляров
Чтобы удалить экземпляр Compute Engine:
- В облачной консоли перейдите в экземпляров ВМ стр.
Перейти к экземплярам ВМ
- Установите флажок для экземпляр, который вы хотите удалить.
- Чтобы удалить экземпляр, нажмите удалить Удалить .
Что дальше
Теперь вы узнали, как установить сервер MySQL на Compute Engine. Чтобы увидеть более сложные приложения, использующие MySQL, просмотрите широкий выбор стеков разработки в Cloud Marketplace, которые используют MySQL.
Если ваши требования включают высокую доступность и масштабируемость, рассмотрите установка MySQL Cluster на Compute Engine. MySQL Cluster обеспечивает высокую доступность и масштабируемость через кластеризацию без совместного использования ресурсов и автоматическое сегментирование. Облачная торговая площадка предоставляет возможность развертывания Percona одним щелчком мыши, решение с открытым исходным кодом для кластеризации MySQL.
Еще одно решение с открытым исходным кодом для масштабируемости MySQL — Vitess, который обслуживает весь трафик базы данных YouTube с 2011 года. Витесс хорошо подходит для приложений, работающих в контейнерах. Для получения дополнительной информации о использование Vitess в контейнерной среде, см. Запуск Витесса на Kubernetes.
Для получения дополнительной информации о MySQL см. официальная документация MySQL.
Попробуйте сами другие функции Google Cloud. Взгляните на наши учебные пособия.
Как установить и использовать
Что такое MySQL?
MySQL — это реляционная база данных с открытым исходным кодом.
MySQL — кроссплатформенный, что означает, что он работает на нескольких различных платформах, таких как Windows, Linux, Mac OS и т. Д.
В этом руководстве MySQL Workbench вы узнаете:
Зачем использовать MySQL?
На рынке существует ряд систем управления реляционными базами данных.
Примеры реляционных баз данных включают Microsoft SQL Server, Microsoft Access, Oracle, DB2 и т. Д.
Может возникнуть вопрос, почему мы предпочли бы MySQL другим системам управления базами данных.
Ответ на этот вопрос зависит от ряда факторов.
Давайте посмотрим на сильные стороны MySQL по сравнению с более реляционными базами данных, такими как SQL Server —
- MySQL поддерживает несколько механизмов хранения, каждый со своими собственными спецификациями, в то время как другие системы, такие как SQL Server, поддерживают только один механизм хранения. Чтобы понять это утверждение, давайте рассмотрим два механизма хранения, поддерживаемые MySQL.
- InnoDB: — его механизм хранения по умолчанию, поставляемый с MySQL начиная с версии 5.5. InnoDB поддерживает внешние ключи для ссылочной целостности, а также поддерживает транзакции стандарта ACID.
- MyISAM: — это был механизм хранения по умолчанию для MySQL до версии 5.5. MyISAM не поддерживает транзакции. Его преимущества перед InnoDB включают простоту и высокую производительность.
- MySQL обладает высокой производительностью по сравнению с другими системами взаимосвязанных баз данных. Это связано с простотой конструкции и поддержкой механизмов с несколькими хранилищами.
- Экономически выгодно, это относительно дешевле с точки зрения затрат по сравнению с другими реляционными базами данных.Фактически, версия сообщества бесплатна. Коммерческая версия имеет лицензионный сбор, который также экономически эффективен по сравнению с лицензионными сборами для таких продуктов, как Microsoft SQL Server.
- Кросс-платформенный — MySQL работает на многих платформах, что означает, что его можно развернуть на большинстве машин. Другие системы, такие как MS SQL Server, работают только на платформе Windows.
Для взаимодействия с MySQL вам понадобится инструмент доступа к серверу , который может взаимодействовать с сервером MySQL.MySQL поддерживает множественные пользовательские соединения.
Что такое MySQL Workbench?
MySQL Workbench — это инструмент доступа для визуального проектирования и моделирования базы данных для реляционной базы данных сервера MySQL. Это облегчает создание новых физических моделей данных и модификацию существующих баз данных MySQL с функциями обратного / прямого проектирования и управления изменениями. Назначение рабочей среды MySQL — предоставить интерфейс для более простой и более структурированной работы с базами данных.
Начало работы Инструментальные средства MySQL для моделирования и проектирования
- Модели лежат в основе большинства надежных и высокопроизводительных баз данных. MySQLworkbench имеет инструменты, которые позволяют разработчикам и администраторам баз данных визуально создавать физические модели проектирования баз данных, которые можно легко преобразовать в базы данных MySQL с помощью прямого проектирования.
- Рабочая среда MySQL поддерживает создание нескольких моделей в одной среде.
- Он поддерживает все объекты, такие как таблицы, представления, хранимые процедуры, триггеры и т. Д.которые составляют базу данных.
- Рабочая среда MySQL имеет встроенную утилиту проверки модели, которая сообщает о любых проблемах, которые могут быть обнаружены разработчику моделей данных.
- Он также позволяет использовать различные нотации моделирования и может быть расширен с помощью языка сценариев LUA.
На рисунке ниже показано окно моделирования для MySQLWorkbench.
Рабочая среда MySQL — средство разработки SQL
Язык структурированных запросов (SQL) позволяет нам управлять нашими реляционными базами данных.SQL лежит в основе всех реляционных баз данных.
- MySQLworkbench, имеет встроенный визуальный редактор SQL.
- Редактор Visual SQL позволяет разработчикам создавать, редактировать и выполнять запросы к базам данных сервера MySQL. В нем есть утилиты для просмотра данных и их экспорта.
- Цветовые выделения синтаксиса помогают разработчикам легко писать и отлаживать операторы SQL.
- Можно запускать несколько запросов, а результаты автоматически отображать на разных вкладках.
- Запросы также сохраняются на панели истории для последующего извлечения и выполнения.
На рисунке ниже показано окно разработки SQL для MySQL Workbench.
Workbench MySQL — инструмент администрирования
Администрирование сервера играет важную роль в защите данных компании. Основными проблемами, связанными с администрированием сервера, являются управление пользователями, конфигурация сервера, журналы сервера и многое другое. Workbench MySQL имеет следующие функции, упрощающие процесс администрирования сервера MySQL;
- Управление пользователями — визуальная утилита для управления пользователями, которая позволяет администраторам баз данных легко добавлять новых и удалять существующих пользователей, если возникает необходимость, предоставлять и удалять права и просматривать профили пользователей.
- Конфигурация сервера — позволяет расширенную конфигурацию сервера и тонкую настройку для достижения оптимальной производительности.
- Резервное копирование и восстановление базы данных — визуальный инструмент для экспорта / импорта файлов дампа MySQL. Файлы дампа MySQL содержат сценарии SQL для создания баз данных, таблиц, представлений, хранимых процедур и вставки данных.
- Журналы сервера — визуальный инструмент для просмотра журналов сервера MySQL. Журналы включают журналы ошибок, двоичные журналы и журналы InnodDB.Эти журналы пригодятся при выполнении диагностики на сервере. На рисунке ниже показано окно моделирования для MySQL Workbench.
На рисунке ниже показана панель администратора для Workbench MySQL.
Руководство по установке MySQL Workbench (для Windows)
В этом руководстве MySQL Workbench для начинающих мы узнаем, как установить и использовать MySQL Workbench.
Установка MySQL workbench — это двухэтапный процесс.
1) Установите MySQL Community Server
2) Установите рабочую среду MySQL — вы можете установить рабочую среду с помощью zip-файла или установщика msi (рекомендуется)
Примечание. Для выполнения установки вам потребуются права администратора или опытного пользователя.
Начало работы
После того, как вы закончили установку, вам необходимо настроить MySQL Workbench, как показано ниже —
1. Первым шагом является запуск Workbench MySQL. То, что вы видите, называется Home Window
2. Затем вам нужно создать подключение к серверу MySQL, которое содержит сведения о целевом сервере базы данных, в том числе о том, как подключиться к нему. Щелкните «+» в главном окне MySQL Workbench. Это откроет Setup New Connection .Мастер
3. Как новичок вы можете создать соединение для локально установленного сервера. Нажмите кнопку Configure Server Management в окне Setup New Connection , чтобы проверить конфигурацию сервера MySQL.
4. Откроется новое окно с именем Настроить локальное управление . Нажмите кнопку «Далее», чтобы продолжить.
5. Далее мастер проверит соединения с базой данных. Если проверка не удалась, вернитесь и исправьте параметры подключения к базе данных.Затем откроется всплывающее окно с запросом вашего пароля root для проверки вашего соединения с локальным экземпляром сервера mysql. Пароль — это тот, который вы установили во время установки MySQL Workbench. Введите свой пароль и нажмите OK
6. Затем мастер проверит соединения с базой данных. Если проверка не удалась, вернитесь и исправьте параметры подключения к базе данных. В противном случае, если все тесты прошли успешно, нажмите «Далее», чтобы продолжить.
7. После этого откроется новый мастер управления локальными службами — он позволяет переключаться между несколькими серверами mysql, установленными на одной машине.Как новичок, вы можете обойти это и нажать Далее , чтобы продолжить.
8. Мастер затем проверит возможность доступа к файлу конфигурации сервера MySQL и проверит команды запуска / остановки.
9. Затем вы можете просмотреть текущие конфигурации. После просмотра конфигураций нажмите Finsh, чтобы завершить настройку сервера
10. Следующим шагом является установка соединения, которое можно использовать для подключения к серверу. Если вы еще не создали соединение, вы можете использовать указанные значения по умолчанию.Щелкните Проверить соединение [2] после ввода имени соединения [1].
11. Откроется новое диалоговое окно с запросом пароля для пользователя root / выбранного пользователя. Если у вашего пользователя root MySQL есть пароль, вы можете ввести его, используя функцию Store in Vault. Щелкните ОК.
Если введенный пароль для пользователя правильный, появится следующий экран. Нажмите на обе кнопки ОК , и все будет в порядке.
Новый экземпляр отображается на домашней странице.
Дважды щелкните и начните запрос.
Резюме
- MySQL — это кроссплатформенная реляционная база данных с открытым исходным кодом.
- MySQL поддерживает несколько механизмов хранения, которые значительно улучшают настройку производительности и гибкость сервера. До версии 5.5 механизмом хранения по умолчанию был MyISAM, который не поддерживал транзакции, начиная с версии 5.5; механизм хранения по умолчанию — InnoDB, который поддерживает транзакции и внешние ключи.
- Сервер MySQL можно администрировать с помощью ряда инструментов MySQL для доступа к серверу, которые включают как коммерческие, так и продукты с открытым исходным кодом.Популярные примеры включают:
- phpMyAdmin — кроссплатформенный веб-инструмент доступа к серверу с открытым исходным кодом
- SQLYog — ориентированный на платформу Windows, инструмент доступа к коммерческому серверу рабочего стола
- MySQL workbench — кроссплатформенный инструмент доступа к серверу с открытым исходным кодом
- MySQL workbench — это интегрированная среда разработки для сервера MySQL.