Я буду подключаться к MySQL на облачном сервере ubuntu каждый день с Mysql Administrator
и Mysql Query Browser
Инструменты графического интерфейса, и я чувствую, что очень медленно отвечаю. Я знаю, что можно подключиться к ssh, введя следующую команду в терминале, а затем используя инструменты графического интерфейса Mysql.
ssh -L 3307:127.0.0.1:3306 mysql-server-ip
Но не всем легко запустить указанную выше команду в терминале, а затем использовать инструменты графического интерфейса.
Вышеупомянутая команда ssh также хороша, и я чувствовал, что работаю с локальными базами данных, но было бы лучше и проще для всех, если бы у нее была возможность указать эту команду ssh в самих инструментах mysql gui.
Более того, я думаю снять ограничения на основе IP, поскольку я использую правила iptables только для разрешения mysql и других портов для определенных IP-адресов на облачном сервере.
Есть ли лучший и простой способ подключения к mysql, например, с использованием сертификата вместе с инструментами mysql gui ?.
Наконец, я ожидаю, что с инструментами графического интерфейса Mysql (администратор и браузер запросов):
У кого-нибудь есть идеи ?. Спасибо!
Просто я мог сделать это с помощью SSH и MySQL Workbench. Загрузки Workbench доступны для различных версий ubuntu в эта ссылка. Чтобы избежать ограничений на основе IP, следует открыть порт ssh для всех и отключить вход с паролем ssh и вместо этого использовать входы по ssh-ключу. Только те, кому разрешен брандмауэр, могут подключаться к mysql, но имея закрытый ключ ssh, могут подключаться к mysql с помощью MySQL Workbench
независимо от местоположения, правил брандмауэра, IP-адресов и т. д. через ssh.
Взгляните на эти ссылки:
http://dev.mysql.com/doc/workbench/en/wb-new-server-instance-wizard.html
http://dev.mysql.com/doc/workbench/en/wb-manage-server-instance-dialog.html
Ниже приведены несколько снимков экрана, на которых показаны варианты подключения к mysql с помощью Workbench:
Чтобы избежать ограничения на основе IP-адресов с помощью MySQL Query Brower и Aministrator, я не знаю, кроме переадресации портов ssh.
Я не пробовал твой ответ, однажды попробую. Мне нужно больше времени, чтобы понять. Спасибо!
Недавно у меня была такая же проблема. Мне не удалось найти поддержку SSL в инструментах MySQLgui. Мне также не удалось найти прокси MySQL с поддержкой SSL, который я мог бы установить в своей сети следующим образом, т.е.
Я / кто-либо еще в моей сети ----------> Прокси-сервер MySQL в моей сети -------> MySQL через TLS --------> Удаленная конечная точка MySQL.
В конечном итоге я решил использовать stunnel и иметь:
Я / кто-либо еще в моей сети -----------> Хост Stunnel в моей сети: 3306 --------> MYSQL в туннеле TLS -----> Stunnel в удаленной сети : 3307 -----> Удаленная конечная точка MySQL
Конец удаленного stunnel также может быть сервером mysql. Вы можете использовать разные порты для разветвления на разные удаленные серверы MySQL.
Обновить: Вот что у меня работает:
Конец клиента
local-stunnel# cat /etc/stunnel/stunnel.conf |grep -v ';'
sslVersion = SSLv3
chroot = /var/lib/stunnel4/
setuid = stunnel4
setgid = stunnel4
pid = /stunnel4.pid
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
debug = 2
output = /var/log/stunnel4/stunnel.log
client = yes
[mysqlc]
accept = 13306
connect = remote.example.net:3307
Удаленный / серверный конец:
remote-stunnel# cat /etc/stunnel/stunnel.conf |grep -v ';'
cert = /etc/pki/tls/certs/stunnel.pem
chroot = /var/run/stunnel/
setuid = nobody
setgid = nobody
pid = /stunnel.pid
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
debug = 3
output = /var/log/stunnel/stunnel.log
[mysqls]
accept = 3307
connect = 3306
Сертификат и ключ должны быть сгенерированы и связаны с файлом (stunnel.pem). Мой выглядит так
# cat /etc/pki/tls/certs/stunnel.pem
-----BEGIN RSA PRIVATE KEY-----
MII.....
....
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIID....
....
-----END CERTIFICATE-----
Итак, мой туннель выглядит так:
ME------Plaintext MySQL----->local-stunnel:13306-----TLS--->remote-stunnel:3307---Plaintext MySQL--->127.0.0.1:3306
Конечно, вы можете изменить connect = 3306 на удаленной конечной точке на другой хост: 3306