2026-01-01

【Metabase】套用台灣地圖進行分析

參考資料 ----

simplemaps


Metabase 預設自帶 世界地圖 & 美國地圖,如果需要台灣地圖幫助我們進行資料分析,則要手動新增台灣圖資。


simplemaps 下載台灣的 GeoJSON 的檔案 -- 檔名 tw.json,瞄一下 json 檔的內容,包含了一級行政區,其中屬性 id, name 是我們需要的。

 
{
  "type": "FeatureCollection", 
  "features": [
    {
...
...

  "type": "Feature", 
      "properties": {
        "source": "https://simplemaps.com", 
        "id": "TWKIN", 
        "name": "Kinmen"
      }, 
      
...
...
 



因為在【LinuxMint 22.2 安裝設定 MySQL 8.0 + phpMyadmin】這篇筆記中,我們安裝了 phpMyadmin,所以 LinuxMint 一併安裝了 Apache,其網站根目錄位置為 /var/www/html/

tw.json 放置在 /var/www/html/ 下,然後在 Metabase 設定 tw.jsonurl,在本例為 http://localhost/tw.json


要注意的是:通常我們的資料庫中 縣/市 欄位並不是遵循 GeoJSONISO 名稱定義,所以需要做適當的轉換,例如:另外建一個對照用的 table

 
對照資料表:city_geo
+--------+--------+-------+
|   id   |  英文  |  中文  |
+--------+--------+-------+
| TWKIN  | Kinmen | 金門  | 
+--------+--------+-------+
|  ...   |  ...   |  ...  |
+--------+--------+-------+
 





2025-12-31

【Metabase】新增一般使用者

點擊右上角的齒輪圖示

管理員設定



點擊【邀請他人


Metabase 是以 e-mail 做帳號管理,輸入 user 的 e-mail 後,若您 或 貴公司有自己的 mail serverMetabase 就會寄送含該 user 的密碼的信件到 e-mail 的信箱;在本筆記中,因沒有架設 mail server,所以要手動記下 Metabase 自動產生的密碼。



登出管理員,讓剛剛新建的 user 登入


點擊齒輪圖示
帳號設定


輸入剛才 Metabase 產生的密碼,再變更為自己希望的密碼,如果不符合 Metabase 的密碼規則,就會看到提示。


2025-12-28

【Metabase】LinuxMint22.2,設定為開機即啟動 Metabase 服務

參考資料 ----

metabase.jar 移至 /usr/share/metabase/ 目錄
 
# 原本 metabase.jar 是放在 使用者家目錄下的 metabase 目錄內
[user]~$ cd  metabase
[user]$ sudo  su
[root]# groupadd  -r  metabase
[root]# useradd  -r  -s  /bin/false  -g  metabase  metabase
[root]# mkdir  /usr/share/metabase
[root]# cp metabase.jar  /usr/share/metabase
[root]# chown  -R  metabase:metabase  /usr/share/metabase
[root]# touch  /var/log/metabase.log
[root]# chown  syslog:adm  /var/log/metabase.log
[root]# touch  /etc/default/metabase
[root]# chmod  640  /etc/default/metabase
 


建立 metabase.service 服務檔
 
[root]# cd  /etc/systemd/system/
[root]# vim metabase.service
# 輸入下述內容
[Unit]
Description=Metabase server
After=syslog.target
After=network.target

[Service]
WorkingDirectory=/usr/share/metabase/
ExecStart=/usr/bin/java  -jar  /usr/share/metabase/metabase.jar
EnvironmentFile=/etc/default/metabase
User=metabase
Type=simple
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=metabase
SuccessExitStatus=143
TimeoutStopSec=120
Restart=always

[Install]
WantedBy=multi-user.target

:x 存檔離開
 


建立 syslog conf
 
[root]# vim  /etc/rsyslog.d/metabase.conf
# 輸入下述內容
if $programname == 'metabase' then /var/log/metabase.log
& stop

:x 存檔離開

# 重啟 rsyslog.service 以使 metabase.conf 生效
[root]# systemctl  restart  rsyslog.service
 


編輯 Metabase 的環境變數
 
[root]# vim  /etc/default/metabase
MB_PASSWORD_COMPLEXITY=strong
MB_PASSWORD_LENGTH=8    # 要求最短的密碼字串長度
MB_JETTY_HOST=0.0.0.0
MB_JETTY_PORT=3000
MB_DB_CONNECTION_URI="jdbc:mysql://localhost:3306/metabase?user=metabase&password=密碼&verifyServerCertificate=false&allowPublicKeyRetrieval=true"

MB_EMOJI_IN_LOGS=true    # log 要不要有顏文字...這還蠻有趣的...若不要就填 false
# any other env vars you want available to Metabase

:x 存檔離開
 


設定 metabase 為開機啟動
 
# 先手動啟動 metabase.service
[root]# systemctl  daemon-reload
[root]# systemctl  start  metabase.service
[root]# systemctl  status  metabase.service    # 觀察是否已啟動

# 另外再開瀏覽器, 看看是否能登入 metabase
# 確定執行沒問題了, 就改為開機自動啟動
[root]# systemctl  enable  metabase.service
 



相關筆記 ----

2025-12-26

【Metabase】LinuxMint22.2 上,社群版(Community) 將系統資料移至大型資料庫 MySQL8

參考資料 ----


Metabase 自帶的系統資料庫為 H2,僅用於測試試用期間,若要轉為正式應用(production),官方強烈建議將系統資料移至大型資料庫。

建議版本為 MySQL 5.7.7(含)MariaDB 10.2.2(含) 或 PostgreSQL 9.4(含) 以上;本筆記為 MySQL 8.0.44

注意:避免同時做 Metabase 更新升級 及 資料庫移植


關閉 Metabase,目前我的練功主機是開終端機視窗,在家目錄以
 
[user]~$ java  -jar  metabase.jar
 
的指令啟動 Metabase
所以只要在瀏覽器的 Metabase 頁面登出,然後在終端機視窗 Ctrl+C 中斷 Metabase 即可。


備份 H2︰複製 metabase.db.mv.db 到另一個安全的目錄存放。


以 root 登入 phpMyAdmin
MySQL 新增 metabase 帳戶並建立同名資料庫 metabase。
注意:建議密碼自已設定,而不要由 phpMyAdmin 幫您產生,以免密碼中不知道有哪個字元踩到了雷!!目前已知的有 【@】、【:】、【/】、【?】、【#】,會造成 java 錯誤解析 URI 字串,若是一定要用時,則在組連線字串時,須將上述字元改成 URI 編碼,後面再進一步說明。





 
-- 重點在最後面的 "with grant option", phpMyAdmin 圖形界面似乎做不到賦予 grant 權限
GRANT ALL PRIVILEGES ON `metabase`.* TO 'metabase'@'localhost' with grant option;
 


執行移植指令
 
# 切換到 metabase.jar 所在目錄, 在本例為 [user]~/metabase/
[user]~/metabase$  export MB_DB_TYPE=mysql
[user]~/metabase$  export MB_DB_CONNECTION_URI="jdbc:mysql://localhost:3306/metabase?user=metabase&password=密碼&verifyServerCertificate=false&allowPublicKeyRetrieval=true"
[user]~/metabase$ java  -DMB_DB_TYPE=mysql  -DMB_DB_CONNECTION_URI="jdbc:mysql://localhost:3306/metabase?user=metabase&password=密碼&verifyServerCertificate=false&allowPublicKeyRetrieval=true"  -jar  metabase.jar  load-from-h2  metabase.db    # 注意檔名
 
前面提到,如果密碼非得要用那幾個特殊字元,則在組 javaJDBC 連線字串時,要改成 URI 編碼,如下:
@ → %40
: → %3A
/ → %2F
? → %3F
# → %23


因為有備份 H2,所以可以放心刪除 metabase 所在目錄下的 H2 檔案,以確認 metabase 存取的是 MySQL。

重新啟動 metabase
 
[user]~/metabase$  export MB_DB_TYPE=mysql
[user]~/metabase$  export MB_DB_CONNECTION_URI="jdbc:mysql://localhost:3306/metabase?user=metabase帳戶&password=密碼"
[user]~/metabase$  java  -DMB_DB_CONNECTION_URI="jdbc:mysql://localhost:3306/metabase?user=metabase&password=密碼&verifyServerCertificate=false&allowPublicKeyRetrieval=true"  -jar  metabase.jar
 
重登入 metabase,可以看到之前製作的儀表板都在。


相關筆記 ----


2025-12-21

【Database】LinuxMint 22.2 安裝設定 MySQL 8.0 + phpMyadmin

參考資料 ----

ALTER USER Statement


* 這篇筆記是從 Mint Linux 20.3 安裝設定 MySQL 8.0 + phpMyadmin 那篇更新過來的,所以只要能理解、看得懂,部份截圖就沿用 LinuxMint20 的了。😇

VMWare Workstation 開放個人免費使用了!😄

新建一台 VMWare Workstation 虛擬機


偷懶,這次仍是安裝 MySQL,作業系統為 LinuxMint 22.2 MATE, MySQL 8.0


安裝完成後,設定 "更新管理員" 的 "軟體來源" -- 鏡像站改為國內 國家高速運算中心(https://www.nchc.org.tw/)










安裝 vim(Mint 預設已裝 vi,這個適合 80 鍵鍵盤,老人家用不慣 😓)
 
~$  sudo  apt  install  vim
 


暫時關閉防火牆
 
~$  sudo  ufw  disable

# 確認防火牆沒有啟動
~$  sudo  ufw  status
 

安裝 MySQL,Mint 會連帶安裝其他相關的套件
 
~$  sudo  apt  install  mysql-server
 

安裝完成後,MySQL server 應該會自行啟動執行
 
# 下述 3 個指令只是順手筆記, 不執行

# 查詢 MySQL 狀態
~$  sudo  systemctl  status  mysql

# 啟動 mysql
~$  sudo  systemctl  start  mysql

# 停止 mysql
~$  sudo  systemctl  stop  mysql
 


安裝後,進行安全性設定
 
~$  sudo  mysql_secure_installation
 
問答式設定,依指示回答,以下是老人家的設定,請依自己需求設定

是否要設定密碼強度規則?


密碼強度選擇 -- 1:中等 -- 8 個字碼以上,其中必須 至少 1 個大寫英文 + 至少 1 個小寫英文 + 至少 1 個數字 + 至少 1 個特殊字元

補充說明:密碼強度2(最強) -- 8 個字碼以上,除了必須滿足中等強度外 + 不能有容易被聯想的字(ex: P@ssw0rd → 可聯想到 password),本來我想設最強,但嚐試了好幾次,都被判定不符合強度2 的規定,只好退而求其次,改選強度 1。



是否移除匿名使用者:我選 y


是否 "不允許" MySQLroot 從遠端登入 MySQL:我選 y


是否移除 test 資料庫(因為稍後設定 MySQL 時要指定 phpMyAdmin 啟動時預設連線的資料庫,所以先留著,不刪)


重新載入權限資料表:我選 y

設定完成


如果重新執行 mysql_secure_installation,上述的步驟會略過一開始的【設定密碼強度】,若想完整重新執行 mysql_secure_installation,則需要先移除密碼強度套件 component_validate_password
 
# 剛安裝好 MySQL 時,預設的管理者帳號是 root,所以, 第 1 次以命令形式登入 MySQL,也不需要密碼
~$ sudo  mysql

# 進到 MySQL, 提示字元變成 >
-- SQL 指令沒有大/小寫分別,不過慣例上都會以大寫表示
-- (記得要加 分號 做為命令的結束)

-- 查詢已安裝的元件
> SELECT * FROM mysql.component;
+--------------+--------------------+------------------------------------+
| component_id | component_group_id | component_urn                      |
+--------------+--------------------+------------------------------------+
|            1 |                  1 | file://component_validate_password |
+--------------+--------------------+------------------------------------+
1 row in set (0.00 sec)

-- 刪除密碼強度套件
> UNINSTALL COMPONENT 'file://component_validate_password';

-- 退出 mysql
> EXIT
 


設定 MySQL 時區為台北(Taipei)
 
~$  sudo  vim  /etc/mysql/mysql.conf.d/mysqld.cnf

[mydqld]
...
...
default-time-zone = '+8:00'

:x 存檔離開
 


 
# 再次登入 MySQL
~$  sudo  mysql


-- 建立資料庫(順手筆記, 不執行)
>  CREATE  資料庫名稱;


-- 列出目前 MySQL 已建立的使用者帳號(順手筆記, 不執行)
>  SELECT user FROM mysql.user;


-- 新建一個使用者 admin, 給後續安裝的 phpMyAdmin
>  CREATE USER 'admin'@'localhost' IDENTIFIED  WITH  caching_sha2_password  BY '密碼';
-- 預設的密碼格式為 caching_sha2_password
-- 其他格式有:mysql_native_password, sha256_password, ...
-- 不過官方還是推薦 caching_sha2_password


-- 賦予 admin 最高權限
>  GRANT  ALL  PRIVILEGES  ON  *.*  TO  'admin'@'localhost' WITH GRANT OPTION;

>  exit
 


注意:
MySQL 8.0 預設不再支援 MyISAM




安裝 phpmyadmin
 
~$  sudo  apt  install  phpmyadmin

# 若安裝過程有失誤 或 不滿意, 想重新跑設定步驟, 可執行
~$  sudo dpkg-reconfigure phpmyadmin
 



因為這版的設定步驟跟之前不同,所以先選 <否>


再執行 dpkg-reconfigure phpmyadmin 重新設定












phpmyadmin 的帳戶改為我們在前面建立的 admin@localhost










打開本機的瀏覽器(預設是火狐Firefox),在網址列輸 入 http://localhost/phpmyadmin , 注意:不是 https


目前,我們還沒有啟用(加密)安全連線,也無法從別的電腦訪問這個內網



為 MySQL 的 root 帳戶加上密碼
 
~$  sudo  mysql

-- SQL 指令沒有大/小寫分別,不過慣例上都會以大寫表示
-- (記得要加 分號 做為命令的結束)
>  ALTER  USER  'root'@'localhost'  IDENTIFIED  WITH  CACHING_SHA2_PASSWORD  BY  '新密碼';

-- 退出,密碼才能生效
> EXIT


-- 從此之後登入 MySQL 就會要求您輸入密碼
~$  sudo  mysql  -u  root  -p
# 參數 -u 是要登入的使用者帳號
# -p 是稍後要輸入密碼
# 上面的指令按下 ENTER 後, 系統就會提示您要輸入密碼


# 另一種登入指令, 但不建議使用, 因為是將密碼以明碼方式顯示
# 注意: -p 跟密碼間沒有空格
# 但這麼一來, 您的密碼就顯示在命令列中, 旁人一覽無遺了
~$  sudo  mysql  -u  root  -p密碼


# 登入 MySQL 後, 提示字元變成 >
-- 檢視 root 帳戶
> SELECT  user,  host,  plugin,  authentication_string  FROM  mysql.user  WHERE  user='root';
+------+-----------+-----------------------+------------------------------------------------------------------------+
| user | host      | plugin                | authentication_string                                                  |
+------+-----------+-----------------------+------------------------------------------------------------------------+
| root | localhost | caching_sha2_password | $A$005$__HLm.}1*#ZzXhae2kc4K7Cvfg7TR0UxCxBKY2y2Ji9qieVGaXzMWL4Fn9 |
+------+-----------+-----------------------+------------------------------------------------------------------------+
1 row in set (0.00 sec)
 



2025-10-06

【軟體筆記】Win10/11 安裝新酷音輸入法 + 倚天 26 鍵

新酷音官網下載安裝軟體到電腦指定的位置,例如:d:\download\

可以看到目前的最新版為 PIME-1.3.0-stable-setup.exe


滑鼠雙擊安裝程式,依指示安裝






此時您的電腦已安裝好新酷音了,您的電腦應該同時有預先安裝的微軟注音 及 新酷音
→ 點擊螢幕右下角的輸入法
→ 選取新酷音

滑鼠右鍵點擊新酷音左邊的【
→ 點選【設定新酷音輸入法


此時,會開啟一個網頁,切換到【選字視窗外觀】頁籤
→ 【選字視窗選字鍵】改為 asdfghjkl;


切換到【鍵盤配置】頁籤
→ 改為 倚天 26 鍵

順便看看【特殊符號】和【簡易符號輸入】這兩個頁籤的使用說明

最後按下【套用設定】鈕,就完成了!


下述的進階設定,對安裝了多種輸入法的電腦尤其好用!😄

點擊 Windows 的開始圖示
→ 【設定】


點擊選單【時間與語言
→ 【輸入


點擊【進階鍵盤設定


覆寫預設輸入法】改為【新酷音輸入法


點擊【輸入語言快速鍵


點選【切換到 繁體中文(台灣) - 新酷音輸入(PIME)
→ 點擊【變更按鍵順序


設定為您偏好的按鍵組合,在本例為 Ctrl + Shift + 4
這樣您就可以快速切換輸入法到新酷音