Time of Update: 2017-01-18
在備份資料庫的時候,資料表中可能存在這樣的值array('a'='b', 'c'='d') 這種格式的值。而在資料匯出的時候 會將換行換成\n(windows下是這樣,unix下可能是另一種符號)。而當在回複資料的時候,如果用mysql -h localhost -u root -proot < path/*.sql進行恢複的時候,這樣資料庫會報告“不能識別"\n"字元的錯誤提示,從而使操作終止。 想了半天,難道是在資料匯出的時候有個選項可以禁止將換行轉換成
Time of Update: 2017-01-18
選項default-charaset-set=utf8; 然後建立一個資料表 create table a_table(b varchar(255) not null); insert into a_table values('北京'); 這個時候插入的是中文,系統會報告錯誤:Incorrect string value: '\xB1\xB1\xBE\xA9' for column 'b' at;
Time of Update: 2017-01-18
所以以 複製代碼 代碼如下:create_time datetime default now() 的形式設定預設值是不可能的。 代替的方案是使用TIMESTAMP類型代替DATETIME類型。 CURRENT_TIMESTAMP :當我更新這條記錄的時候,這條記錄的這個欄位不會改變。 CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Time of Update: 2017-01-18
假設現在有如下N條記錄 表明叫book id author title 1 aaa AAA 2 bbb BBB 3 ccc CCC 4 ddd DDD 5 eee AAA 現在想從這5條記錄中查詢所有title不重複的記錄 select distinct title,author from book這樣是不可以的 因為distinct只能作用於一個欄位 想請教應該怎麼寫 答案: 複製代碼 代碼如下:select a.* from book a right join ( select
Time of Update: 2017-01-18
當一個從伺服器串連到主伺服器時,它通知主伺服器從伺服器在日誌中讀取的最後一次成功更新的位置。從伺服器接收從那時起發生的任何更新,然後封鎖並等待主伺服器通知下一次更新。在實際項目中,兩台分佈於異地的主機上安裝有MySQL資料庫,兩台伺服器互為主備,客戶要求當其中一台機器出現故障時,另外一台能夠接管伺服器上的應用,這就需要兩台資料庫的資料要即時保持一致,在這裡使用MySQL的同步功能實現雙機的同步複製。以下是操作執行個體:1、資料庫同步設定主機作業系統:RedHat Enterprise
Time of Update: 2017-01-18
測試環境:mysql 5.0.45 【註:可以在mysql中通過mysql> SELECT VERSION();來查看資料庫版本】 一、串連MYSQL。 格式: mysql -h主機地址 -u使用者名稱 -p使用者密碼 1、串連到本機上的MYSQL。 首先開啟DOS視窗,然後進入目錄mysql\bin,再鍵入命令mysql -u root -p,斷行符號後提示你輸密碼.注意使用者名稱前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸入密碼.
Time of Update: 2017-01-18
一個重要的應用就是如何在遺忘root使用者密碼的時候修改密碼,使用的方法是啟動MySQL伺服器時忽略載入授權表。由MySQL使用使用者名稱和口令的方法與Unix或Windows使用的方式有很多不同之處: ·MySQL 使用於認證目的的使用者名稱,與Unix使用者名稱(登入名稱字)或Windows使用者名稱無關。預設地,大多數MySQL客戶嘗試使用當前
Time of Update: 2017-01-18
複製代碼 代碼如下:其中的長度以位元組為單位名稱 長度 用法 TINYINT(M) BIT,BOOL,BOOLEAN 1 如果為無符號數,可以儲存從0到255的數; 否則可以儲存從-128到127的數。 SMALLINT(M) 2 如果為無符號數,可以儲存從0到65535的數; 否則可以儲存從-32768到32767的數。
Time of Update: 2017-01-18
1. 進入mysql/bin目錄下輸入mysqladmin processlist; 2. 啟動mysql,輸入show processlist(關閉某一線程 kill id;); 如果有 SUPER 許可權,則可以看到全部的線程,否則,只能看到自己發起的線程(這是指,當前對應的MySQL帳戶啟動並執行線程)。 得到資料形式如下(只截取了三條): mysql> show processlist; +-----+-------------+--------------------+-----
Time of Update: 2017-01-18
MySQL Proxy最強大的一項功能是實現“讀寫分離(Read/Write Splitting)”。基本的原理是讓主要資料庫處理事務性查詢,而從資料庫處理SELECT查詢。資料庫複寫被用來把事務性查詢導致的變更同步到叢集中的從資料庫。 Jan Kneschke在《MySQL Proxy learns R/W Splitting》中詳細的介紹了這種技巧以及串連池問題:
Time of Update: 2017-01-18
基本的原理是讓主要資料庫處理事務性查詢,而從資料庫處理SELECT查詢。資料庫複寫被用來把事務性查詢導致的變更同步到叢集中的從資料庫。 Jan Kneschke在《MySQL Proxy learns R/W
Time of Update: 2017-01-18
一、INSERT和REPLACE INSERT和REPLACE語句的功能都是向表中插入新的資料。這兩條語句的文法類似。它們的主要區別是如何處理重複的資料。 1. INSERT的一般用法 MySQL中的INSERT語句和標準的INSERT不太一樣,在標準的SQL語句中,一次插入一條記錄的INSERT語句只有一種形式。 INSERT INTO tablename(列名…) VALUES(列值); 而在MySQL中還有另外一種形式。 INSERT INTO tablename SET
Time of Update: 2017-01-18
例如,如果用戶端執行了查詢,但僅對第1行感興趣,那麼不會傳輸剩餘的行。 游標是唯讀,不能使用游標來更新行。 未實施UPDATE WHERE CURRENT OF和DELETE WHERE CURRENT OF,這是因為不支援可更新的游標。 游標是不可保持的(提交後不再保持開啟)。 游標是不敏感的。 游標是不可滾動的。 游標是未命名的。語句處理常式起著游標ID的作用。 對於每條預先處理語句,僅能開啟1個游標。如果需要多個游標,必須處理多條語句。
Time of Update: 2017-01-18
以mysql-noinstall-5.0.22-win32為例,解壓縮後會看到mysql-5.0.22-win32檔案夾下面,有五個ini格式的檔案,把my-medium.ini檔案拷貝一份,改名為my.ini,開啟my.ini檔案,在[client]、[mysqld]下面加上default-character-set=gb2312,其含義就是把gb2312設定為資料庫的預設字元集。設定完畢後需要重新啟動myqsl服務。 同理,可以把其他字元集設定成預設字元集。
Time of Update: 2017-01-18
但請注意,下面的最佳化並不是完全的。MYSQL實施了許多最佳化,但我沒時間全部測試. MySQL的一些最佳化列在下面: 刪除不必要的括弧: ((a AND b) AND c OR (((a AND b) AND (c AND d)))) -> (a AND b AND c) OR (a AND b AND c AND d) 常數調入: (a<b AND b=c) AND a=5 -> b>5 AND b=c AND a=5 刪除常數條件: (B>=5 AND B=5
Time of Update: 2017-01-18
這是因為你在安裝MySQL的某一步中勾選了“Add firewall exception for this port”,但是你伺服器的Windows的防火牆又沒有開啟,所以會有這個提示,一般情況下點擊OK就好了,不會產生什麼系統錯誤。Windows server 2003 正版系統預設是沒有開啟Windows防火牆的,某些原版盜版也是沒有開啟的,不建議大家使用各種美化、修改過的Windows server 類系統。畢竟這是伺服器。
Time of Update: 2017-01-18
如果使用的是MySQL 5.0.x可以直接將以下內容儲存替換MySQL中的my.ini,記得要修改basedir和datadir兩個欄目的路徑。複製代碼 代碼如下:[client] port=3306 [mysql] default-character-set=gbk [mysqld] port=3306 basedir="D:/web/mysql/" datadir="D:/web/mysql/Data/" default-character-set=gbk
Time of Update: 2017-01-18
如果未設定TMPDIR,MySQL將使用系統的預設值,通常為/tmp、/var/tmp或/usr/tmp。如果包含臨時檔案目錄的檔案系統過小,可對mysqld使用“—tmpdir”選項,在具有足夠空間的檔案系統內指定1個目錄。 在MySQL
Time of Update: 2017-01-18
資料庫檔案很大,約有70G, 如果普通的遷移,需要在未經處理資料庫匯出資料,然後在新資料庫匯入資料 經仔細考慮,是否MySQL的資料庫檔案儲存格式在不同的作業系統相同呢? 測試過程如下: 在64位SUN機器上安裝64位版的MySQL 停止MySQL服務 複製Windows上的32位MySQL的資料檔案(全部,除了system和日誌等)到64位機器上, 修改相應的檔案和目錄許可權, 檔案為 chmod 660 目錄為 chmod 700 然後重啟MySQL服務,運行正常。 總結:
Time of Update: 2017-01-18
/** * @Purpose: Mysql資料庫訪問類 * @Package: * @Author: lisen@sellingclub.cn * @Modifications: * @See: * @Time: 2008.10.10 */ class DB_MYSQL { //============================================================ private $Host = 'localhost'; private $Database =