Я могу подключиться по ssh к удаленному серверу и войти в систему без проблем.
Я пытаюсь подключиться к удаленной базе данных mysql через туннель ssh и сталкиваюсь с проблемами. Я успешно создал туннель (проверено telnet). Когда я пытаюсь войти в систему с помощью команды:
mysql --host=127.0.0.1 -P 3302 -u fakeuser -p
я получил
Access denied for user 'fakeuser'@'192.168.100.93'
Проблема в @ 192.168.100.93. Я считаю, что мне нужно, чтобы это был fakeuser @ localhost. Поскольку я подключаюсь через туннель SSH, почему он не настроен на localhost? Как заставить его подключиться к localhost? откуда он берёт 192.168.100.93?
Обратите внимание, что я не могу изменить какие-либо настройки на сервере MySQL.
Спасибо за помощь!
Когда вы используете ssh-туннель, он устанавливает зашифрованную связь между вашей системой и удаленным сервером и связывает удаленный открытый порт с вашим определенным портом.
ssh -L 33333: локальный: 3306 fakeuser@server.remote.com
здесь 3306, как вы сказали, это порт mysql.
используйте IPADDRESS вместо localhost, т.е. 127.0.0.1
Connection to 10.10.0.31 closed. linux@tuxworld:~$ ssh -fNg -L 33333:localhost:3306 root@10.10.0.31 root@10.10.0.31's password: linux@tuxworld:~$
См. Ниже, например, что я сделал недавно, пользователь mysql является пользователем root, а пользователь ssh также является пользователем root. Я открыл новый терминал
linux@tuxworld:~$ mysql -u root -h 127.0.0.1 -P 33333 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.1.69 Source distribution Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> exit Bye linux@tuxworld:~$