MySQL sock for remote server: различия между версиями

Материал из Webko Wiki
Перейти к навигации Перейти к поиску
(Новая страница: «Категория:DB Для эмуляции локального сокета можно использовать ''socat'' <syntaxhighlight lang="bash"> yu…»)
 
 
Строка 1: Строка 1:
 
[[Категория:DB]]
 
[[Категория:DB]]
 +
== Общее свединья ==
 
Для эмуляции локального сокета можно использовать ''socat''
 
Для эмуляции локального сокета можно использовать ''socat''
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Строка 14: Строка 15:
 
Применимо для эмуляции любых сокетов.
 
Применимо для эмуляции любых сокетов.
  
Можно использовать такой скрипт, или написать сервис для systemd
+
=== Скрипт ===
 
<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