MySQL sock for remote server: различия между версиями
Перейти к навигации
Перейти к поиску
Sol (обсуждение | вклад) (Новая страница: «Категория:DB Для эмуляции локального сокета можно использовать ''socat'' <syntaxhighlight lang="bash"> yu…») |
Sol (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
[[Категория:DB]] | [[Категория:DB]] | ||
+ | == Общее свединья == | ||
Для эмуляции локального сокета можно использовать ''socat'' | Для эмуляции локального сокета можно использовать ''socat'' | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Строка 14: | Строка 15: | ||
Применимо для эмуляции любых сокетов. | Применимо для эмуляции любых сокетов. | ||
− | + | === Скрипт === | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
#! /bin/sh | #! /bin/sh | ||
Строка 20: | Строка 21: | ||
echo -e "\n do\n\tchmod o+rw /var/lib/mysql/mysql.sock" | echo -e "\n do\n\tchmod o+rw /var/lib/mysql/mysql.sock" | ||
socat UNIX-LISTEN:/var/lib/mysql/mysql.sock,reuseaddr,fork TCP-CONNECT:127.0.0.1:3306 | socat UNIX-LISTEN:/var/lib/mysql/mysql.sock,reuseaddr,fork TCP-CONNECT:127.0.0.1:3306 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | === Systemd service === | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $EDITOR /etc/systemd/system/mysql-sock.service | ||
+ | |||
+ | [Unit] | ||
+ | Description=MySQL local sock emulator | ||
+ | |||
+ | [Service] | ||
+ | After=network.target | ||
+ | |||
+ | Type=simple | ||
+ | ExecStart=/bin/socat UNIX-LISTEN:/var/lib/mysql/mysql.sock,reuseaddr,fork,perm=0666 TCP-CONNECT:192.168.90.12:3306 | ||
+ | ExecStartPre=/bin/mkdir -p /var/lib/mysql/ | ||
+ | Restart=always | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия на 17:04, 16 марта 2018
Общее свединья
Для эмуляции локального сокета можно использовать socat
yum install socat
#or
apt update && apt install socat
Делается это вот так
socat UNIX-LISTEN:/var/lib/mysql/mysql.sock,reuseaddr,fork TCP-CONNECT:127.0.0.1:3306
где вместо 127.0.0.1 можно указать необходимый аддрес удаленного сервера.
Применимо для эмуляции любых сокетов.
Скрипт
#! /bin/sh
echo -e "\n do\n\tchmod o+rw /var/lib/mysql/mysql.sock"
socat UNIX-LISTEN:/var/lib/mysql/mysql.sock,reuseaddr,fork TCP-CONNECT:127.0.0.1:3306
Systemd service
$EDITOR /etc/systemd/system/mysql-sock.service
[Unit]
Description=MySQL local sock emulator
[Service]
After=network.target
Type=simple
ExecStart=/bin/socat UNIX-LISTEN:/var/lib/mysql/mysql.sock,reuseaddr,fork,perm=0666 TCP-CONNECT:192.168.90.12:3306
ExecStartPre=/bin/mkdir -p /var/lib/mysql/
Restart=always
[Install]
WantedBy=multi-user.target