全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SQL及关系型数据库数据分析
629 3
2024-10-30
[SQL]如何利用docker安裝SQLitebrowser,並解決中文數據亂碼問題?

SQLitebrowser是一個輕量級、嵌入式的SQL資料庫引擎,有別於MySQL等等中大型資料庫,其不需要一個獨立的伺服器程序或作業系統,而是可將所有資料、配置和索引都儲存在單一檔案(.sqlite),易於嵌入到應用程式中使用,很適合在嵌入式裝置和移動應用程式中使用,通訊軟體 微信的資料庫即是使用SQLite。

近期因在ubuntu server中架設一些應用服務,其中有些應用服務採用SQLite作為資料庫,為了查看SQLite中的數據,除了可在終端機安裝sqlite3並直接以命令指令調閱數據之外,尚可利用瀏覽器來查看,其中利用docker安裝SQLitebrowser即是一個可利用瀏覽器查看數據的方式...

完整文章請參考下列博客網址,謝謝。
https://hy-chou.blogspot.com/2024/08/sql-how-to-install-sqlitebrowser-by-docker-and-slove-chinese-data-show-problem.html

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2024-11-5 15:18:40
用Docker安裝SQLiteBrowser,解決中文數據亂碼問題的步驟
1. 拉取SQLiteBrowser Docker映像檔
linuxserver/sqlitebrowser Docker映像檔這是一個預先配置好的SQLiteBrowser Docker映像,可直接用:
sudo docker pull linuxserver/sqlitebrowser
2. 運行SQLiteBrowser Docker容器
接下來,用以下命令運行SQLiteBrowser容器並設置環境變數來處理中文數據。將LC_ALL設置為zh_TW.UTF-8,並安裝支持中文的字型包font-noto-cjk,解決中文數據亂碼問題。
sudo docker run -d \
  --name=sqlite-browser \
  -e PUID=1000 \  # 設定容器內部的用戶ID,對應主機的用戶ID
  -e PGID=1000 \  # 設定容器內部的群組ID,對應主機的群組 ID
  -e DOCKER_MODS=linuxserver/mods:universal-package-install \  # 設定安裝所有通用包
  -e INSTALL_PACKAGES=font-noto-cjk \  # 安裝支持中文的字型
  -e LC_ALL=zh_TW.UTF-8 \  # 設置語言環境為繁體中文
  -p 5000:3000 \  # 映射端口5000到容器的3000端口
  -p 5001:3001 \  # 映射端口5001到容器的3001端口
  -v /your_path/config:/config \  # 設定容器的配置檔案目錄
  --restart unless-stopped \  # 容器異常停止後自動重啟
  linuxserver/sqlitebrowser:latest  # 使用最新的SQLiteBrowser映像

-e PUID=1000 -e PGID=1000:是為了確保Docker容器內部的用戶和群組ID與宿主機一致,避免檔案權限問題。
-e INSTALL_PACKAGES=font-noto-cjk:這會安裝Noto CJK字型,支持中文顯示。
-e LC_ALL=zh_TW.UTF-8:設定容器的語言環境為繁體中文,解決可能的中文亂碼問題。
-p 5000:3000 和 -p 5001:3001:將容器內的3000和3001端口映射到宿主機的5000和5001端口,方便通過瀏覽器訪問。
-v /your_path/config:/config:將配置資料夾映射到宿主機,保證容器重啟後配置不會丟失。
3. 訪問SQLiteBrowser
容器啟動後,可通過瀏覽器訪問SQLiteBrowser。打開瀏覽器並訪問:
http://localhost:5000:如果在本機上運行容器,這將打開SQLiteBrowser的Web介面。
如果在遠程伺服器上運行,用該伺服器的IP地址代替localhost,例如 http://<server_ip>:5000。

4. 確保中文數據正確顯示
應能在SQLiteBrowser中看到正確顯示的中文數據,而不出現亂碼。是由於在容器中設置了中文語言環境並安裝了相應的字型包。

5. 停止或重新啟動容器
如果需要停止容器,可用以下命令:
sudo docker stop sqlite-browser
如果需要重新啟動容器:
sudo docker restart sqlite-browser
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2024-11-5 15:21:40
用Docker安裝SQLiteBrowser,解決中文數據亂碼問題的步驟
1. 拉取SQLiteBrowser Docker映像檔
linuxserver/sqlitebrowser Docker映像檔這是一個預先配置好的SQLiteBrowser Docker映像,可直接用:
sudo docker pull linuxserver/sqlitebrowser
2. 運行SQLiteBrowser Docker容器
接下來,用以下命令運行SQLiteBrowser容器並設置環境變數來處理中文數據。將LC_ALL設置為zh_TW.UTF-8,並安裝支持中文的字型包font-noto-cjk,解決中文數據亂碼問題。
sudo docker run -d \
  --name=sqlite-browser \
  -e PUID=1000 \  # 設定容器內部的用戶ID,對應主機的用戶ID
  -e PGID=1000 \  # 設定容器內部的群組ID,對應主機的群組 ID
  -e DOCKER_MODS=linuxserver/mods:universal-package-install \  # 設定安裝所有通用包
  -e INSTALL_PACKAGES=font-noto-cjk \  # 安裝支持中文的字型
  -e LC_ALL=zh_TW.UTF-8 \  # 設置語言環境為繁體中文
  -p 5000:3000 \  # 映射端口5000到容器的3000端口
  -p 5001:3001 \  # 映射端口5001到容器的3001端口
  -v /your_path/config:/config \  # 設定容器的配置檔案目錄
  --restart unless-stopped \  # 容器異常停止後自動重啟
  linuxserver/sqlitebrowser:latest  # 使用最新的SQLiteBrowser映像

-e PUID=1000 -e PGID=1000:是為了確保Docker容器內部的用戶和群組ID與宿主機一致,避免檔案權限問題。
-e INSTALL_PACKAGES=font-noto-cjk:這會安裝Noto CJK字型,支持中文顯示。
-e LC_ALL=zh_TW.UTF-8:設定容器的語言環境為繁體中文,解決可能的中文亂碼問題。
-p 5000:3000 和 -p 5001:3001:將容器內的3000和3001端口映射到宿主機的5000和5001端口,方便通過瀏覽器訪問。
-v /your_path/config:/config:將配置資料夾映射到宿主機,保證容器重啟後配置不會丟失。
3. 訪問SQLiteBrowser
容器啟動後,可通過瀏覽器訪問SQLiteBrowser。打開瀏覽器並訪問:
http://localhost:5000:如果在本機上運行容器,這將打開SQLiteBrowser的Web介面。
如果在遠程伺服器上運行,用該伺服器的IP地址代替localhost,例如 http://<server_ip>:5000。

4. 確保中文數據正確顯示
應能在SQLiteBrowser中看到正確顯示的中文數據,而不出現亂碼。是由於在容器中設置了中文語言環境並安裝了相應的字型包。

5. 停止或重新啟動容器
如果需要停止容器,可用以下命令:
sudo docker stop sqlite-browser
如果需要重新啟動容器:
sudo docker restart sqlite-browser
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2025-2-8 15:50:03
1. 拉取 SQLiteBrowser 的 Docker 鏡像
SQLiteBrowser 官方提供了 Docker 鏡像,可以直接拉取:

bash
复制
docker pull sqlitebrowser/sqlitebrowser
2. 運行 SQLiteBrowser 容器
運行容器時,可以通過掛載本地目錄來訪問 SQLite 數據庫文件:

bash
复制
docker run -d \
  --name sqlitebrowser \
  -v /path/to/your/database:/data \  # 將本地目錄掛載到容器的 /data 目錄
  -e LANG=zh_CN.UTF-8 \              # 設置語言環境為中文
  -e LC_ALL=zh_CN.UTF-8 \            # 確保所有區域設置為中文
  sqlitebrowser/sqlitebrowser
-v /path/to/your/database:/data:將本地存儲 SQLite 數據庫的目錄掛載到容器的 /data 目錄。

-e LANG=zh_CN.UTF-8 和 -e LC_ALL=zh_CN.UTF-8:設置容器的語言環境為中文 UTF-8,避免亂碼。

3. 解決中文數據亂碼問題
如果數據庫中的中文數據顯示為亂碼,可能是以下原因:

數據庫編碼問題:確保數據庫的編碼是 UTF-8。

可以在創建數據庫時指定編碼:

sql
复制
PRAGMA encoding = "UTF-8";
或者使用 SQLiteBrowser 的 File -> Export -> Database to SQL file 導出數據庫,然後重新導入並選擇 UTF-8 編碼。

容器語言環境設置:

確保容器運行時設置了正確的語言環境(如步驟 2 中的 LANG 和 LC_ALL)。

SQLiteBrowser 設置:

打開 SQLiteBrowser 後,進入 Edit -> Preferences -> Data Browser,確保字符編碼設置為 UTF-8。

4. 訪問 SQLiteBrowser
運行容器後,可以通過以下方式訪問 SQLiteBrowser:

如果是在本地運行,可以直接打開圖形界面。

如果是遠程服務器,可以通過 VNC 或 X11 轉發來訪問 GUI。

5. 示例:完整命令
以下是一個完整的命令示例:

bash
复制
docker run -d \
  --name sqlitebrowser \
  -v /home/user/databases:/data \
  -e LANG=zh_CN.UTF-8 \
  -e LC_ALL=zh_CN.UTF-8 \
  sqlitebrowser/sqlitebrowser
6. 驗證中文顯示
打開 SQLiteBrowser 後,加載數據庫文件,檢查中文數據是否正常顯示。如果仍有亂碼,請檢查數據庫文件的編碼是否為 UTF-8。

通過以上步驟,您應該可以成功安裝 SQLiteBrowser 並解決中文數據亂碼問題。如果問題仍然存在,請檢查數據庫文件的編碼和容器的語言環境設置。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群