MySQL / MariaDB
Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →
MySQL, MariaDB und Amazon Aurora MySQL werden als TypeORM-Treiber unterstützt.
Installation
npm install mysql2
Datenquellen-Optionen
Allgemeine Datenquellen-Optionen finden Sie unter Datenquellen-Optionen. Für die Verbindung zu den jeweiligen Datenbanken können Sie die Datenquellentypen mysql, mariadb und aurora-mysql verwenden.
-
url- Verbindungs-URL, über die die Verbindung hergestellt wird. Beachten Sie, dass andere Datenquellen-Optionen Parameter aus der URL überschreiben. -
host- Datenbank-Host. -
port- Port des Datenbank-Hosts. Der Standardport für MySQL ist3306. -
username- Datenbank-Benutzername. -
password- Datenbank-Passwort. -
database- Datenbankname. -
socketPath- Socket-Pfad der Datenbank. -
poolSize- Maximale Anzahl von Clients, die der Pool pro Verbindung enthalten soll. -
charsetundcollation- Zeichensatz/Kollation für die Verbindung. Wenn ein SQL-Level-Zeichensatz angegeben wird (z.B. utf8mb4), wird die Standardkollation für diesen Zeichensatz verwendet. -
timezone- Die auf dem MySQL-Server konfigurierte Zeitzone. Wird verwendet, um Server-Datum/Uhrzeit-Werte in JavaScript-Date-Objekte umzuwandeln und umgekehrt. Kannlocal,Zoder ein Offset im Format+HH:MModer-HH:MMsein. (Standard:local) -
connectTimeout- Millisekunden bis zum Timeout während des initialen Verbindungsaufbaus zum MySQL-Server. (Standard:10000) -
acquireTimeout- Millisekunden bis zum Timeout beim Aufbau der TCP-Verbindung zum MySQL-Server. Unterscheidet sich vonconnectTimeout, da es den TCP-Verbindungs-Timeout regelt, während connectTimeout dies nicht tut. (Standard:10000) -
insecureAuth- Ermöglicht die Verbindung zu MySQL-Instanzen, die die alte (unsichere) Authentifizierungsmethode verwenden. (Standard:false) -
supportBigNumbers- Sollte aktiviert werden, wenn mit großen Zahlen (BIGINT- undDECIMAL-Spalten) in der Datenbank gearbeitet wird. (Standard:true) -
bigNumberStrings- Wenn sowohlsupportBigNumbersals auchbigNumberStringsaktiviert sind, werden große Zahlen (BIGINTundDECIMALSpalten) immer als JavaScript-String-Objekte zurückgegeben (Standard:true). IstsupportBigNumbersaktiviert undbigNumberStringsdeaktiviert, werden große Zahlen nur dann als String-Objekte zurückgegeben, wenn sie nicht exakt als JavaScript Number-Objekte dargestellt werden können (d.h. wenn sie den Bereich[-2^53, +2^53]überschreiten), andernfalls als Number-Objekte. Diese Option wird ignoriert, wennsupportBigNumbersdeaktiviert ist. -
dateStrings- Erzwingt, dass Datumstypen (TIMESTAMP,DATETIME,DATE) als Strings statt als JavaScript-Date-Objekte zurückgegeben werden. Kann true/false sein oder ein Array von Typnamen, die als Strings beibehalten werden sollen. (Standard:false) -
debug- Gibt Protokolldetails auf stdout aus. Kann true/false sein oder ein Array von Pakettypen, die ausgegeben werden sollen. (Standard:false) -
trace- Erzeugt Stack Traces bei Fehlern, die den Aufrufort des Bibliothekseinstiegspunkts einschließen ("long stack traces"). Leichter Leistungsverlust für die meisten Aufrufe. (Standard:true) -
multipleStatements- Ermöglicht mehrere MySQL-Statements pro Abfrage. Vorsicht: Dies kann den Umfang von SQL-Injection-Angriffen vergrößern. (Standard:false) -
legacySpatialSupport- Verwendet veraltete räumliche Funktionen wieGeomFromTextundAsText, die in MySQL 8.0 durch standardkonformeST_GeomFromTextbzw.ST_AsTextersetzt wurden. (Aktueller Standard: true) -
flags- Liste von Verbindungs-Flags, die zusätzlich zu den Standard-Flags verwendet werden sollen. Es ist auch möglich, Standard-Flags auszuschließen. Weitere Informationen unter Connection Flags. -
ssl- Ein Objekt mit SSL-Parametern oder eine Zeichenkette, die den Namen des SSL-Profils enthält. Weitere Informationen: SSL-Optionen. -
enableQueryTimeout- Wenn ein Wert für maxQueryExecutionTime festgelegt ist, wird neben einer Warnung im Log bei Überschreitung dieser Zeitgrenze der angegebene maxQueryExecutionTime-Wert auch als Timeout für die Query verwendet. Weitere Details: mysql timeouts.
Zusätzliche Optionen können im extra-Objekt hinzugefügt werden und werden direkt an die Client-Bibliothek übergeben. Weitere Details finden Sie in der mysql2-Dokumentation.
Spaltentypen
bit, int, integer, tinyint, smallint, mediumint, bigint, float, double, double precision, dec, decimal, numeric, fixed, bool, boolean, date, datetime, timestamp, time, year, char, nchar, national char, varchar, nvarchar, national varchar, text, tinytext, mediumtext, blob, longtext, tinyblob, mediumblob, longblob, enum, set, json, binary, varbinary, geometry, point, linestring, polygon, multipoint, multilinestring, multipolygon, geometrycollection, uuid, inet4, inet6
Hinweis:
uuid,inet4undinet6sind nur für MariaDB und in den jeweiligen Versionen verf ügbar, die sie eingeführt haben.
enum-Spaltentyp
Siehe enum-Spaltentyp.
set-Spaltentyp
Der set-Spaltentyp wird von mariadb und mysql unterstützt. Es gibt verschiedene mögliche Spaltendefinitionen:
Verwendung von TypeScript-Enums:
export enum UserRole {
ADMIN = "admin",
EDITOR = "editor",
GHOST = "ghost",
}
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number
@Column({
type: "set",
enum: UserRole,
default: [UserRole.GHOST, UserRole.EDITOR],
})
roles: UserRole[]
}
Verwendung eines Arrays mit set-Werten:
export type UserRoleType = "admin" | "editor" | "ghost"
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number
@Column({
type: "set",
enum: ["admin", "editor", "ghost"],
default: ["ghost", "editor"],
})
roles: UserRoleType[]
}
Vektortypen
MySQL unterstützt den VECTOR-Typ seit Version 9.0, während in MariaDB Vektoren seit Version 11.7 verfügbar sind.