4354285625
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
import socket
|
|
import pymysql
|
|
|
|
_LOCAL_HOSTS = {"lekar", "sestra", "lenovo"}
|
|
|
|
|
|
def connect_mysql(user="root", password="Vlado9674+", database="medevio",
|
|
port=3306, charset="utf8mb4", autocommit=True):
|
|
"""
|
|
Připojí se k MySQL. Na lokálních stanicích (lekar/sestra/lenovo) použije
|
|
127.0.0.1 přímo, jinak zkusí 192.168.1.76 a pak 127.0.0.1 jako fallback.
|
|
Vrátí aktivní pymysql spojení nebo vyhodí RuntimeError.
|
|
"""
|
|
hostname = socket.gethostname().lower()
|
|
candidates = ("127.0.0.1",) if hostname in _LOCAL_HOSTS else ("192.168.1.76", "127.0.0.1")
|
|
|
|
params = dict(port=port, user=user, password=password,
|
|
database=database, charset=charset, autocommit=autocommit)
|
|
|
|
last_error = None
|
|
for host in candidates:
|
|
try:
|
|
conn = pymysql.connect(host=host, **params)
|
|
print(f"[mysql_db] Připojeno přes {host} (hostname: {hostname})")
|
|
return conn
|
|
except Exception as e:
|
|
print(f"[mysql_db] {host} selhal: {e}")
|
|
last_error = e
|
|
|
|
raise RuntimeError(f"MySQL nedostupné na žádné adrese. Poslední chyba: {last_error}")
|