Пытаюсь подключиться к моему виртуальному серверу MySQL (VirtualBox Fedora 25) на рабочей среде mySQL.
Я использую пользователя root, да, я знаю, что это не самый безопасный вариант, но для моего тестирования это нормально.
В сети есть масса информации об этом, но все, что я читаю, мне не подходит.
Во время установки mySQL я разрешил удаленные подключения к пользователю root.
Итак, я предоставил пользователю root все права, используя:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'my_password';
Я покраснела PRIVILEGES
после также
Я добавил строчку в свой
# vi /etc/my.cnf
bind-address=0.0.0.0
Я также открыл порт
shell> iptables -A INPUT -m conntrack --ctstate NEW -m tcp -p tcp --dport 3306 -j ACCEPT
shell> iptables-save
Я набираю inet ip-адрес, который вижу в ifconfig, в рабочую среду mysql.
Я что-то не так делаю? или я пропустил шаг?
Я получаю сообщение об ошибке «не могу подключиться к базе данных mysql (10060) после долгой паузы.
IP-адрес на виртуальном сервере такой же, как и тот, который указан как «неизвестный» на странице администратора маршрутизатора подключенных устройств.
Эти команды работали!
firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload
«Невозможно подключиться к базе данных mysql (10060)» означает, что это не проблема аутентификации.
Пытаться nc -v mysqlserver_ip_address 3306
. Он должен сказать «Ncat: Connected to ...». Если это так, это означает, что у вас есть TCP-соединение, поэтому проблема в mysql или в рабочей среде. Если он говорит что-то еще, сетевое оборудование сломано или сервер не прослушивает этот порт.
Я подозреваю, что у вас есть брандмауэр, отбрасывающий ваши пакеты. Длинная пауза обычно указывает на отброшенные пакеты, а не на отклоненное соединение. Если вы подключаетесь к не защищенному брандмауэром, но не открытому порту, сервер довольно быстро отправит вам отказ. В подавляющем большинстве случаев, если время соединения прерывается, это происходит потому, что что-то сбрасывает пакеты на пол, а не вежливо их отклоняет (вежливость - это довольно глупо, когда имеешь дело с людьми, сканирующими порты вашего компьютера). Это то, что часто делают брандмауэры. Так что, скорее всего, дело в брандмауэре.
Вы говорите, что сбежали iptables -A ....
, это поместит вашу новую строку в конец правил, что означает, что она, вероятно, не будет использоваться, потому что, вероятно, существует правило -j DROP по умолчанию, которое было в конце до того, как вы добавили это правило. Кроме того, iptables-save должен просто распечатать конфигурацию на стандартный вывод, а не сохранять конфигурацию брандмауэра в нужном месте.
Пытаться iptables -L
чтобы убедиться, что заказ неправильный. Если это так, вы можете поиграть с -I
. Однако более простой способ сделать это - сделать iptables-save > some_temp_file
, затем отредактируйте some_temp_file, а затем запустите iptables-restore < some_temp_file
.
Если брандмауэр работает так, как вы хотите, сделайте iptables-save > /etc/wherever_it_goes
. На fedora / redhat / centos это будет iptables save > /etc/sysconfig/iptables
.