一、UDF的安全問題利用譬如, 執行一條sql語句查看/etc/passwd檔案的內容: 這裡主要是用到了load_file()函數,當然這個函數是可以被禁用的。以上可以輕鬆看到/etc/passwd檔案的資訊和ip地址,當然其他的檔案內容都可以被看到。由於load_file()函數只能實作類別似系統命令cat的查看檔案功能,但是想執行系統命令的功能,那麼只能用UDF了,也就是User defined
MySql使用者手冊建議,在構造簡單查詢時,仍使用萬用字元。如:Select [*|fieldname list] From [tablename] where [fieldname] like ["%someletter"|"%someletter%","_","?someletter"];但在一些特殊查詢中,不用Regex是不行的。MYSQL提供的RegexWHERE謂詞有三個,分別是:REGEXP,
索引總長度的限制是:The InnoDB internal maximum key length is 3500 bytes, but MySQL itself restricts this to 3072 bytes. (1024 bytes for non-64-bit builds before MySQL 5.0.17, and for all builds before 5.0.15.)在utf8字元集下,varchar(255) 的[資料部分]佔用 255*3=765
正確的改變table字元集的語句是:alter table xxx convert to character set utf8;而不是想當然的:alter table xxx default charset utf8;字元集從GBK轉成utf8,會增大欄位所佔用的空間,有可能會改變欄位的類型:比如text有可能會自動變成medium text但是varchar沒有自動變成medium text.下面看測試:建一張GBK的表:mysql> SHOW CREATE TABLE
文法INSERT INTO db1_name (field1,field2) SELECT field1,field2 FROM db2_name執行個體可以運行insert...select文法解決問題:insert into hotel_ktv (title,price, number,date,area,content,num) select title,price,number,date,area,content,num from hotel_ktv;查看結果
先測試一下 代碼如下複製代碼 create procedure test1(in a int) //create建立;procedure預存程序;test1是預存程序名還管有沒有參數都得加上()begin //開始select * from test where id=a;//這裡是預存程序的語句end;//結束//註:用mysql建立必須把Delimiter改為//