- Ручная установка MySQL на Windows
- Открытие порта 3306 (mysql) в VMBitrix и настройка удаленного доступа к БД
- Иванов Иван
- Как открыть 3306 порт, debian 10?
- Как удаленно подключиться к MySQL
- Подключение через панель управления TimeWeb
- phpMyAdmin
- Соединение через SSH туннель
- Подключение в Windows
- Подключение в Linux
- Как проверить соединение с базой данных MySQL
- Распространенные проблемы и ошибки при подключении к MySQL
- Заключение
Ручная установка MySQL на Windows
Автор: Max Bond
Дата записи
Когда автоматическая установка дает сбой, на помощь приходит ручной режим.
Приступаем к установке:
1. Качаем zip-архив MySQL со страницы загрузки: http://www.mysql.com/downloads/mysql/.
Для Win 32 выбираем дистрибутив: Windows (x86, 32-bit), Zip-Archive.
Для Win 64: Windows (x86, 64-bit), Zip-Archive.
После нажатия на кнопку Download вы увидите форму для регистрации, ее можно пропустить, нажав на ссылку внизу – No thanks, just take me to the downloads.
2. Создаем папку установки. Например C:\Program Files\MySQL\MySQL Server 5.5. И распаковываем в нее содержание архива таким образом, чтобы папки bin, data, docs и прочие были в корне папки установки.
3. Переходим к созданию конфигурационного файла (my.ini). За основу берем один из типовых файлов:
- my-small.ini – подойдет тем, кто использует MySQL время от времени и не хочет, чтобы сервер занимал много ресурсов.
- my-medium.ini – тоже не требовательная к ресурсам конфигурация, но подойдет тем, кто использует MySQL на постоянной основе (хороший выбор для для домашнего веб-сервера).
- my-large.ini и my-huge.ini – для систем, использующихся как выделенный MySQL сервер. Впрочем, my-large.ini можно использовать для домашнего сервера, если нужна дополнительная производительность MySQL (512 Мб оперативной памяти не так уж и много по нынешним временам).
- my-innodb-heavy-4G – для выделенных серверов, имеющих от 4 Гб оперативной памяти и использующих только таблицы типа InnoDB.
В этом примере за основу я выбрал my-medium.ini. Переименовываем его в my.ini и размещаем в корне папки установки (C:\Program Files\MySQL\MySQL Server 5.5).
Открываем для редактирования (в обычном Блокноте) и сразу после строчки [mysqld] дописываем два параметра:
Обратите внимание, что в путях используется прямой слэш (/), а не обратный (\).
basedir – это путь к папке установки.
datadir – путь к папке данных (где хранятся все БД). Иногда имеет смысл разместить данные на отдельном диске, чтобы повысить производительность или обеспечить надежность.
На всякий случай привожу фрагмент конфигурационного файла, после внесения изменений:
4. Следующий этап – добавить путь C:\Program Files\MySQL\MySQL Server 5.5\bin в переменную среды PATH, чтобы упростить запуск MySQL из командной строки. Для этого открываем Свойства системы -> Дополнительные параметры системы -> на закладке Дополнительно в самом низу кнопка “Переменные среды…”. В открывшемся окне пролистываем системные переменные пока не найдем Path. Выделяем эту строку и нажимаем “Изменить…”. В конце строки дописываем свой путь, сохраняя существующие параметры:
Меняем PATH
Обратите внимание, что пути разделяются точкой с запятой. Убедитесь, что в начале и в конце вашего пути точка с запятой поставлена.
5. Перед тем как осуществить пробный пуск, открываем входящий порт TCP 3306 в брандмауэре Windows:
Открываем порт TCP 3306
Если в системе установлен дополнительный брандмауэр, то в нем также необходимо открыть порт TCP 3306 для входящих подключений.
6. Теперь осуществляем тестовый запуск. В командной строке, запущенной от имени администратора (это обязательно, если на Семерке или Висте включен UAC), выполняем:
На экран будет выведено несколько строк. Если запуск прошел успешно, то последняя строка будет выглядеть примерно так:
Оставляем это окно открытым, и открываем еще одно окно командной строки, в котором вводим:
Если подключение прошло без ошибок, вы увидите приглашение командной строки: mysql>
Посмотрим какие базы у нас есть:
Точка с запятой в конце SQL-запроса ОБЯЗАТЕЛЬНА!
Командная строка MySQL
Теперь мы окончательно убеждены, что сервер работает.
7. Переходим к следующему этапу – необходимо установить пароль администратора MySQL (пользователь root). По умолчанию пароль не установлен, и это надо исправить. В том же окне MySQL вводим следующие команды:
Таблица users
Как видно на скриншоте колонка password заполнена, значит пароль установлен.
Перед выходом выполняем команду:
Теперь при подключении необходимо вводить пароль. Для этого используем ключ -p:
Для завершения работы MySQL выполняем:
8. Последний этап – запуск MySQL в качестве системной службы Windows.
Убедитесь, что в системе нет активных процессов MySQL.
В командной строке, запущенной от имени администратора, выполняем:
Путь к mysqld необходимо указывать полностью (даже если он прописан в PATH)!
Для запуска службы, открываем “Управление компьютером”, и вручную запускаем службу MySQL:
Запуск службы MySQL
Или проще через командную строку:
Для удаления службы, предварительно ее останавливаем:
Открытие порта 3306 (mysql) в VMBitrix и настройка удаленного доступа к БД
Дата последнего входа: | более года назад |
Речь пойдет о подключении к VMBitrix внешних административных программ, таких как HeidiSQL. Также может быть полезно для установки удаленного доступа к базе данных на виртуальной машине с другого сайта или приложения.
VMBitrix представляет собой образ линукса под VMWare с хорошо настроенным веб-сервером для оптимальной работы Битрикса, и она очень удобна как для разработки, так и для работы локальных сайтов (например корпоративного портала). Поэтому часто разработчикам требуется прямой доступ к mysql, особенно если они занимаются интеграцией проектов или разработкой своих модулей.
Для прямой работы с базой данных в арсенале Битрикса есть /bitrix/admin/sql.php. Многие для этой цели ставят phpmyadmin. Однако есть админ-клиенты, на мой взгляд, на порядок удобнее (особенно когда речь идет об innoDB с внешними ключами). Для их работы требуется подключение к mysql-серверу, которое по умолчанию (в конфигурации VMBitrix) закрыто.
(Примечание: «#» перед командой означает приглашение shell, «>» — mysql).
- Заходим в консоль, а оттуда — в mysql
# mysql
> use mysql;
Добавляем пользователя для удаленного доступа со всеми привилегиями. Для обеспечения большей безопасности надо указать явно хост и привилегии.
> insert into user set Host=’%’,User=’remote’,Password=PASSWORD(‘пароль’);
> grant all on *.* to ‘remote’@’%’;
Меняем пустой пароль root в mysql (по желанию, мера безопасности).
> update user set password=PASSWORD(‘пароль рута’) where user=’root’;
Если на виртуальной машине установлен Битрикс, который ходит в базу под рутом, то необходимо проставить в /bitrix/php_interface/dbconn.php новый пароль.
Выходим из mysql.
Открываем порт 3306 (mysql)
# iptables -I ufw-user-input 1 -p tcp —dport 3306 -j ACCEPT
Позволяем mysql принимать внешние соединения
# mc
Переходим в /etc/mysql/ , открываем my.cnf (F4)
Комментируем 68-ю строку решеткой: # bind-address = 127.0.0.1
Сохраняем (F10)
Выходим из mc и перегружаем демона mysql.
# exit
# /etc/init.d/mysql restart
Открывая удаленный доступ, вы открываете потенциальную возможность утраты или кражи информации из базы данных, и действуете на свой страх и риск.
Как открыть 3306 порт, debian 10?
1.Установил MySQL сервер
2. Добавил
[mysqld]
bind-address = 0.0.0.0
3.Добавил правило в iptables
iptables -A INPUT -p tcp —dport 3306 -j ACCEPT
4. Создал пользователя:
5.Перезапустил сервис mysql
6.При попытке удаленного подключения к базе, выдаёт «unknown error», через telnet 3306 — нет ответа от сервера.
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp — anywhere anywhere tcp dpt:telnet
ACCEPT all — anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all — anywhere anywhere
INPUT_direct all — anywhere anywhere
INPUT_ZONES_SOURCE all — anywhere anywhere
INPUT_ZONES all — anywhere anywhere
ACCEPT tcp — anywhere anywhere tcp dpt:mysql
ACCEPT tcp — anywhere anywhere tcp dpt:http
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all — anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all — anywhere anywhere
FORWARD_direct all — anywhere anywhere
FORWARD_IN_ZONES_SOURCE all — anywhere anywhere
FORWARD_IN_ZONES all — anywhere anywhere
FORWARD_OUT_ZONES_SOURCE all — anywhere anywhere
FORWARD_OUT_ZONES all — anywhere anywhere
DROP all — anywhere anywhere ctstate INVALID
REJECT all — anywhere anywhere reject-with icmp-host-prohibited
ufw-before-logging-forward all — anywhere anywhere
ufw-before-forward all — anywhere anywhere
ufw-after-forward all — anywhere anywhere
ufw-after-logging-forward all — anywhere anywhere
ufw-reject-forward all — anywhere anywhere
ufw-track-forward all — anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
OUTPUT_direct all — anywhere anywhere
ACCEPT tcp — anywhere anywhere tcp dpt:mysql
Chain INPUT_direct (1 references)
target prot opt source destination
Chain INPUT_ZONES_SOURCE (1 references)
target prot opt source destination
Chain INPUT_ZONES (1 references)
target prot opt source destination
IN_public all — anywhere anywhere [goto]
Chain FORWARD_direct (1 references)
target prot opt source destination
Chain FORWARD_IN_ZONES_SOURCE (1 references)
target prot opt source destination
Chain FORWARD_IN_ZONES (1 references)
target prot opt source destination
FWDI_public all — anywhere anywhere [goto]
Chain FORWARD_OUT_ZONES_SOURCE (1 references)
target prot opt source destination
Chain FORWARD_OUT_ZONES (1 references)
target prot opt source destination
FWDO_public all — anywhere anywhere [goto]
Chain OUTPUT_direct (1 references)
target prot opt source destination
Chain IN_public (1 references)
target prot opt source destination
IN_public_log all — anywhere anywhere
IN_public_deny all — anywhere anywhere
IN_public_allow all — anywhere anywhere
ACCEPT icmp — anywhere anywhere
Chain IN_public_log (1 references)
target prot opt source destination
Chain IN_public_deny (1 references)
target prot opt source destination
Chain IN_public_allow (1 references)
target prot opt source destination
ACCEPT tcp — anywhere anywhere tcp dpt:mysql ctstate NEW,UNTRACKED
Chain FWDI_public (1 references)
target prot opt source destination
FWDI_public_log all — anywhere anywhere
FWDI_public_deny all — anywhere anywhere
FWDI_public_allow all — anywhere anywhere
ACCEPT icmp — anywhere anywhere
Chain FWDI_public_log (1 references)
target prot opt source destination
Chain FWDI_public_deny (1 references)
target prot opt source destination
Chain FWDI_public_allow (1 references)
target prot opt source destination
Chain FWDO_public (1 references)
target prot opt source destination
FWDO_public_log all — anywhere anywhere
FWDO_public_deny all — anywhere anywhere
FWDO_public_allow all — anywhere anywhere
Chain FWDO_public_log (1 references)
target prot opt source destination
Chain FWDO_public_deny (1 references)
target prot opt source destination
Chain FWDO_public_allow (1 references)
target prot opt source destination
Chain ufw-before-logging-input (0 references)
target prot opt source destination
Chain ufw-before-logging-output (0 references)
target prot opt source destination
Chain ufw-before-logging-forward (1 references)
target prot opt source destination
Chain ufw-before-input (0 references)
target prot opt source destination
Chain ufw-before-output (0 references)
target prot opt source destination
Chain ufw-before-forward (1 references)
target prot opt source destination
Chain ufw-after-input (0 references)
target prot opt source destination
Chain ufw-after-output (0 references)
target prot opt source destination
Chain ufw-after-forward (1 references)
target prot opt source destination
Chain ufw-after-logging-input (0 references)
target prot opt source destination
Chain ufw-after-logging-output (0 references)
target prot opt source destination
Chain ufw-after-logging-forward (1 references)
target prot opt source destination
Chain ufw-reject-input (0 references)
target prot opt source destination
Chain ufw-reject-output (0 references)
target prot opt source destination
Chain ufw-reject-forward (1 references)
target prot opt source destination
Chain ufw-track-input (0 references)
target prot opt source destination
Chain ufw-track-output (0 references)
target prot opt source destination
Chain ufw-track-forward (1 references)
target prot opt source destination
Как удаленно подключиться к MySQL
Подключаться к базам данных можно разными способами. Подключение, устанавливаемое с сервера, называется локальным. С помощью такого типа подключения можно работать с домашнего компьютера, при этом используя любые удобные приложения по управлению базами данных.
Я расскажу, как подключиться к удаленной базе данных MySQL, какие существуют способы, а также опишу некоторые типичные ошибки.
Подключение через панель управления TimeWeb
Чтобы подключиться удаленно к MySQL, необходимо для начала открыть сайт хостинга и авторизоваться в личном кабинете. В панели управления следует выбрать раздел «Базы данных MySQL», через него и будем проводить операции. В новом открывшемся окне находим ссылку «Добавить доступ» напротив того сервера, к которому планируется подключиться. Для разрешения доступа к подсети /24 меняем последний актет IP-адреса на знак %.
При установлении соединения используем имя сервера или его IP-адрес. Данная информация доступна на главной странице в разделе «Информация о сервере». Порт указываем 3306, имя пользователя будет тем же, что и название базы данных. Вводим пароль и устанавливаем соединение.
phpMyAdmin
phpMyAdmin – программное средство, предоставляющее веб-интерфейс для работы с сервером MySQL. Подключиться к базе можно, открыв раздел «Базы данных MySQL» в панели управления хостингом. Находим на странице ссылку «phpMyAdmin» и жмем по ней для подключения. Если она недоступна, значит, пользователем был превышен лимит доступных БД. Увеличить его можно сменой тарифа.
Входим в данный раздел, вбиваем все данные и подключаемся.
Соединение через SSH туннель
Данный тип подключения считается более безопасным, потому что все данные по SSH-туннелю передаются в зашифрованном виде, исключая возможность перехвата.
Подключение в Windows
В данной ОС соединение по SSH протоколу можно осуществить с помощью специальных программ для управления базами данных. Например, PuTTY (бесплатная программа) или SecureCRT (платное ПО, но с пробной версией на 30 дней).
Мы для работы выбрали PuTTY. Скачиваем установщик с официального сайта и устанавливаем приложение . Запускаем программу, затем переходим в раздел «Session». В поле «Host Name» вводим свой домен или указываем его IP-адрес.
Далее переходим в категорию «Connection», открываем вкладку «SSH», затем «Tunnels». В поле «Source Port» указываем значение 3306, в «Destination» вбиваем localhost:3306, потом жмем на кнопку «Add» для добавления порта в список. И только потом жмем кнопку «Open» для установления соединения с хостом.
Логин и пароль те же самые, которые используются для входа в панель управления. При подключении используем имя пользователя и пароль, выданные при создании базы данных. Адрес сервера — 127.0.0.1, порт для подключения 3306.
Предупреждаем, что если вы уже устанавливали сервер баз данных MySQL на своем компьютере, то соединение через порт 3306 будет недоступно. Надо будет указать другое значение, например 3307.
Подключение в Linux
В ОС Linux никакого дополнительного ПО устанавливать не придется, можно все провести через командную строку «Терминал». Перед тем как подключиться к MySQL удаленно, нужно создать SSH-туннель. Вводим вот такую команду:
Потом в конфигурационном файле MySQL потребуется изменить параметр, отвечающий за удаленное подключение. Открываем в «Терминале» файл, дав вот такую команду:
Далее комментируем нужную нам строку. В итоге она должна выглядеть вот таким образом:
Сохраняем изменения, потом перезапускаем MySQL вот такой командой:
Далее будет запрошен пароль для входа в панель управления хостингом, вводим его. Для подключения к удаленному серверу MySQL необходимо создать пользователя, и делается это вот такой командой:
Так мы создадим пользователя с неограниченным доступом ко всем базам на указанном сервере. Потом проверяем подключение утилитой telnet. Если сервер запрос не отклонил, значит, пора приступать к подключению. Для этого можно задать команды вот таких типов:
Как проверить соединение с базой данных MySQL
Для проверки подключения к базе данных MySQL во всех ОС используем утилиту telnet. Нужно просто открыть командную строку и набрать в ней вот такую команду:
Если соединение установится, то настройка туннеля прошла успешно, можно приступать к подключению. Если нет, рекомендуем тщательно проверить все настройки.
Распространенные проблемы и ошибки при подключении к MySQL
Как подключиться к MySQL удаленно, если возникают какие-то ошибки? Трудности обычно возникают при наличии запрещающих правил. Проверить, существуют ли такие, можно вот таким запросом:
Если таковые обнаружатся, добавим разрешающее правило. Для этого надо ввести соответствующую команду, она должна выглядеть примерно вот так:
Если при подключении возникает ошибка «Can’t connect to Mysql Server on ‘IP_адрес'(10061)» , соединение заблокировал брандмауэр, firewall, outpost, антивирус и прочие программы. Для UFW, инструмента брандмауэра в Ubuntu, можно задать вот такую команду, разрешающую доступ с любого IP-адреса:
Есть еще возможность открыть доступ для определенного IP-адреса, и это куда более безопасный способ. Для этого потребуется ввести такой запрос:
Если же появляется ошибка типа «Client does not support autentification protocol request by server; consider upgrading MySQL client» , это значит, что установленный клиент не поддерживает требуемый сервером протокол.
Эту ошибку можно исправить, установив пароль старого формата:
Если при проверке выходит ошибка формата «ERROR 2003 (HY000): Can’t connect to MySQL server» , это значит, что порт 3306 не открыт. Либо сервер MySQL не прослушивает указанный IP-адрес.
В случае, когда выходит сообщение «ERROR 1130 (HY000): Host ‘10.8.0.5’ is not allowed to connect to this MySQL server» , указывается отсутствие прав доступа к удаленному серверу у пользователя.
Ошибка «1045 невозможно подключиться к серверу MySQL» возникает при попытке подключиться удаленно к базам данных через phpMyAdmin. Причиной тому может быть неправильно введенный логин или же отсутствие пароля у пользователя или его неправильная смена.
Заключение
MySQL – один из самых популярных серверов баз данных с открытым исходным кодом. Подключиться к нему можно разными способами, причем как локально, так и удаленно. Если в процессе соединения возникают нетипичные ошибки, рекомендуем связаться со службой технической поддержки.