Tag: MySQL
如果開啟了 MySQL binary log, 在 MySQL 資料目錄裡面會有很多這樣的檔案: mysql-bin.000001 mysql-bin.000002 mysql-bin.000003 mysql-bin.000004 mysql-bin.000005 MySQL 在預設情況下不會刪除舊 binary log, 可以透過設定 my.cnf 進行日誌輪替, 開啟 my.cnf, 加入這一行在 區塊內: expire_logs_days = 14 expire_logs_days 是指定 binary …
MySQL 的備份可以透過直接複製 MySQL 資料庫目錄(冷備份),或者用 mysqldump 匯出資料庫的完整 SQL 語句實現(熱備份),以下是兩種方法的優/缺點,以及實現方法: 冷備份 這種方法最大的好處是簡單,備份只要直接複製資料庫目錄,還原則只要將備份目錄抄回原來位置便可以,而且速度會較快。但缺點是冷備份時必須要關閉 MySQL,如果 MySQL 在執行時進行冷備份,備份檔可能會有不完整及損毀的情況,以下是冷備份步驟: 1. 關閉 MySQL: # /etc/rc.d/init.d/mysqld stop 2. 把 MySQL 的資料目錄(包括 ibdata1, ib_logfile0, ib_logfile1 等)完整複製到另一個硬碟裡面。 3. 開啟 …
MySQL 在 5.1 版本開始預設沒有支援 InnoDB, 如果用 yum 安裝的話, Redhat 會處理好 InnoDB 支援, 但如果自行編譯安裝的話, 便需要作出一點改動。以前我編譯 MySQL 會用以下參數編譯: 這樣會安裝 MySQL 到 /usr/local/mysql51, 並安裝所有額外的 charsets, 如果要在 MySQL 5.1 後支援 InnoDB, 需要加入支援 InnoDB …
要對 MySQL 資料庫內的資料替換字串,可以借助 PHP 的 str_replace(),但這實在太麻煩了,其實MySQL 已內建了這個功能,以下語句可以將 資料表的 欄位作 replace 動作, 是搜索字串; 是替換字串。 update set =replace(,’‘,’‘); 如果不想將整個資料表的欄位資料更換,可以在最後用 where 做條件選擇,例如: update set =replace(,’‘,’‘) where zip=’852′; 以上語句跟第一句的分別是,第二句只會對欄位 “zip” 為 “852″ 的紀錄作更改。
最近要更新 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 …
有時我們需要將不同欄位的資料連接,或者在現在的資料後面加入內容,當然可以先從 MySQL 匯出資料,再把連接好的字串更新到 MySQL,但這未免太麻煩,另一個較方便的方法是借助 CONCAT() 實現,CONCAT() 語法為: CONCAT(string_1, string_2, string_3, …) MySQL 的 CONCAT() 支援多個字串連接,但在 Oracle 裡面只可以有兩個參數,要實現多個字串連接可以用 ‘||’ 來實現。以下是 CONCAT() 的使用實例: update table_name set email=CONCAT(email, ‘:me@email.com’) where id=’1′; 以上 …
如果忘記了 MySQL 的 root 密碼,可以用以下方法重新設定: 1. 關閉 MySQL 伺服器。 2. 用以下指令啟動 MySQL,以跳過檢查權限的資料表 mysqld_safe –skip-grant-tables &< 3. 現在己經可以用空密碼進入 MySQL mysql -u root 4. 進入 MySQL 後執行以下指令更改 mysql root 密碼: mysql> …
早前升級一台主機的 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 …
雖然在 Unix Like 環境已經有很多預先編譯好的軟件,例如 rpm 及 deb,但我較喜歡使用編譯的方法安裝軟件,尤其是 server,以下是編譯及安裝 MySQL 4.1.18 的方法: 1. 到 MySQL Mirror 下載 source code 並儲存到主機上。 2. 執行以下指令: 3. MySQL 已經安裝完成,現在需要改變 mysql 目錄的 owner: 4. 執行以上指令後,便可以啟動 …
MySQL 是十分流行的開源資料庫系統,很多網站也是使用 MySQL 作為後台資料儲存,而 Python 要連接 MySQL 可以使用 MySQL 模組。MySQLdb 模組可以讓 Python 程式連線到 MySQL server, 執行 SQL 語句及擷取資料等。 開始前要確定系統內的 Python 有安裝 MySQLdb 模式,你可以 Python command line interpreter 檢查,在指令模式輸入 python,然後便可以開始檢查: …