Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

分類: 未分類

安裝 MySQL ODBC driver

Posted on 2021 年 7 月 29 日2021 年 7 月 29 日 By 日落 在〈安裝 MySQL ODBC driver〉中尚無留言

ODBC 的原文是「Open Database Connectivity」,透過各家 DBMS 實作指定的 API / interface 來支援各種不同的資料庫系統、儲存格式。這邊將安裝 ODBC MySQL connector/ODBC 並建立 MySQL connection resource。

透過搜尋引擎可以找到很多 ODBC driver,這邊要裝的是 MySQL driver,所以會下載 Oracle 發佈的 MySQL ODBC driver。安裝過程全部使用預設值即可。

安裝完畢後,可以在開始功能表的「Windows 系統管理工具」中找到「ODBC 資料來源」,執行並準備連到 MySQL:

圖一:在開始功能表找到 ODBC 設定

要建立 MySQL resource 預先需要一些準備工作,讓 ODBC 可以透過指定的 MySQL user 連線:

  • 在 MySQL 建立新的 user。若只需相同的 privileges 時,也可以直接使用既有的 MySQL user。記得使用連線時,要特別注意 user host 的設定。
  • 為 user 開啟 database 權限,可以是單個或多個 database,也可以設定 read/write 權限。

More “安裝 MySQL ODBC driver” »

Tags:MySQL

透過 SSMS 設定 SQL Server 同時支援 Windows 認證與 SQL Server 認證

Posted on 2021 年 7 月 28 日2022 年 9 月 23 日 By 日落 在〈透過 SSMS 設定 SQL Server 同時支援 Windows 認證與 SQL Server 認證〉中尚無留言

安裝好 SQL server 後打開 SSMS,預設會使用 Windows 安裝者的帳號當作 sa 作為系統管理員登入。但往後建立的帳號若均使用 SQL server 進行認證的話,則無法使用 SSMS 操作。以下將說明如何設定 SQL server 同時支援二種類型的驗證方式。

More “透過 SSMS 設定 SQL Server 同時支援 Windows 認證與 SQL Server 認證” »

Tags:MSSQL

透過 SSMS 讀取登入記錄

Posted on 2021 年 7 月 26 日2021 年 7 月 26 日 By 日落 在〈透過 SSMS 讀取登入記錄〉中尚無留言

不知道為什麼會跑來研究 MS SQL server,總之很不習慣。

目前 MS SQL server 的主要操作工具是 SSMS,和 MySQL 對照的話類似 MySQL Workbench。但可能因為 DBMS 的架構設計不同,操作上差異很大。

SSMS 在登入時,如果給的錯誤訊息不夠明確,有很大的原因是為了預防惡意使用者找漏洞,因此要看詳細的錯誤訊息,必須透過 sa 去讀取錯誤記錄。必須使用有 sa 權限 (role) 的帳號登入,並在「物件總管」中找到「安全性」:

在「登入」上點滑鼠右鍵叫出選單,並依序找到「登入失敗」報表:

點我看大圖

另外一個我很不喜歡的特性,就是 Microsoft 家的產品都是顯示錯誤代碼,必須要透過說明和對照表才知道詳細的原因和問題。像是登入失敗的錯誤代碼必須到「MSSQL 錯誤錯誤 > 17,000 到 19,000」看 …. Orz

Tags:MSSQL

縮時攝影 – 空心菜發芽

Posted on 2021 年 7 月 8 日2021 年 7 月 8 日 By 日落 在〈縮時攝影 – 空心菜發芽〉中尚無留言

歷時 6 天,共約 9000 張照片 每一分鐘拍攝一張照片
影片中一秒 60 張 (影片中 1 秒約實際上的 1 小時)

More “縮時攝影 – 空心菜發芽” »

Tags:攝影

快速列出 table rows 的幾個方法

Posted on 2021 年 7 月 7 日2021 年 7 月 7 日 By 日落 在〈快速列出 table rows 的幾個方法〉中尚無留言

建立一個 table 並塞 fake data 來當作測試的資料表:

use `test`;

CREATE TABLE `people` (
  `id` bigint UNSIGNED NOT NULL,
  `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
  `email` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
  `birth` date NOT NULL,
  `phone` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL,
  `addr` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL,
  `city` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

ALTER TABLE `people`
  ADD PRIMARY KEY (`id`);

正常情況下要查詢 rows count 大概就是以下的 query 方法:

SELECT count(*) from prople ;

這個 query 會跑去 scan table 或是 scan index,當資料量到一定規模,scan 會花上好幾分鐘。

另一個方法是去 information_schema 裡面做查詢,可以找到每個 table 的大概的狀況 (不會是準確的數字):

SELECT * 
FROM `TABLES` 
WHERE     TABLE_SCHEMA = 'test' 
      and TABLE_NAME = 'people'

不過我在找問題時用了 explain,意外發現一個更快、更準確的方法:explain 會列出 index size,如果是使用 primary key + auto increment,這個 index size 其實就是 table size:

> explain select count(9) from `people` \G

id            | 1
select_type   | SIMPLE
table         | people
partitions    | <null>
type          | index
possible_keys | <null>
key           | PRIMARY
key_len       | 8
ref           | <null>
rows          | 11366812
filtered      | 100.0
Extra         | Using index
Tags:MySQL

文章分頁

上一頁 1 ... 55 56 57 ... 318 下一頁

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.