PostgreSQL coub express.js freeware git jquery laravel links linux macos mysql node.js php powershell python ubuntu vim virtualbox анекдот блог игры интересно стихи цитаты

Задача простая. Есть удаленный хост с MySql. Удаленные подключения запрещены. Локальные для нашего пользователя разрешены. Таким образом как нам получить на свою машину доступ к удаленному хосту через какой-нибудь графический MySql клиент, а не только через консоль в шелле (самая надежная безглючная фигня кстати и лучше с боевой БД работать именно через неё, ага). Для этого cуществует утилита plink. Она поможет нам пробросить шелл соединение и забиндить под него локальный порт. Делается это просто. Делаем батничек lala.bat в нем пишем:
REM plink -N -L local_port:remote_localhost:remote_port remote_host_user@remote_host

plink -N -L 4500:localhost:3306 lala@lala-host.ru

Где:

  • lala - имя юзера
  • lala-host.ru - ваш хост
  • -N - не стартовать шелл, коммандная строка не нужна
  • -L - [listen-IP:]listen-port:host:port форвард локального порта на удаленный адрес
Для linux тоже самое будет немного иначе
ssh -N -f -L local_port:remote_localhost:remote_port remote_host_user@remote_host

В примере мы вешаем на свою локальную машину, на порт 4500 коннект к удаленному 3306 порту мускуля через ssh соединение. Потом берем любой клиент для бд и подключаемся к локалхосту на порт 4500. И все дела. Естественно должен быть шелл-доступ к удаленному хосту с мускулем и plink должен оставаться запущенным и авторизованным на время работы с бд.



Вот была такая необходимость выводить результат запроса к мускулю в простой текстовик в связи с тем что результат большой надо было посмотреть а удаленного доступа к серверу БД нЕбыло. Был только шел и sftp соответственно. Долго думать не пришлось, но на всякий случай я ещё спросил у старших товарищей, итого есть два варианта:

# тут вариант номер раз, без мана
lala:~$ echo 'show full processlist' | mysql -u root > res.txt

# это почти тоже самое но со знанием мана
lala:~$ mysql -u root -e 'show full processlist'  > res.txt


Появился замечательный бесплатный MySQL клиент под win (я даже стал подумывать о возвращении под винду, под неё стали делать действительно прикольные бесплатные софтины). Умеет он много, возможности впечатляют, посмотрите скриншоты. Реализован крайне симпатично. Скорость.. скорость вполне сносная на мой взгляд. "Русская версия dbForge Studio для MySQL бесплатна для частного некоммерческого использования" что есть несомненный плюс :) Снова требует .NET Framework 2.0 т.к. писан на нете. Удобно мапятся хоткеи. Немного капризный редактор, но возможно я просто не докопался до нужных настроек. В общем если вы LAMP разработчик и работаете под win, то я думаю эта штука вас немало порадует. А то EMS уже порядком поднадоел, хотя тоже сделан совсем неплохо.

вещь.

dbforge freeware mysql manager


Причем как это сделать ловко ушами и одной строчкой.. Да проще простого:
mysqldump -u username -p database_name | gzip -c > database_name.sql.gz
На выходе имеем упакованый гзипом мускульный дамп, правда поскольку видно -p, мускуль должен сначала попросить пароль. -p не совсем нужен если пользователь ходит работать без пароля например. Таким пользователем запросто может быть root, хоть это и не порядочно :) В общем очень удобно.


Жесть! Жесть!! Прилипалово!! Больше не пашет рутовый пароль для мускуля!! Но доступ в шелл (достаточный естественно ;) для старта-рестарта сервиса) есть. Что делать? Как перебить пароль для root-а? Бывает всякое, в том числе и такое. Решения мильён раз понаписаны в инете, но таки чтобы не забыть намалюю тут:
# Останавливаем мускуль, это раз.
/etc/init.d/mysql stop
Стартуем мускуль пропуская привелегии и только для локального использования, это два
mysqld --skip-grant-tables --skip-networking &
Авторизуемся под рутом безо всяких паролей, это три
mysql -u root
Переходим в базу MySQL и нахально перебиваем запросом пароль для пользователя с логином root, это четыре
USE mysql;
UPDATE user SET password=PASSWORD('newpassword') WHERE user='root';
Тут просто перезапускаем мускуль и собственно всё. Всё как было раньше, кроме рутового пароля.
/etc/init.d/mysql stop
/etc/init.d/mysql start


aghr