Есть ли стандартный формат DSN? - PullRequest
0 голосов
/ 29 февраля 2020

PHP PDO использует этот стиль:

MySQL

mysql:host=hostname;dbname=databasename с именем пользователя и паролем в их отдельных параметрах

PostgreSQL

pgsql:host=hostname;dbname=databasename;user=username;password=password

Но затем при поиске в Github анализатора DSN они, похоже, используют совсем другой формат, например:

mysql://user:pass@hostname:port/databasename

Мой вопрос: существует ли на самом деле стандартный формат DSN, который принимает каждый язык?

1 Ответ

1 голос
/ 01 марта 2020

Давайте посмотрим, что на самом деле DSN ?

DSN означает Имя источника данных . Но это также известно как Имя источника базы данных . DSN термин также перекрывается с строкой соединения . Большинство систем не делают различий между DSNs или connection strings, и этот термин часто можно использовать взаимозаменяемо.

Атрибуты DSN могут включать, но не ограничиваются:

  1. имя источника данных
  2. расположение источника данных
  3. имя драйвера базы данных, который может обращаться к источнику данных
  4. идентификатор пользователя для доступа к данным (если требуется)
  5. пароль пользователя для доступа к данным (если требуется)

Информация выше взята из wiki

В общем, следующий формат строки соединения поддерживается многими языками для соединений с базой данных. Это может быть стандартом сообщества. Но я не видел спецификации DSN.

scheme://username:password@host:port/dbname?param1=value1&param2=value2&...

Существует несколько способов подключения к базе данных. Таким образом, есть некоторые общие атрибуты, которые используются для всех типов соединений с базой данных. См. Следующие примеры:

Подключение к базе данных через сокет

mysql://user@unix(/path/to/socket)/dbname

Подключение к базе данных через нестандартный порт

pgsql://user:pass@tcp(localhost:5555)/dbname

Подключение к SQLite на компьютере Unix с использованием параметров

sqlite:////full/unix/path/to/file.db?mode=0666

Подключение к SQLite на компьютере Windows с использованием параметров

sqlite:///c:/full/windows/path/to/file.db?mode=0666

Подключение к MySQLi с использованием SSL

mysqli://user:pass@localhost/pear?key=client-key.pem&cert=client-cert.pem

Для подключения к MS Access иногда требуется admin в качестве имени пользователя

odbc(access)://admin@/datasourcename

Подключение к ODB C с указанным c курсором

odbc(access)://admin@/datasourcename?cursor=SQL_CUR_USE_ODBC

Здесь я предоставляю две ссылки для PostgreSQL и MySQL соответственно. Там вы узнаете, как они используют connection string для подключения к базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...