WiltonDB 是一個基于 PostgreSQL 的開源數據庫,通過 Babelfish 插件支持 Microsoft SQL Server 協議以及 T-SQL 語句。
Babelfish 是亞馬遜提供的一個開源項目,使得 PostgreSQL 數據庫同時具有 Microsoft SQL Server 數據查詢和處理的能力。Babelfish 可以方便地將 Microsoft SQL Server 應用程序遷移到 PostgreSQL,需要改動的代碼很少甚至不需要改動。
WiltonDB 和 Babelfish 使用 Apache 2.0 或者 PostgreSQL 開源協議。
安裝 WiltonDB
WiltonDB 支持 Windows 以及 Linux 操作系統。
Windows 平臺安裝 WiltonDB
WiltonDB 提供了 Windows 操作系統安裝包,點擊 GitHub 鏈接下載安裝文件。運行安裝文件打開以下安裝界面:
然后按照界面提示,一步步完成安裝。
點擊“Finish”完成安裝,同時打開配置工具:
通過配置工具可以查看和修改數據庫配置。
Linux 平臺安裝 WiltonDB
對于 Linux 操作系統,可以通過 RPM 包或者 DEB 包進行安裝,也可以使用 Docker 容器運行 WiltonDB。
以 Rocky Linux 8 為例,安裝命令如下:
$ cat /etc/redhat-release
Rocky Linux release 8.8 (Green Obsidian)
$ sudo dnf install 'dnf-command(copr)'
$ sudo dnf copr enable wiltondb/wiltondb
$ sudo dnf update
$ sudo dnf install wiltondb
然后通過 wiltondb-setup 腳本初始化數據庫集群。
$ sudo wiltondb-setup
* Initializing database in '/var/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
* Initializing WiltonDB
WARNING: DB superuser 'wilton' was created with password 'wilton', please change the password before allowing remote connections.
* Initialized, use 'systemctl start postgresql' to start the server
初始超級用戶 wilton 的默認密碼是 wilton,建議使用前進行修改。
最后啟動 postgresql 服務。
$ sudo systemctl start postgresql
$ sudo systemctl status postgresql
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2023-11-07 11:53:52 UTC; 2s ago
連接 WiltonDB
WiltonDB 默認不支持遠程連接,這一點和 PostgreSQL 一致。如果想要通過遠程客戶端進行連接,可以使用 WiltonDB 配置工具(/install_dir/bin/wdb_config.exe)進行配置。
選擇“Networking Only”配置組,點擊“listen_addresses”進行修改:
完成配置之后,重啟 WiltonDB 服務。
使用 SSMS 連接數據庫
Microsoft SQL Server Management Studio(SSMS)可以用于連接 WiltonDB,默認端口為 1433。
連接數據庫時,輸入以下連接信息:
其中,主機地址和端口之間使用逗號(,)進行分隔。
連接成功后可以執行 SQL 語句:
使用 pgAdmin 連接數據庫
pgAdmin 可以通過 PostgreSQL 協議連接 WiltonDB,默認端口為 5432。
連接成功之后,pgAdmin 可以查看和操作 SSMS 創建的對象。
使用命令行連接數據庫
連接 Microsoft SQL Server 或者 PostgreSQL 的命令行客戶端,例如 sqlcmd 以及 psql,都可以用于連接 WiltonDB。
sqlcmd 連接數據庫的示例如下:
$ ./sqlcmd -S 127.0.0.1,1433 -U wilton -P wilton
1> select @@version
2> go
version
---------------------------------------------------------------------------------------------
Babelfish for PostgreSQL with SQL Server Compatibility - 12.0.2000.8
Oct 22 2023 17:48:32
Copyright (c) Amazon Web Services
PostgreSQL 15.4 (EL 1:15.4.wiltondb3.3_2-2.el8) on x86_64-redhat-linux-gnu (Babelfish 3.3.0)
(1 row affected)
該文章在 2023/11/28 11:52:11 編輯過