MySQL基礎知識第一期,如何遠端存取MySQL資料庫設定許可權方法總結,討論訪問單個資料庫,全部資料庫,指定使用者訪問,設定訪問密碼,指定訪問主機。1,設定訪問單個資料庫許可權複製代碼 代碼如下:mysql>grant all privileges on test.* to 'root'@'%';說明:設定使用者名稱為root,密碼為空白,可訪問資料庫test2,設定訪問全部資料庫許可權複製代碼 代碼如下:mysql>grant all privileges on *.* to '
查看event是否開啟複製代碼 代碼如下:show variables like '%sche%'; 將事件計劃開啟複製代碼 代碼如下:set global event_scheduler =1; 建立預存程序test 複製代碼 代碼如下:CREATE PROCEDURE test () BEGIN update examinfo SET endtime = now() WHERE id = 14; END; 建立event e_test複製代碼 代碼如下:create
公司資料中心計劃將海量資料做一次遷移,同時增加某時間欄位(原來是datatime類型,現在增加一個date類型),單表資料量達到6億多條記錄,資料是基於時間(月)做的partition由於比較忙,一直沒有總結,所以很細節的地方都記不清楚了,此處只是簡單總結下當時的情形,備忘亂打亂撞 最初接到任務,沒有明確的入手點,直接就是select * from db limit 10000,動態修改翻頁數量,通過控制台看耗時情況,慢複製代碼 代碼如下:SELECT IR_
1. 新增使用者複製代碼 代碼如下:mysql>insert into mysql.user(Host,User,Password) values("localhost","lionbule",password("hello1234"));mysql>flush privileges;2. 修改使用者密碼複製代碼 代碼如下:mysql>update mysql.user set password=password('new password') where
使用方式如下:複製代碼 代碼如下:mysql>load data local infile "D:/ab.txt" into table mytbl(name,age);使用上述的命令就可以將D:/ab.txt檔案的內容匯入到表mytbl中,其中name和age是表mytbl的欄位,對應ab.txt檔案中每行的資料。如果編譯安裝mysql時沒有指定–enable-local-infile,那麼在使用上述命令時會報如下錯誤:複製代碼 代碼如下:ERROR 1148 (42000): The
使用mysql 中的load 命令,講txt 檔案中的內容載入到資料庫表中,例如,建立table,名稱是user,一個欄位username;當前有db.txt檔案,內容是以空格分開的使用者名稱,例如:xiaowang xiaoliu zhangsan 將該檔案載入到資料表user中,使用命令即可: 複製代碼 代碼如下: load data local infile "/home/beaver/db" into table user lines terminated by ' ';
一、隨機查詢一條資料方法一:SELECT * FROM `table` ORDER BY RAND() limit 1評價:不建議使用,效率非常低,官方文檔中進行說明:Order By和RAND()連用,會多次掃描表,導致速度變慢。方法二:SELECT * FROM `table` WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `table`))) ORDER BY id LIMIT
在mysql中查詢5條不重複的資料,使用以下:複製代碼 代碼如下:SELECT * FROM `table` ORDER BY RAND() LIMIT 5就可以了。但是真正測試一下才發現這樣效率非常低。一個15萬餘條的庫,查詢5條資料,居然要8秒以上搜尋Google,網上基本上都是查詢max(id) * rand()來隨機擷取資料。複製代碼 代碼如下:SELECT * FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id)
MySQL提供標準的SQL模式比對,以及一種基於象Unix公用程式如vi、grep和sed的擴充Regex模式比對的格式一、SQL模式SQL的模式比對允許你使用“_”匹配任何單個字元,而“%”匹配任意數目字元(包括零個字元)。在 MySQL中,SQL的模式預設是忽略大小寫。下面顯示一些例子。注意在你使用SQL模式時,你不能使用=或!=;而使用LIKE或NOT LIKE比較操作符。SELECT 欄位 FROM 表 WHERE 某欄位 Like
批次更新mysql更新語句很簡單,更新一條資料的某個欄位,一般這樣寫:複製代碼 代碼如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一欄位為同一個值,mysql也很簡單,修改下where即可:複製代碼 代碼如下: UPDATE mytable SET myfield = 'value' WHERE other_field in
#!/bin/sh#code by scpman#功能:檢查並修複mysql資料庫表#將此指令碼加到定時中,指令碼執行時,等會讀庫,列出要修複的所有表,然後計時,開始修複#修複過程中將損壞的表記錄下來,修複完成後,將損壞的表,發郵件通知。fix_logs='/tmp/fix.log'user=''pass=''check_fix(){dblist=`/usr/bin/find /usr/dlm_db/mysql/ -type d | grep -vE
1,utf8_bin跟utf8_general_ci的區別 ci是 case insensitive, 即 "大小寫不敏感", a 和 A 會在字元判斷中會被當做一樣的; bin 是二進位, a 和 A 會別區別對待. 例如你運行: SELECT * FROM table WHERE txt = 'a' 那麼在utf8_bin中你就找不到 txt = 'A' 的那一行, 而 utf8_general_ci 則可以. 2,MyISAM 和 InnoDB
1、檢查並修改mysql的my.ini的設定檔複製代碼 代碼如下:default-character-set=utf82、建立資料庫是要指定字元集複製代碼 代碼如下:create database mydb default character set utf8 collate utf8_general_ci;3、建立資料表示也要指定字元集:出問題的命令: 複製代碼 代碼如下:CREATE TABLE IF NOT EXISTS `mydb` ( `username`