Category: MySQL / Mariadb

MySQL 的 Safe Update Mode

最近要更新 MySQL 資料表內其中一個欄位的所有資料,只是用以下這個 SQL 指令: UPDATE table_name SET field_name=0; 有個 MySQL 回傳的錯誤訊息為: “You are using safe update mode and you tried to update a table without a WHERE clause that …

MySQL 字串連接

有時我們需要將不同欄位的資料連接,或者在現在的資料後面加入內容,當然可以先從 MySQL 匯出資料,再把連接好的字串更新到 MySQL,但這未免太麻煩,另一個較方便的方法是借助 CONCAT() 實現,CONCAT() 語法為: CONCAT(string_1, string_2, string_3, …) MySQL 的 CONCAT() 支援多個字串連接,但在 Oracle 裡面只可以有兩個參數,要實現多個字串連接可以用 ‘||’ 來實現。以下是 CONCAT() 的使用實例: update table_name set email=CONCAT(email, ‘:[email protected]’) where id=’1′; 以上 SQL …

MySQL 重設 root 忘記密碼

如果忘記了 MySQL 的 root 密碼,可以用以下方法重新設定: 1. 關閉 MySQL 伺服器。 2. 用以下指令啟動 MySQL,以跳過檢查權限的資料表 mysqld_safe –skip-grant-tables &< 3. 現在己經可以用空密碼進入 MySQL mysql -u root 4. 進入 MySQL 後執行以下指令更改 mysql root 密碼: mysql> update …

MySQL: [ERROR] Unknown character set 問題

早前升級一台主機的 MySQL Server,升級後發現部份資料表無法開啟,報出的錯誤訊息是: Unknown character set: ‘BIG5′ 出現這個問題的原因是新版本 MySQL 安裝時沒有安裝額外的字集,而對上一個版本的 MySQL 是用 YUM 安裝,所有透過套件工具安裝的 MySQL 也會預設安裝所有字集,解決方法是重新編譯 MySQL 並加上所有的字集的選擇 –with-extra-charsets=complex,編譯語法如下: ./configure — prefix=/usr/local/mysql –with-extra-charsets=complex 如果在 FreeBSD 遇上這個問題,而 FreeBSD 內的 MySQL 是透過 …

編譯及安裝 MySQL

雖然在 Unix Like 環境已經有很多預先編譯好的軟件,例如 rpm 及 deb,但我較喜歡使用編譯的方法安裝軟件,尤其是 server,以下是編譯及安裝 MySQL 4.1.18 的方法: 1. 到 MySQL Mirror 下載 source code 並儲存到主機上。 2. 執行以下指令: 3. MySQL 已經安裝完成,現在需要改變 mysql 目錄的 owner: 4. …

Python 連接 MySQL

MySQL 是十分流行的開源資料庫系統,很多網站也是使用 MySQL 作為後台資料儲存,而 Python 要連接 MySQL 可以使用 MySQL 模組。MySQLdb 模組可以讓 Python 程式連線到 MySQL server, 執行 SQL 語句及擷取資料等。 開始前要確定系統內的 Python 有安裝 MySQLdb 模式,你可以 Python command line interpreter 檢查,在指令模式輸入 python,然後便可以開始檢查:  …

MySQL 用戶管理

在安裝 MySQL 後,預設的 root 密碼是空字串,對於系統安全是一個很大的漏洞,本文會介紹如何修改 MySQL 的使用者密碼,以及如何新增/刪除用戶。 修改密碼 在 MySQL 內需要修改密碼,可以直接更新 mysql 資料庫內的 user 資料表。你可以在命令模式下輸入: # mysql -u root 或者在 phpmyadmin 內直接輸入以上最後兩句 SQL 語句也可以。 新增使用者 要新增 MySQL 使用者有兩個方法: — …

MySQL 備份 Shell Script

這個是我日常用作備份 MySQL database 的 shell script,因為以前是直接將所有資料庫匯出成一個 sql 檔,當其中一個資料庫有問題時,因為沒問題的資料庫不想有改動,要復原資料很麻煩。今天改了一下,它會用 mysqldump 將所有資料庫匯出成獨立 sql 備份檔,然後用 gzip 壓縮成 .gz 檔案。程式會儲存 5 天的備份,當有新備份時,最舊的備份會自動刪除。 使用方法: 修改 db_user, db_passwd 及 db_host 修改成你的 mysql 登入資料,所使用的用戶權限需要與 mysql root 相同。backup_dir …