顯示包含「MySQL」標籤的文章。顯示所有文章
顯示包含「MySQL」標籤的文章。顯示所有文章

星期二, 1月 23, 2018

資料庫隱碼攻擊( SQL Injection )

分析 Log 內的特徵碼
與資料庫有關的語法
-- , %20-- , 'or'='or' ..... 等

星期五, 8月 21, 2015

mysql 错误 #2054 解决方案

刚从php5.2升级到5.4,mysql也同时升级了,用了几天都挺好的,今天早上突然phpmyadmin打不开了,提示错误
#2054 - The server requested authentication method umknown to the client


从网上搜索了一下解决方案,大概是说新版本php的mysql客户端使用的密码管理方式和以前有所不同 需要重新设置一下mysql的密码,因为以前的root密码已经不能使用,所以不能用传统的修改密码方式,而是直接重设密码:


1 首先修改mysql的配置文件my.cnf,设置任何用户登录都可以获得全部的权限
   在[mysqld]的段中加上一句:skip-grant-tables 然后重启mysql


2 执行修改密码的sql:
   #use mysql;


   #UPDATE user SET Password = password ('new-password') WHERE User = 'root';
   #flush privileges;


3 再次重启mysql,这下应该就好了


4. 刪掉 skip-grant-tables 的設定


 資料來源  http://my.oschina.net/u/924639/blog/99802


星期四, 1月 09, 2014

調整IBM主機的 MaxKeepAliveRequests

今天發現主機很慢,但是 網路頻寬還沒用滿,網路上找了解決方式,請注意主機的效能是否足夠負擔。

找到 apache 設定檔 httpd.conf 調整以下設定

MaxKeepAliveRequests 系統預設值是 100

檢查連線數量用的指令

netstat -ant | grep :80 | wc -l

213

如果數量超過apache的設定(內定100)

就該考慮一下要不要增加apache 最大連線數並增加連線時間

KeepAlive On

MaxKeepAliveRequests 500

KeepAliveTimeout 5


改完之後感覺開啟網頁快很多了。


星期六, 3月 16, 2013

重新設定 MySQL root 密碼

萬一不小心忘記了 MySQL 的 root 密碼,可以透過以下方法重新設定:



1. 停止 MySQL server。



# /etc/init.d/mysql stop



2. 啟動 MySQL server,並加上 –skip-grant-tables 參數,便可以略過輸入密碼的過程:



# mysqld_safe –skip-grant-tables &



3. 用 root 連接到 MySQL server,輸入:



mysql -u root



4. 進入 MySQL server 後,輸入以下幾行 SQL 語句:

mysql> use mysql;

mysql> update user set password=PASSWORD("newpass") where User=’root’;

mysql> flush privileges;

mysql> quit



5. 重新啟動 MySQL 即可。

星期六, 8月 25, 2012

在MySQL裡讓中文依筆畫排序

為了因應多語系的網頁設計,在資料庫應用上都會採用UTF-8來做為資料編碼.不過UTF-8編碼的中文字卻不能依照中文字的筆劃來做排序.然而這個筆劃排序問題,在Big5編碼下是可以辦到的.



SELECT * FROM `user` ORDER BY CONVERT(`user_name` USING big5) DESC



資料來源: http://calos-tw.blogspot.tw/2011/09/mysql.html



 

星期六, 11月 19, 2011

查詢SQL資料表中重複的資料有哪些??

SQL 語法為



SELECT 欄位 FROM 表格名稱 GROUP BY 欄位名稱 HAVING



範例:



SELECT email FROM `members` GROUP BY `email` HAVING count( * ) > 1

星期三, 9月 29, 2010

快速變更MYSQL資料庫表單編碼及取代欄位內的值

將欄位內容''yuanhong.dotzing.com.tw''取代成'www.chirodrhuang.com.tw',並使用WHERE 語法來更新指定的欄位。



語法



UPDATE 表格名稱 SET `欄位名稱` = REPLACE(`欄位名稱`, 'yuanhong.dotzing.com.tw', 'www.chirodrhuang.com.tw') WHERE`hid`='chirodrhuang'



範例



UPDATE webpage SET `content` = REPLACE(`content`, 'yuanhong.dotzing.com.tw', 'www.chirodrhuang.com.tw') WHERE`hid`='chirodrhuang'



轉換資料表及欄位內的編碼,SQL語法如下



ALTER TABLE `admin` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci 



MySQL 的 Replace 功能 資料來源 http://www.hkcode.com/programming/71



要對 MySQL 資料庫內的資料替換字串,可以借助 PHP 的 str_replace(),但這實在太麻煩了,其實MySQL 已內建了這個功能,以下語句可以將 [table] 資料表的 [field] 欄位作 replace 動作,[str_search] 是搜索字串;[str_replace] 是替換字串。



update [table] set [field]=replace([field],’[str_search]’,'[str_replace]’);



如果不想將整個資料表的欄位資料更換,可以在最後用 where 做條件選擇,例如:



update [table] set [field]=replace([field],’[str_search]’,'[str_replace]’) where `zip`=’852′;



以上語句跟第一句的分別是,第二句只會對欄位 “zip” 為 “852″ 的紀錄作更改。