Mysql через консоль openserver
MySQL это СУБД (система управления базами данных), которая довольно проста в работе даже для начинающего. Она не потребляет много ресурсов и может быть использована даже на слабом железе. Она очень часто используется в связке с PHP и о ней мы поговорим в рамках этого курса.
Разобраться с MySQL сможет любой начинающий разработчик. Эта СУБД имеет большую популярность в среде программистов и используется повсеместно.
Для начала работы с MySQL нам нужно определиться с несколькими терминами:
- база данных — это такая сущность, в которой находятся таблицы;
- таблица — это сущность из столбцов и строк, в которой лежат данные;
- строка — это одна запись в таблице;
- столбец — это столбец в таблице :)
Работа с MySQL через phpMyAdmin
Еще помимо страшной черной консоли есть удобный веб-интерфейс, который предоставляется программой phpMyAdmin. С запущенным OpenServer перейдите по пути:
Тут нас встретит вот такое красивое окошечко для входа в систему.
Также как и в случае с консольным приложением указываем пользователя root и оставляем пустым пароль.
После этого вы попадёте в панель управления базами данных с довольно дружелюбным интерфейсом. Слева вы увидите всё тот же список баз данных, который вы получали в консольной версии. Можете по ним потыкать, посмотреть, что там внутри.
А сейчас давайте нажмём на вкладку SQL и перейдём в окно, где можно напрямую писать запросы к СУБД MySQL, как это было бы в консоли:
В открывшемся окне введите всё тот же запрос:
Нажимаем кнопку "вперёд" и видим тот же результат, что и в случае с консольным приложением.
Есть также и клиенты с GUIшным интерфейсом. С ними вы можете ознакомиться в статье Программы для работы с СУБД MySQL.
Импорт большого дампа БД в OpenServer через консоль
Практически каждый разработчик пользуется локальным веб-сервером при разработке или тестировании своих проектов, в котором уже имеются apache, php, mysql.
Если при разработке маленьких проектов почти не возникает проблем, то с большими все наоборот. Допустим у нас есть 20 гигобайтная база данных, которую мы хотим протестировать на своем локальном веб-сервере, здесь сразу возникает вопрос: Как ее загрузить, если в phpMyAdmin стоит ограничение по размеру и времени загрузки? Сделаем это через консоль.
В данной статье мы будем использовать веб-сервер под названием "OpenServer", хотя есть еще десяток не плохих, такие как Denwer, WAMP и другие.
Для начала откроем инструмент, через который собираемся импортировать наш ахрененно большой дамп - консоль. Для этого запускаем OpenServer, в трее ищем значок (флажок), щелкаем правой кнопкой мыши по нему, переходим во вкладку "Дополнительно" - "Консоль":
Ждем загрузки Консоли, попутно проверим, какую используем версию БД в веб-сервере. Для этого снова щелкаем в трее по иконке, далее "Дополнительно" - "Конфигурация" и смотрим версию MySQL, которую и будем указывать в путях консоли:
Теперь в Консоле поочередно набираем команды команды. Первое - переходим в каталог MySQL:
Жмем Enter и набираем команду для импорта:
где lockhost - название БД в phpMyAdmin, lockhost.sql - дамп базы.
Если вы используете пользователя с паролем, необходимо указать пароль:
где password - пароль пользователя.
Теперь остается подождать загрузки дампа.
Если у вас что-то не получилось, можно воспользоваться еще одним вариантом.
На фото скрин логов, пробовал вот это провернуть
"Была ошибка во время работы базы или просто некорректно закрыли программу. Попробуйте Дополнительно -> Конфигураций -> My-SQL(какой у вас запущен) -> в самом низу прописать " innodb_force_recovery = 3 " и заново запустить OpenServer."
Но не помогло. Подскажите что делать?
Средний 9 комментариев
и проверь не запущен ли он и так
Dimonchik, нет, в дисп. задач не нашёл ни одного приложения, которое отвечало бы за MySQL!
OpenServer один, повторов нет!
Перезапустите в отладочном режиме. И посмотрите более подробные логи. Тот лог что вы показали неинформативен, он просто показывает процесс запуска без объяснения возникших ошибок.
У вас и апач не запускается. Возможно и правда процесс какой-то подвис. Комп перезагрузить можно попробовать.
Сергей delphinpro,
Логи из отладки:
e:\openserver\modules\database\MySQL-8.0>"e:\openserver\modules\database\MySQL-8.0\bin\mysqld.exe" --defaults-file="e:\openserver\modules\database\MySQL-8.0\my.ini" --user=root --standalone --console
""e:\openserver\modules\database\MySQL-8.0\bin\mysqld.exe"" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
""e:\openserver\modules\database\MySQL-8.0\bin\mysqld.exe"" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
А модуль вообще на диске - присутствует? А если процитированную команду ввести в окне консоли ручками - стартует?
PS. Проверь отстойник дефендера.
Сергей delphinpro, переустановил OSPanel, то же самое!
Apache:
d:\e\openserver\modules\http\Apache_2.4-PHP_8.0-8.1>"d:\e\openserver\modules\http\Apache_2.4-PHP_8.0-8.1\bin\httpd.exe" -f "d:\e\openserver\modules\http\Apache_2.4-PHP_8.0-8.1\conf\httpd.conf"
""d:\e\openserver\modules\http\Apache_2.4-PHP_8.0-8.1\bin\httpd.exe"" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"d:\e\openserver\modules\database\MySQL-8.0-Win10\bin\mysqld.exe" --defaults-file="d:\e\openserver\modules\database\MySQL-8.0-Win10\my.ini" --user=root --standalone --console
""d:\e\openserver\modules\database\MySQL-8.0-Win10\bin\mysqld.exe"" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Всем доброго времени суток. Вы когда-нибудь пытались импортировать большую базу данных, размером от 1 гигабайта?
Скорее всего это вызвало у вас затруднения. Как импортировать файл я расскажу ниже. А так же можно ускорить этот процесс, изменив настройки MySql.
Для начала, перед запуском OpenServer, посмотрите в настройках свою версию MySQL.
И на всякий случай, для увеличения скорости, отключите Log MySQL.
Если у вас база данных до 500МБ
Для загрузки больших файлов (от 500 MB), я рекомендую использовать консоль, если же файл меньше, вы можете изменить максимальный размер импортируемого файла до 500 MB, в файле конфигурации и использовать стандартный импорт PhpMyAdmin.
Файлы конфигурации правятся здесь.
Редактируйте php.ini. Следует увеличить допустимые максимальные значения для загружаемых на сервер файлов, максимальный размер для файлов передаваемых методом POST:
post_max_size = 512M
upload_max_filesize = 512M
Кроме этого, если ваша БД очень большая, следует увеличить максимально допустимое время выполнения скрипта.
max_execution_time = 32000
max_input_time = 32000
И на всякий случай можно увеличить размер допустимого объема оперативной памяти:
memory_limit = 512M
Затем сохраните и перезагрузите Open Server.
Если у вас база данных более 500МБ
Если же загружаемая база данных больше 500 мегабайт, лучше воспользоваться консолью.
Запустите Open Server и перейдите в консоль.
В консоли нужно ввести 2 простые строки.
Переход в папку с выбранной в настройках версией MySQL: cd modules\database\MySQL-5.6\bin
Пример:
Импорт базы данных, выглядит так: mysql -u username -p database_name < file.sql
Пример:
Все готово. В моем случае на импорт базы данных размером 3Гб, ушло 10 мин.
Для того, чтобы сайты на битриксе корректно открывались на локальном сервере , сам сервер необходимо донастроить. После запуска OpenServer - его значек появляется в трее:
Крайне желательно, чтобы папка с Open Server находилась на SSD, это ускорит работу сайтов на битриксе.
Необходимо зайти в меню OSPanel (через клик правой кнопкой мышки по иконке в трее) и обязательно запустить утилиту первого запуска Дополнительно -> Первый запуск , если она еще не ни разу была запущена. Если не знаете, запускалась она или нет - лучше все равно её выполнить. Будут установленны необходимые для работы локального сервера программы и библиотеки, что существенно увеличит скорость работы сервера.
Переходим в Настройки -> Модули и выберем требуемые нам. Как вариант - PHP_7.1 , Apache_2.4-PHP_7.0-7.1 , MySQL-5.7 . Проверяем, что у нас выбранная версия PHP поддерживается нашим Apache, а так же у них совпадает архитектура - х86 (без подписи у модуля) или х64.
У сайтов на 1С-Битрикс свои, специфичные требования к настройкам для сервера, поэтому без редактирования конфигурации не обойтись.
Заходим в меню OSPanel: Дополнительно -> Конфигруация -> PHP_7.X и правим следующие настройки в соответствии с запросами битрикса
Если вначале строки у нужного параметра конфигурации стоит точка с запятой ( ; ) - то её необходимо убрать. Точка с запятой является символом комментария, и все что после неё - воспринимается PHP как комментарий, а не параметр конфигурации.
Здесь дело поинтереснее. 1С-Битрикс использует внутри своей CMS папки и файлы, имя которых которые начинается с точки (.default или .left.menu.php). Apache же по умолчанию считает, что файлы и папки, чьи имена начинаются с точки - должны быть скрытыми и не доступны из браузера. Поэтому, могут наблюдаться проблемы, когда файлы на сервере вроде бы есть, а в браузер они не загружаются (чаще всего не грузятся стили и скрипты в административной части сайта) так как Apache считает их скрытыми файлами, и при их запросе возвращает статус 403 (запрещено).
После изменения всех нужных параметров - сохраняем все файлы. Если OperServer был запущен (зеленый значек флажка в трее, а не красный), то перезапускаем его.
Как работать с базой данных MySQL
Если вы всё сделали как в статье Установка и настройка OpenServer, то консольный клиент для работы с MySQL лежит по пути:
Вместо MySQL-5.7-x64 нужно подставить версию, указанную в настройках OpenServer во вкладке "Модули".
Нужно открыть консоль и запустить эту программу с флажком -u root
В результате запустится MySQL-клиент. Он подключён к MySQL-серверу, который был запущен при старте OpenServer-a.
Параметр -u расшифровывается как user. То есть это флажок для указания пользователя, под которым нужно подключиться к серверу. root - это самый главный пользователь в MySQL. Он создаётся при установке сервера и по умолчанию у него нет пароля.
Через этот консольный клиент мы можем отправлять различные команды СУБД. Давайте выполним команду, которая выводит все базы данных, созданные на этом сервере.
В ответ мы получим красиво оформленный список баз. У вас их будет меньше, чем у меня, потому что я их уже у себя надобавлял.
Читайте также: