MariaDB (Mysql) Externe Verbindungen zulassen
MariaDB (Mysql) Externe Verbindungen zulassen
Hallo,
ich will meine Datenbank (MariaDB) so einstellen, dass externe Verbindungen zugelassen werden, bzw nur bestimmt Verbindungen zugelassen werden.
Hab jetzt bereits was gelesen. Wo man die my.conf öffnen muss, wo man die Eintrag "bind-adresse" umändern muss. Bzw "127.0.0.1" auf "0.0.0.0".
Außerdem habe ich meine Mysql Benutzer von "localhost" auf "%" gestellt. Aber dennoch kann ich auf die Datenbank extern nicht zugreifen.
ich will meine Datenbank (MariaDB) so einstellen, dass externe Verbindungen zugelassen werden, bzw nur bestimmt Verbindungen zugelassen werden.
Hab jetzt bereits was gelesen. Wo man die my.conf öffnen muss, wo man die Eintrag "bind-adresse" umändern muss. Bzw "127.0.0.1" auf "0.0.0.0".
Außerdem habe ich meine Mysql Benutzer von "localhost" auf "%" gestellt. Aber dennoch kann ich auf die Datenbank extern nicht zugreifen.
Re: MariaDB (Mysql) Externe Verbindungen zulassen
Hast du nach der Änderung der Bind Address MariaDB neu gestartet?
Hast du nach dem Ändern dern Benutzer ein FLUSH PRIVILEGES durchgeführt?
Hast du nach dem Ändern dern Benutzer ein FLUSH PRIVILEGES durchgeführt?
Re: MariaDB (Mysql) Externe Verbindungen zulassen
Erstmal schauen was von den Configänderungen ankam, evtl wars die falsche Datei:
Welche bind-address ist da aktiv? Und halt mal Ausschau, ob da irgendwo "skip-networking" steht.
Dann im mysql client schauen, was bezüglich der Berechtigungen greift:
Wenn das soweit ok ist, hängts vielleicht an ner Firewall? Was sagen iptables und co?
https://mariadb.com/kb/en/library/confi ... nt-access/ kennst Du schon?
Und auch wenns leicht Offtopic ist: ne Datenbank direkt am Netz betreiben ist selten ne gute Idee, besonders wenn man keine Ahnung hat, was man da genau machen muss. Nur die Zugriffe einschränken reicht nicht, es gibt noch nen Haufen anderer Stellschrauben die für unerwünschten Besuch auf der Kiste sorgen können.
Code: Alles auswählen
mysqld --print-defaults
Dann im mysql client schauen, was bezüglich der Berechtigungen greift:
Code: Alles auswählen
SELECT User, Host FROM mysql.user;
https://mariadb.com/kb/en/library/confi ... nt-access/ kennst Du schon?
Und auch wenns leicht Offtopic ist: ne Datenbank direkt am Netz betreiben ist selten ne gute Idee, besonders wenn man keine Ahnung hat, was man da genau machen muss. Nur die Zugriffe einschränken reicht nicht, es gibt noch nen Haufen anderer Stellschrauben die für unerwünschten Besuch auf der Kiste sorgen können.
Re: MariaDB (Mysql) Externe Verbindungen zulassen
Danke für eure schnelle Rückmeldung.
@hec-tech
Maria-DB habe ich nach dem ändern neugestartet. Aber kein FLUSH PRIVILEGES durchgeführt.
@eggy
Folgendes gibt mir mysqld --print-defaults aus:
Und folgendes gibt mir SELECT User, Host FROM mysql.user;:
@hec-tech
Maria-DB habe ich nach dem ändern neugestartet. Aber kein FLUSH PRIVILEGES durchgeführt.
@eggy
Folgendes gibt mir mysqld --print-defaults aus:
"skip-networking" habe ich nicht gefunden. Auf einem Thread entnommen habe ich die "bind-adress" auf "0.0.0.0" gesetzt damit der MySQL Service nach außen lauscht.mysqld would have been started with the following arguments:
--user=mysql --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysq ld.sock --port=3306 --basedir=/usr --datadir=/var/lib/mysql --tmpdir=/tmp --lc-m essages-dir=/usr/share/mysql --skip-external-locking --bind-address=0.0.0.0 --ke y_buffer_size=16M --max_allowed_packet=16M --thread_stack=192K --thread_cache_si ze=8 --myisam_recover_options=BACKUP --query_cache_limit=1M --query_cache_size=1 6M --log_error=/var/log/mysql/error.log --expire_logs_days=10 --max_binlog_size= 100M --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
Und folgendes gibt mir SELECT User, Host FROM mysql.user;:
Ambesten würde ich den Zugriff auch nur auf bestimmte IPs zulassen.+------------+-----------+
| User | Host |
+------------+-----------+
| phpmyadmin | % |
| phpmyadmin | localhost |
| root | localhost |
+------------+-----------+
3 rows in set (0.00 sec)
Re: MariaDB (Mysql) Externe Verbindungen zulassen
Ich würde auch mal mit z.B. netstat schauen, ob der mysqld überhaupt mit den gewünschten Parametern am gewünschten Interface lauscht. Wenn das nicht der Fall ist, wär’s nicht zielführend, in der Userkonfiguration rumzuschauen. Wenn’s der Fall ist, kann ein Portscan von der Maschine, von der aus zugegriffen werden soll, mögliche Probleme mit dem Netzwerk aufzeigen oder ausschließen.
Die konkrete Fehlermeldung, statt „kann nicht zugreifen“ (aka „geht nicht!“), würde übrigens auch ’nen Hinweis gegeben haben.
Die konkrete Fehlermeldung, statt „kann nicht zugreifen“ (aka „geht nicht!“), würde übrigens auch ’nen Hinweis gegeben haben.
Re: MariaDB (Mysql) Externe Verbindungen zulassen
Also netstat gibt folgendes aus:
Und lauschen tut er ja über den Port 3306Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:45955 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25639 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:32330 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN
tcp 0 0 88.99.29.67:27021 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::41604 :::* LISTEN
tcp6 0 0 127.0.0.1:25510 :::* LISTEN
tcp6 0 0 88.99.29.67:70 :::* LISTEN
tcp6 0 0 88.99.29.67:7080 :::* LISTEN
tcp6 0 0 :::32808 :::* LISTEN
tcp6 0 0 :::6379 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::8087 :::* LISTEN
tcp6 0 0 :::443 :::* LISTEN
tcp6 0 0 :::25565 :::* LISTEN
tcp6 0 0 0.0.0.0:20001 :::* LISTEN
Re: MariaDB (Mysql) Externe Verbindungen zulassen
Gut, dann wäre das als Fehler schon mal aussortiert. Bleibt die Frage, was genau denn für ein Fehler kommt, wenn du dich zu verbinden versuchst. Einhergehend mit der Frage, wie du dich zu verbinden versuchst.
Re: MariaDB (Mysql) Externe Verbindungen zulassen
Folgendes wird mir von meine Console wiedergegeben wo ein Plugin sich versucht zu Datenbank zu verbinden.
Code: Alles auswählen
[23:13:46] [Server thread/ERROR]: [LuckPerms] Failed to init storage dao
[23:13:51] [Server thread/WARN]: Caused by: java.sql.SQLTransientConnectionException: luckperms-hikari - Connection is not available, request timed out after 5001ms.
[23:13:51] [Server thread/WARN]: at me.lucko.luckperms.lib.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:697)
[23:13:51] [Server thread/WARN]: at me.lucko.luckperms.lib.hikari.pool.HikariPool.getConnection(HikariPool.java:196)
[23:13:51] [Server thread/WARN]: at me.lucko.luckperms.lib.hikari.pool.HikariPool.getConnection(HikariPool.java:161)
[23:13:51] [Server thread/WARN]: at me.lucko.luckperms.lib.hikari.HikariDataSource.getConnection(HikariDataSource.java:100)
[23:13:51] [Server thread/WARN]: at me.lucko.luckperms.common.storage.implementation.sql.connection.hikari.HikariConnectionFactory.getConnection(HikariConnectionFactory.java:131)
[23:13:51] [Server thread/WARN]: at me.lucko.luckperms.common.messaging.sql.SqlMessenger.getConnection(SqlMessenger.java:84)
[23:13:51] [Server thread/WARN]: at me.lucko.luckperms.common.messaging.sql.AbstractSqlMessenger.init(AbstractSqlMessenger.java:55)
[23:13:51] [Server thread/WARN]: at me.lucko.luckperms.common.messaging.sql.SqlMessenger.init(SqlMessenger.java:54)
[23:13:51] [Server thread/WARN]: ... 15 more
[23:13:51] [Server thread/WARN]: Caused by: me.lucko.luckperms.lib.hikari.pool.PoolBase$ConnectionSetupException: java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=88.99.29.67)(port=3306)(type=master) : connect timed out
[23:13:51] [Server thread/WARN]: at me.lucko.luckperms.lib.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:501)
[23:13:51] [Server thread/WARN]: at me.lucko.luckperms.lib.hikari.pool.HikariPool.access$100(HikariPool.java:71)
[23:13:51] [Server thread/WARN]: at me.lucko.luckperms.lib.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:727)
[23:13:51] [Server thread/WARN]: at me.lucko.luckperms.lib.hikari.pool.HikariPool$PoolEntryCreator.call(HikariPool.java:713)
[23:13:51] [Server thread/WARN]: at java.util.concurrent.FutureTask.run(Unknown Source)
[23:13:51] [Server thread/WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[23:13:51] [Server thread/WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[23:13:51] [Server thread/WARN]: ... 1 more
Zuletzt geändert von fabi2604 am 31.07.2019 23:02:05, insgesamt 2-mal geändert.
Re: MariaDB (Mysql) Externe Verbindungen zulassen
Das weist dann doch auf Netzwerkprobleme, bzw. Probleme auf der Clientseite hin. Ich würde empfehlen, von der betreffenden Maschine aus manuell zu versuchen, eine Verbindung aufzubauen und zu gucken, ob sich nicht bessere Informationen finden lassen. Auch könntest du von der Zielmaschine aus manuell eine Verbindung unter Angabe der externen IP aufmachen, um zu schauen, ob’s tatsächlich nicht am Server liegt. (Siehe Edit)Code: Alles auswählen
[23:13:51] [Server thread/WARN]: Caused by: java.sql.SQLNonTransientConnectionException: Could not connect to address=(host=88.99.29.67)(port=3306)(type=master) : connect timed out
Zwei Bitten: könntest du Ausgaben zwischen [code] und [/code] stellen, statt zwischen [quote] und [/quote]? Das würd’s lesbar machen. Und könntest du die Ausgabe bitte auf relevante Teile beschränken? Das würd’s noch viel mehr lesbar machen. Der ganze Javakram interessiert nicht – besser wär’s sowieso, zum Debuggen die Verbindungen manuell aufzubauen.
Edit: nachdem die IP nun vorliegt, habe ich nun mal selbst den Portscan durchgeführt, den du eigentlich gemacht haben solltest:
Code: Alles auswählen
3306/tcp filtered mysql
OT: da sind noch ’ne Menge anderer unüblicher Ports offen – ich hoffe, das soll so sein, und du weißt, was du da tust. Ich habe da nicht näher geschaut – will ja nicht schuld sein, wenn’s ganz kaputtgeht und will auch nicht in den Logs auftauchen, wenn irgendwer Anzeige erstattet, weil er von Malware von der Maschine aus belästigt wird, oder weil illegaler Kram über die Maschine läuft.
Re: MariaDB (Mysql) Externe Verbindungen zulassen
Also auf der Root-Maschine laufen ein paar Dienste. Das kann die offenen Ports erklären.
Wie finde ich denn heraus ob es ein Paketfilter ist? Das ist ein Root-Server bei Hetzner denke da bin ich gut aufgehoben.
Wie finde ich denn heraus ob es ein Paketfilter ist? Das ist ein Root-Server bei Hetzner denke da bin ich gut aufgehoben.
Re: MariaDB (Mysql) Externe Verbindungen zulassen
Du solltest nicht rausfinden, ob es ein Paketfilter ist – das steht außer Frage. Du solltest rausfinden, wo der ist. Allerdings habe ich gerade nochmal geschaut und gefunden, dass der Port nun offen ist.
Ich denke, ich verabschiede mich mal aus diesem Thread – komme mir schon irgendwie ein wenig verschaukelt vor.
Ich denke, ich verabschiede mich mal aus diesem Thread – komme mir schon irgendwie ein wenig verschaukelt vor.
Re: MariaDB (Mysql) Externe Verbindungen zulassen
Mal vorweg: nicht zu wissen, warum auf nem öffentlich erreichbaren Server, den man selbst betreut, Ports offen sind, halte ich für grob fahrlässig. Das zeugt im besten Fall von naiver Sorglosigkeit, im schlechtesten von gnadenloser Inkompetenz. Kümmer Dich darum, sonst bekommst Du relativ schnell ungebeten Besuch (falls der nicht schon längst da ist), und das kann sehr böse Folgen -für Dich und andere- haben.
Zurück zum Problem: mach die Verbindung mit dem mysql-client und von dem Rechner aus, wo die Java-Anwendung läuft und poste sämtliche Ausgaben.
Zurück zum Problem: mach die Verbindung mit dem mysql-client und von dem Rechner aus, wo die Java-Anwendung läuft und poste sämtliche Ausgaben.