mysql存儲ip
『壹』 mysql 中怎樣查詢 ip
怎麼感覺你的寫法總是怪怪的?
你存入資料庫後,查看一下,你確定有存入資料庫么?
如果沒有存入資料庫,就是你前面那句存入語句的問題了。
如果是我寫,我會這么寫:
$sql="insert
into
count(ipaddr)
values('"&$visitip&"')";
查詢的:
$sql="select
*
from
count
where
ipaddr
like
'%"&$key&"%'";
我兩年前學的PHP,但因為那時很難找PHP空間,結果就不了了之了。。。
不懂上面我寫的有沒有錯,有錯請指正,在我的評論中幫我指正,謝謝了~!
『貳』 mysql連接時用的IP地址是不是電腦本機上的IP地址呢!
是root用戶的話,IP就是<localhost>或<127.0.0.1>,只是代表使用本機,不是代表本機IP地址,操作方法如下:
1、首先,利用Navicat創建一個資料庫和表,資料庫名為testdb,表為userinfo,並添加一條新記錄。
『叄』 如何配置 msql資料庫 公網ip地址
/etc/mysql/my.cnf
找到 bind-address =127.0.0.1 將其注釋掉;//作用是使得不再只允許本地訪問;
重啟mysql:/etc/init.d/mysql restart;
2:登錄mysql資料庫:mysql -u root -p
mysql> use mysql;
查詢host值:
mysql> select user,host from user;
如果沒有"%"這個host值,就執行下面這兩句:
mysql> update user set host='%' where user='root';
mysql> flush privileges;
或者也可以執行:
mysql>grand all privileges on *.* to root@'%' identifies by ' xxxx';
其中 第一個*表示資料庫名;第二個*表示該資料庫的表名;如果像上面那樣 *.*的話表示所有到資料庫下到所有表都允許訪問;
『%':表示允許訪問到mysql的ip地址;當然你也可以配置為具體到ip名稱;%表示所有ip均可以訪問;
後面到『xxxx'為root 用戶的password;
『肆』 IP地址存儲在mysql中用什麼欄位
用char()類型,因為IP地址基本定長,如114.114.114.114,為15個字元,最少也是如8.8.8.8,為7個字元,但非常少用這樣的IP,一般過都是12-15個字元長度,用varchar()變長類型的話會因此減慢資料庫速度
『伍』 關於mysql 的存儲過程
mysql> delimiter //
這個作用是把;變成//,以後的語句遇到//就結束了,遇到;不結束,下面就可以按你的想法寫了
mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)
-> BEGIN
-> SELECT COUNT(*) INTO param1 FROM t;
-> END
-> //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ; 這里把雙引號改回來
聲明參數要在說明是 輸入還是輸出函數 in\out
給函數變數賦值用
set @a=10;
例子:
drop procere if exists pr_param_in;
create procere pr_param_in
(
in id int -- in 類型的 MySQL 存儲過程參數
)
begin
if (id is not null) then
set id = id + 1;
end if;
select id as id_inner;
end;
set @id = 10;
call pr_param_in(@id);
select @id as id_out;
mysql> call pr_param_in(@id);
『陸』 mysql ip 存儲成什麼類型
字元串char(15)。
discuz作為最大的開源BBS系統,也使用的該類型。
『柒』 MySQL如何有效的存儲IP地址及字元串IP和數
以下的文章主要介紹的是如何用MySQL內置函數來轉換ip地址與相關數字,在實際操作中在處理字元格式的時候,例如將54789轉換為5,4789這樣的,我們只要用:format(12345,0)即可,以下就是具體內容介紹。
用MySQL內置函數轉換ip地址和數字
利用兩個內置函數
inet_aton:將ip地址轉換成數字型
inet_ntoa:將數字型轉換成ip地址
充分利用mysql內置的format函數
尤其是在處理字元格式的時候,例如將12345轉換成12,345這樣的,只要用:format(12345,0)即可,如果用format(12345,2)則顯示的是12,345.00了...
利用MySQL內置函數處理時間戳問題
eg : select FROM_UnixTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
結果: 2004 3rd August 03:35:48 2004
利用mysql_convert_table_format轉換表類型
需要DBI和DBD的mysql相關模塊支持才能用,例子:
mysql_convert_table_format --user=root --password='xx' --type=myisam test yejr
修改mysql表中的欄位名
alter table tb_name change old_col new_col definition...
利用臨時變數
select @var1:=a1+a2 as a_sum,@var2:=b1+b2 as b_sum,@var1+@var2 as total_sum from test_table xxx;
用int類型存儲ip地址
原先錯誤的認為必須用bigint才夠,後來發現使用int unsigned類型就足夠了。 :)
利用IF函數快速修改ENUM欄位值
一個例子:
update rule set enable = if('0' = enable,'1','0') where xxx;
enable 類型:enum('0','1') not null default '0'
事務無法嵌套
避免長時間的sleep連接造成的連接數超出問題
設定全局變數 wait_timeout 和 interactive_timeout 為比較小的值,例如
10(s),就能使每個sleep連接在10s之後如果還沒有查詢的話自動斷開。
設定mysql內置函數客戶端的提示符(prompt)
export MYSQL_PS1="(\u:\h:)\d> "
則用 mysql -hlocalhost -uroot -pxx db_name 登錄後,提示符變成:
(root:localhost:)db_name>
好用吧 :), 時時刻刻提醒你在哪個伺服器上,盡量避免誤操作的發生
更詳細的請查看MySQL手冊
整理MyISAM碎片
1.) 定期運行 OPTIMIZE TABLE 命令即可
2.) 用mysqlmp出數據,然後重新import回去,這對大表來說顯然第一種方法比較方便
整理Innodb碎片
1.) 運行NULL命令, ALTER TABLE XXX ENGINE=Innodb;
2.) 同上的mysqlmp方法
MySQL如果認為檢索的記錄數量超過總記錄數的30%,則選擇全表掃描,而非使用索引
MySQL 5.0.3之後,VARCHAR欄位後面的空格就不再刪除
升級到4.1.1或更高後,就很難降級回到4.0或4.1了,因為 InnoDB 使用了多個表空間的緣故
MySQL 4.1之後,MySQL把字元串類型欄位的長度定義理解為字元長度而不是位元組長度
MySQL 4.1=>5.0時,增加了一個新的啟動選項 innodb_table_locks,它導致 LOCK TABLE 時也可以請求 InnoDB
表鎖。這個選項默認打開,不過可能在 AUTOCOMMIT=1 和 LOCK TABLES 應用中會導致死鎖
5.0.3開始,在計算 DECIMAL 值和舍入精確值的時候採用精確數學,DECIMAL 用更有效的格式來存儲
從5.0.12開始,自然連接和使用 USING
的連接,包括外部連接的衍生形式,都按照SQL:2003標准來處理了;這個變化導致減少了自然連接和使用 USING
的連接產生的結果欄位數,並且還將按照更合理的順序顯示這些欄位,逗號比較符的優先順序和 JOIN, LEFT JOIN 中的一樣了
在以前,等待超時的鎖會導致 InnoDB 回滾當前全部事務,從5.0.13開始,就只回滾最近的SQL語句了
InnoDB 和 MyISAM 表中空格結尾的 TEXT 欄位索引順序改變了。因此需要運行 "CHECK TABLE" 語句修復數據表,如果出現錯誤,就運行
"OPTIMIZE TABLE" 或 "REPAIR TABLE" 語句修復,甚至重新轉儲(用mysqlmp)
MySQL 5.0.3到5.0.5之間版本的 MyISAM 和 InnoDB 表中創建的 DECIMAL 欄位升級到5.0.6之後會發生崩潰。
以上的相關內容就是對用MySQL內置函數轉換ip地址和數字的介紹,望你能有所收獲。
『捌』 知道網站鏈接的mysql資料庫ip,帳號和密碼,怎麼把資料庫備份到本地電腦
果你知道的用戶名和密碼允許遠程訪問的話,你能把資料庫下載下來,如果不允許,那麼這個資料庫只能在本機上操作才能備份。
方法1:mysql -h url -u user -p 回車,輸入密碼,再使用mysqlmp命令進行備份就可以了。
方法2:使用一些現成的工具,如navicat直接進行連接,選擇備份或者導出都可以。