小結許可權的相關操作1 建立帳號 grant all privileges on *.* to z1@localhost; *.*表示對本地所有資料庫及表都有許可權,可以改為on test.user ,則對test資料庫的user表有許可權。 限制IP及加上密碼 grant select,insert,update..... on test1.* to 'z1'@'localhost' identified by '密碼'也可以用 on test.* to
這次繼續mysql的索引問題,這裡還是有不少原則可以總結一下的,大致歸納了如下面的1 對於複合式索引,如果查詢條件中有最左邊的一個,一般都會用到, 比如有索引(a,b),在SQL語句中如果有select * from table where a='.....',則這個索引一般用到,是最左匹配原則,但如果是按where
最近在幫人調優MYSQL時,感覺mysql的query cache其實並不是越大越好的,因為其實當資料表有如下變化時,CACHE實際時失效的:包括: INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP TABLE, or DROP DATABASE等所以如果表是頻繁讀的話,那對query cache調整下還可以,否則還是沒怎麼作用的.附調整參數:Query Cache相關參數:query_cache_size QC佔用空間大小,通過將其設定為0
在mysql 5中,開始支援事務了,在使用中要搭配mysqli來進行,有一定的模式,現小結如下<?// Instantiate the mysql class $mysqldb = new mysqli("localhost","root","xxx","xxx"); // Start by assuming the transaction operations will all succeed $success = TRUE; // Disable the
mysql5 中的mysqli的確值得仔細去用和學習一下,今天看了看其中的一些新特性,比如新增加了支援preparestament的支援,舉例子如下(摘自apress的書)<?php// Create a new server connection$mysqli = new mysqli("127.0.0.1", "siteuser", "secret", "company");// Create the query and corresponding
mysql innodb中,還是存在當恢複recovery故障後,時間很長的問題,查了下,原來原因如下:當故障發生,重新啟服務後,會自動完成恢複操作,將資料庫恢複到之前一個正常狀態。恢複進程會完成兩步,第一步:檢查redo日誌,將之前完成並提交的事務全部重做;第二步:將undo日誌中,未完成提交的事務,全部取消。那麼,就僅僅做了這麼兩步為什麼恢複過程會變得如此漫長呢?在InnoDB未對恢複速度做提升之前,MySQL的bug列表中,曾被提出了兩個改進請求:Bug #29847和Bug #49535
在一些情況下,MySQL可以直接使用索引來滿足一個 ORDER BY 或 GROUP BY 子句而無需做額外的排序。儘管 ORDER BY 不是和索引的順序準確匹配,索引還是可以被用到,只要不用的索引部分和所有的額外的 ORDER BY 欄位在 Where 子句中都被包括了。下列的幾個查詢都會使用索引來解決 ORDER BY 或 GROUP BY 部分:Select * FROM t1 orDER BY key_part1,key_part2,... ;Select * FROM t1
Can't open file: '.\test\mytable.frm' (errno: 24)shell> perror 24OS error code 24: Too many open files 這樣的錯誤的話,應該是mysql的檔案描述符不夠了,解決的方法為,增加操作系統的描述符號:設定OS參數(如果你有許可權的話):在檔案/etc/security/limits.conf新增如下行:mysql soft nofile 65535mysql hard nofile 65535
前幾天, 在管理系統的時候遇到一個奇怪的問題, 今天才有機會安裝好MySQL環境來重現此問題,由於不是最原始的環境, 所以未必能夠完全重現, 我只能努力重現關鍵問題了.. 我覺得此問題有點特別, 故在此大概的回想下當時的情景..工作時, 執行了一個su – mysql 的命令, 遇到了下面這樣一個錯誤..view sourceprint?1 [root@dbmain ~]# su - mysql 2 su: cannot set user id: Resource temporarily
在MySQL裡,我們一般使用SHOW STATUS查詢服務器狀態,文法一般來說如下:SHOW [GLOBAL | SESSION] STATUS [LIKE 'pattern' | WHERE expr]執行命令後會看到很多內容,其中有一部分是Handler_read_*,它們顯示了資料庫處理SELECT查詢語句的狀態,對於調試SQL語句有很大意義,可惜實際很多人並不理解它們的實際意義,本文簡單介紹一下:為了讓介紹更易懂,先建立一個測試用的表:CREATE TABLE IF NOT
1 對備份的注意點 mysql 5中,要備份的話,當然要先設定日誌了,在my.ini中設定如下 [mysqld]# The TCP/IP Port the MySQL Server will listen onport=3306log-bin="E:/mysql5/log/bin.log"log-error="E:/mysql5/log/error.log"log="E:/mysql5/log/mysql.log" 備份時,用mysqldump,比如mysqldump -u