MySQL e MariaDB
Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →
MySQL, MariaDB e Amazon Aurora MySQL sono supportati come driver di TypeORM.
Installazione
npm install mysql2
Opzioni Data Source
Consulta Opzioni dell'origine dati per le opzioni comuni. Puoi utilizzare i tipi di origine dati mysql, mariadb e aurora-mysql per connetterti ai rispettivi database.
-
url- URL di connessione dove viene stabilita la connessione. Si noti che altre opzioni del data source sovrascriveranno i parametri impostati tramite l'URL. -
host- Host del database. -
port- Porta dell'host del database. La porta predefinita di MySQL è3306. -
username- Nome utente del database. -
password- Password del database. -
database- Nome del database. -
socketPath- Percorso del socket del database. -
poolSize- Numero massimo di client che il pool deve contenere per ogni connessione. -
charsetecollation- Charset e collation per la connessione. Se viene specificato un charset a livello SQL (come utf8mb4), viene utilizzata la collation predefinita per quel charset. -
timezone- Fuso orario configurato sul server MySQL. Utilizzato per convertire i valori data/ora del server in oggetti JavaScript Date e viceversa. Può esserelocal,Zo un offset nel formato+HH:MMo-HH:MM. (Predefinito:local) -
connectTimeout- Millisecondi prima che si verifichi un timeout durante la connessione iniziale al server MySQL. (Predefinito:10000) -
acquireTimeout- Millisecondi prima che si verifichi un timeout durante la connessione iniziale al server MySQL. Differisce daconnectTimeoutin quanto governa il timeout della connessione TCP mentre connectTimeout non lo fa. (Predefinito:10000) -
insecureAuth- Consente la connessione a istanze MySQL che richiedono il vecchio metodo di autenticazione (non sicuro). (Predefinito:false) -
supportBigNumbers- Quando si gestiscono numeri grandi (colonneBIGINTeDECIMAL) nel database, è consigliabile abilitare questa opzione. (Predefinito:true) -
bigNumberStrings- Abilitando siasupportBigNumberschebigNumberStrings, i numeri grandi (BIGINTeDECIMAL) vengono sempre restituiti come oggetti String JavaScript. (Predefinito:true). AbilitandosupportBigNumbersma disabilitandobigNumberStrings, i numeri grandi vengono restituiti come oggetti String solo quando non possono essere rappresentati accuratamente con oggetti Number JavaScript (cioè quando superano l'intervallo[-2^53, +2^53]), altrimenti vengono restituiti come oggetti Number. Questa opzione viene ignorata sesupportBigNumbersè disabilitato. -
dateStrings- Forza i tipi data (TIMESTAMP,DATETIME,DATE) a essere restituiti come stringhe invece che convertiti in oggetti JavaScript Date. Può essere true/false o un array di nomi di tipi da mantenere come stringhe. (Predefinito:false) -
debug- Stampa i dettagli del protocollo su stdout. Può essere true/false o un array di nomi di tipi di pacchetto da stampare. (Predefinito:false) -
trace- Genera stack trace sugli errori includendo il punto di chiamata dell'ingresso della libreria ("long stack traces"). Leggera penalizzazione delle prestazioni per la maggior parte delle chiamate. (Predefinito:true) -
multipleStatements- Consente multiple istruzioni MySQL per query. Utilizzare con cautela: può aumentare il rischio di attacchi SQL injection. (Predefinito:false) -
legacySpatialSupport- Utilizza funzioni spaziali legacy comeGeomFromTexteAsText, sostituite dalle funzioni standardST_GeomFromTextoST_AsTextin MySQL 8.0. (Predefinito corrente: true) -
flags- Elenco di flag di connessione da utilizzare oltre a quelli predefiniti. È anche possibile escludere quelli predefiniti. Per maggiori informazioni, consulta Connection Flags. -
ssl- oggetto con parametri SSL o una stringa contenente il nome del profilo SSL. Vedi SSL options. -
enableQueryTimeout- Se viene specificato un valore per maxQueryExecutionTime, oltre a generare un log di avviso quando una query supera questo limite temporale, il valore specificato di maxQueryExecutionTime viene utilizzato anche come timeout per la query. Per ulteriori informazioni, consulta mysql timeouts.
Opzioni aggiuntive possono essere aggiunte all'oggetto extra e saranno passate direttamente alla libreria client. Consulta ulteriori dettagli nella documentazione di mysql2.
Tipi di Colonna
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
Nota:
uuid,inet4einet6sono disponibili solo per MariaDB e per le versioni che li supportano.
Tipo di colonna enum
Vedi tipo di colonna enum.
Tipo di colonna set
Il tipo di colonna set è supportato da mariadb e mysql. Sono possibili diverse definizioni:
Utilizzando enum TypeScript:
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[]
}
Utilizzando un array con valori set:
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[]
}
Tipi Vector
MySQL supporta il tipo VECTOR a partire dalla versione 9.0, mentre in MariaDB i vettori sono disponibili dalla versione 11.7.