MySQL / MariaDB
Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →
TypeORM поддерживает драйверы для MySQL, MariaDB и Amazon Aurora MySQL.
Установка
npm install mysql2
Параметры источника данных
Общие параметры источника данных см. в разделе Параметры источника данных. Для подключения к соответствующим базам данных используйте типы источников данных mysql, mariadb и aurora-mysql.
-
url- URL подключения. Обратите внимание: другие параметры источника данных имеют приоритет над параметрами, заданными в URL. -
host- Хост базы данных. -
port- Порт хоста базы данных. Стандартный порт MySQL —3306. -
username- Имя пользователя базы данных. -
password- Пароль базы данных. -
database- Имя базы данных. -
socketPath- Путь к сокету базы данных. -
poolSize- Максимальное количество клиентов в пуле для каждого соединения. -
charsetиcollation- Кодировка и сравнение для соединения. Если задана кодировка уровня SQL (например utf8mb4), используется collation по умолчанию для этой кодировки. -
timezone- Часовой пояс, настроенный на сервере MySQL. Используется для преобразования значений даты/времени сервера в объект JavaScript Date и обратно. Допустимые значения:local,Zили смещение в формате+HH:MM/-HH:MM(по умолчанию:local). -
connectTimeout- Время в миллисекундах до таймаута при установке соединения с сервером MySQL (по умолчанию:10000). -
acquireTimeout- Время в миллисекундах до таймаута при установке TCP-соединения с сервером MySQL. Отличается отconnectTimeout, который не контролирует TCP-таймаут (по умолчанию:10000). -
insecureAuth- Разрешает подключение к экземплярам MySQL, использующим устаревший (небезопасный) метод аутентификации (по умолчанию:false). -
supportBigNumbers- Рекомендуется включать при работе с большими числами (BIGINTиDECIMAL) (по умолчанию:true). -
bigNumberStrings- При одновременном включенииsupportBigNumbersиbigNumberStringsбольшие числа (столбцыBIGINTиDECIMAL) всегда возвращаются как строки JavaScript (по умолчанию:true). ЕслиsupportBigNumbersвключен, аbigNumberStringsвыключен, большие числа возвращаются как строки только при выходе за диапазон[-2^53, +2^53](когда их нельзя точно представить с помощью чисел JavaScript), иначе — как числа. Игнорируется при отключённомsupportBigNumbers. -
dateStrings- Возвращает типы даты (TIMESTAMP,DATETIME,DATE) как строки вместо объектов JavaScript Date. Может быть true/false или массивом типов (по умолчанию:false). -
debug- Выводит детали протокола в stdout. Может быть true/false или массивом имён типов пакетов (по умолчанию:false). -
trace- Генерирует расширенные стек-трейсы ошибок ("long stack traces") с точкой входа библиотеки. Незначительно снижает производительность (по умолчанию:true). -
multipleStatements- Разрешает несколько SQL-инструкций в одном запросе. Повышает риск SQL-инъекций (по умолчанию:false). -
legacySpatialSupport- Использует устаревшие пространственные функции (GeomFromText,AsText) вместо стандартныхST_GeomFromText/ST_AsTextиз MySQL 8.0 (текущее значение по умолчанию: true). -
flags- Список флагов соединения вместо стандартных. Также позволяет блокировать флаги по умолчанию. Подробнее: Connection Flags. -
ssl- объект с параметрами SSL или строка, содержащая название SSL-профиля. Дополнительные сведения см. в разделе SSL options. -
enableQueryTimeout- Если указано значение для maxQueryExecutionTime, то помимо генерации предупреждения в журнале при превышении лимита времени выполнения запроса, это значение также используется как таймаут для запроса. Подробнее см. mysql timeouts.
Дополнительные параметры можно добавить в объект extra, и они будут переданы напрямую клиентской библиотеке. Подробнее см. в документации mysql2.
Типы столбцов
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
Примечание:
uuid,inet4иinet6доступны только в MariaDB и версиях, где они были реализованы.
Тип столбца enum
См. тип столбца enum.
Тип столбца set
Тип столбца set поддерживается mariadb и mysql. Доступны различные варианты определения столбца:
Использование перечислений 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[]
}
Использование массива со значениями 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[]
}
Векторные типы
MySQL поддерживает тип VECTOR начиная с версии 9.0, тогда как в MariaDB поддержка векторов появилась в версии 11.7.