Synology-Forum.nl
Packages => Officiële Packages => PHPMyAdmin Package => Topic gestart door: Underlyingglitch op 01 november 2018, 11:51:24
-
Hallo allemaal,
Ik heb op mijn synology DiskStation PHPMyAdmin geinstalleerd en probeer deze te gebruiken voor mijn website (die niet op mijn synology staat).
Ik kan verbinden via:
xxxxx.myds.me/phpmyadmin (ook van buiten mijn eigen netwerk)
username: root
password: ********
Alles werkt en doet het
Nu probeer ik te verbinden via SequelPRO, en geeft hij een connection error.
Waar kan dit aan liggen
-
Nu probeer ik te verbinden via SequelPRO, en geeft hij een connection error.
Heb er geen verstand van maar, probeer het wel te begrijpen:
via SequelPRO
Gaat dit niet via PHPMyAdmin ?
Ik neem aan dat SequelPRO geen relatie heeft met Synology.
-
Wil je toegang hebben tot PHMyAdmin of tot je databases?
Als ik zo lees wat SequelPro doet, dan doet het hetzelfde als PHPMyAdmin, nl toegang geven tot structuur en data van een MySQL/MariaDB database.
Dan zou je met het forwarden en openenen van poort 3306 in router en firewall, en het aanmaken van een gebruiker met de juiste rechten op de dbase een eind moet komen.
Zie ook: https://www.synology-forum.nl/firmware-algemeen/external-access-mysql/ (https://www.synology-forum.nl/firmware-algemeen/external-access-mysql/)
-
Als je Mac op het LAN van de NAS zit gebruik met SequelPro :
IP nummer NAS
port 3306 als je MariaDB5 gebruikt
port 3307 als je MariaDB10 gebruikt.
Verder moet de gebruiker de rechten hebben om vanaf een andere lokatie te kunnen verbinden.
Raadpleeg de handleiding :
https://docs.phpmyadmin.net/nl/latest/privileges.html#assigning-privileges-to-user-for-a-specific-database
Standaard staat dat op localhost omdat de webserver en de database op dezelfde server staan.
Wil je vanaf het internet erbij, dan bovenstaande porten in de router forwarden.
Vanaf het internet kan je zowel het IP nummer van de internet aansluiting gebruiken als xxxxx.myds.me. Uiteraard ZONDER http er voor.
-
Maar die database staat toch niet op z'n NAS ?
mijn website (die niet op mijn synology staat)
Of snap ik het niet (probeer het wel ;D)
-
Als je de database wilt gebruiken voor een externe website, dan verbind je bijvoorbeeld met PHP als volgt:
$db = new MySQLi('WANIPnummer:33006', 'username', 'password', 'database');
Ik gebruik port 33006 ipv 3306 om koekeloerders voor de gek te houden. Wel naar de juiste port op de NAS forwarden.
Gebruiker 'username' heeft bij de rechten als server/host het ipnummer van de remote website.
Vanaf andere lokaties kan geen verbinding worden gemaakt.
Omdat alleen data wordt opgehaald, heeft de gebruiker alleen SELECT rechten.
Als op de remote webserver ook MySQL voorkomt, kan je die MySQL server met de NAS laten verbinden.
Dat trucje heet FEDERATED :
https://dev.mysql.com/doc/refman/8.0/en/federated-create-connection.html
PHP verbindt dan lokaal met de database die vervolgens de data ophaalt bij de NAS en het weer terug geeft aan PHP.
En zo knutsel je de boel bij elkaar.
-
Bedankt voor alle reacties. SequelPRO is een programma voor o.a. Mac wat eigenlijk doet wat phpmyadmin ook doet, maar omdat SequelPRO geen interfaces hoeft te laden gaat het sneller. Als ik mijn website toch op mijn nas heb, kan ik dan “localhost” gebruiken in mijn connection credentials?
-
Ik gebruik deze PHP code om met MariaDB te verbinden.
Voor MariaDB5 (localhost en port 3306 zijn standaard) :
<?php
$db = new MySQLi('localhost', 'username', 'password', 'database');
$db->set_charset("utf8mb4");
$db->query("SET NAMES utf8mb4 COLLATE utf8mb4_general_ci");
?>
Voor MariaDB10:
<?php
$db = new MySQLi('127.0.0.1:3307', 'username', 'password', 'database');
$db->set_charset("utf8mb4");
$db->query("SET NAMES utf8mb4 COLLATE utf8mb4_general_ci");
?>
De charset utf8mb4 zorgt er voor dat je ook de uitgebreide tekenset probleemloos kan opslaan.
Wel de database, tabellen en char veldnamen bijwerken.
https://stackoverflow.com/questions/30074492/what-is-the-difference-between-utf8mb4-and-utf8-charsets-in-mysql