Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megoldások a Data API Builder gyakori MySQL-kapcsolati, hitelesítési és adattípus-problémáira.
Gyakori kérdések
Mi a MySQL-támogatás a DAB-ban?
A Data API Builder relációs adatbázisként támogatja a MySQL-t. A DAB a MySqlConnector illesztővel csatlakozik, és a REST- és GraphQL-kéréseket SQL-lekérdezésekké fordítja le. Mind a saját üzemeltetésű MySQL-példányok, mind a felügyelt szolgáltatások, például az Azure Database for MySQL támogatottak.
Milyen kapcsolati sztringformátumot használ a MySQL?
A DAB szabványos MySQL-ADO.NET kapcsolati sztringet használ. Egy tipikus sztring így néz ki: Server=localhost;Port=3306;Database=mydb;Uid=myuser;Pwd=mypassword;. Állítsa be a kapcsolati karakterláncot a data-source.connection-string mezőben a dab-config.json-nél, vagy adja át a --connection-string segítségével a dab init-ban.
Milyen MySQL-verziók támogatottak?
A DAB támogatja a MySQL 8.0-s és újabb verzióit. A MySQL 5.7 működhet, de hivatalosan nem támogatott. Ellenőrizze a kiszolgáló verzióját a MySQL parancssorban SELECT VERSION(); . Ha olyan felügyelt szolgáltatáson dolgozik, mint az Azure Database for MySQL, használja a Rugalmas kiszolgálói szintet, amely támogatja a MySQL 8.0-t.
Gyakori problémák
Nem lehet csatlakozni a MySQL-tárolóhoz
Tünet: A DAB nem indul el Unable to connect to any of the specified MySQL hosts.
Okoz: A MySQL konténer portja nincs megfeleltetve, a hosztnév hibás, vagy a konténer inicializálása nem fejeződött be.
Felbontás: Ellenőrizze, hogy a konténer fut-e, és hogy a port 3306 le van-e képezve a gazdagépre. Használja Server=localhost;Port=3306 a kapcsolati sztringben. Hagyja, hogy néhány másodperccel a Tároló indítása után a MySQL befejezze az inicializálást a DAB elindítása előtt.
Hozzáférés megtagadva a felhasználó számára
Tünet: A DAB-naplók azt mutatják, hogy Access denied for user 'myuser'@'172.x.x.x' vagy hasonlók.
Okoz: A MySQL-felhasználói fiók egy adott gazdagépre korlátozódik. Amikor a DAB a Dockerben fut, a kapcsolatok a tárolóhálózat IP-címéről származnak, nem az localhost.
Megoldás: Adjon hozzáférést a felhasználónak bármely gazdagépről annak futtatásával GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword'; FLUSH PRIVILEGES;. Gyártás esetén cserélje le a % helyére az adott gazdagépet vagy alhálózatot. Ellenőrizze, hogy a jelszó egyezik-e, futtatva a mysql -u myuser -p parancsot ugyanarról a hálózatról.
Ismeretlen adatbázishiba
Tünet: A DAB az Unknown database 'mydb' indítás során tér vissza.
Okoz: A kapcsolati sztringben megadott adatbázis nem lett létrehozva a MySQL-kiszolgálón.
Megoldás: Hozza létre az adatbázist a MySQL-shellben való CREATE DATABASE mydb; futtatásával a DAB elindítása előtt. Amennyiben tárolót használ, állítsa be a MYSQL_DATABASE környezeti változót, hogy a MySQL az első indításkor létrehozza az adatbázist.
Nem támogatott oszloptípusra figyelmeztető figyelmeztetés
Tünet: A DAB naplózza a nem támogatott oszloptípusra vonatkozó figyelmeztetést, és a mező hiányzik a létrehozott sémából.
Okoz: Előfordulhat, hogy bizonyos MySQL-specifikus típusok, például SETa , ENUMvagy térbeli típusok nem rendelkeznek közvetlen leképezéssel a DAB típusrendszerében.
Felbontás: Tekintse át a DAB-naplókat az oszlop és a típus azonosításához. Fontolja meg, hogy az oszlopot egy támogatott típusra, például VARCHAR típusúvá módosítja, vagy a ENUM mezők esetén kizárja az oszlopot az entitás meghatározásából a mappings konfiguráció használatával, hogy kihagyja a közzétett sémából.
A frissítés nem működik a nézetekben
Tünet: A MySQL-nézet által támogatott entitásokra vonatkozó PUT vagy PATCH kérés hiba miatt meghiúsul, vagy nincs hatása.
Okoz: A Data API Builder jelenleg nem támogatja a MySQL-nézetek frissítési műveleteit. Ez egy ismert korlátozás, amelyet a GitHub 938- os számában észleltek.
Felbontás: Alaptábla-entitás használata írási műveletekhez. Ha a nézet szándékosan csak olvasható, állítsa a "módosítás" értéket false-ra az entitás engedélyeiben, hogy a korlátozás egyértelmű legyen.
A frissítés nem sikerül a számított oszlopokkal rendelkező táblákon
Tünet: A számított oszlopokat tartalmazó MySQL-táblák PUT vagy PATCH kérése meghiúsul, vagy hibát ad vissza.
Okoz: A Data API Builder nem kezeli megfelelően a számított oszlopokat a MySQL frissítési műveletei során. Ez egy ismert korlátozás, amelyet a GitHub-issue #1001 alatt követnek nyomon.
Megoldás: Jelenleg nincs áthidaló megoldás. Ha lehetséges, zárja ki a számított oszlopokat az entitás leképezéseiből, vagy kerülje az érintett entitásokon végzett frissítési műveleteket a probléma megoldásáig.
A beágyazott szűrés nem támogatott
Tünet: A kapcsolódó entitásmezőkre szűrő REST \ vagy GraphQL ilter lekérdezés hibát vagy váratlan eredményt ad vissza egy MySQL-alapú entitáson.
Okoz: A Data API Builder jelenleg nem támogatja a MySQL beágyazott szűrését. Ez egy ismert korlátozás, amelyet a GitHub 1019. számában észleltek.
Felbontás: Csak a felső szintű entitásmezőkre alkalmazza a szűrést. Beágyazott adatok esetén kérje le a szülőt, és végezze el a szűrést az ügyféloldalon, vagy strukturálja át a lekérdezést a beágyazott predikátumok elkerülése érdekében.
A tárolt eljárások nem támogatottak
Tünet: A MySQL-ben tárolt eljárás entitásforrásként való konfigurálása meghiúsul, vagy az entitás nem a várt módon viselkedik.
Okoz: A Data API Builder jelenleg nem támogatja a MySQL tárolt eljárásait. Ez egy ismert korlátozás, amelyet a GitHub 1024- ik számában észleltek.
Felbontás: Használjon inkább egy táblát vagy nézetet entitásforrásként. Kövesse a GitHub-jegyet, hogy értesüljön a MySQL tárolt eljárások támogatásának aktuális frissítéseiről.
Az adatbázis házirend nem kerül érvényesítésre a létrehozási műveleteknél
Tünet: A létrehozási mutáció vagy POST-kérés akkor is sikeres, ha egy adatbázis-szabályzatnak korlátoznia kell a műveletet.
Okoz: A MySQL-beli létrehozási műveletek adatbázisházirend-támogatása még nincs implementálva. Ez egy ismert korlátozás, amelyet a GitHub 1329- ik számában észleltek.
Felbontás: Szerepköralapú engedélyekkel korlátozhatja a létrehozási hozzáférést, amíg el nem érhető a MySQL Create adatbázisházirend-támogatása.
Az adatbázis házirend nem érvényesül a PUT és a PATCH műveletek esetén
Tünet: Egy MySQL-entitás PUT vagy PATCH kérése akkor is sikeres, ha egy adatbázis-szabályzatnak korlátoznia kell.
Okoz: A PUT és a PATCH műveletek adatbázisházirend-támogatása még nincs implementálva a MySQL-ben. Ez egy ismert korlátozás, amelyet a GitHub issue #1371-ben követnek nyomon.
Felbontás: Szerepköralapú engedélyekkel korlátozhatja a frissítési hozzáférést, amíg el nem érhető a MySQL-frissítési műveletek adatbázisházirend-támogatása.
On-Behalf-Of (OBO) hitelesítés nem támogatott
Tünet: Az On-Behalf-Of (OBO) hitelesítés konfigurálása egy MySQL-alapú DAB-példányhoz sikertelen, vagy a jogkivonat nem a várt módon van továbbítva az adatbázisnak.
Okoz: Az OBO-hitelesítés jelenleg csak az SQL Server és az Azure SQL esetében támogatott. A MySQL támogatása még nincs implementálva. Ez egy ismert korlátozás, amelyet a GitHub 3159- ös problémájában követnek nyomon.
Felbontás: Használjon támogatott hitelesítési módszert, például a MySQL kapcsolati sztring-hitelesítő adatait. Az OBO-támogatás nem SQL Server-adatbázisokra való kiterjesztésének időpontjáról a GitHub-problémát követve tájékozódhat.