1.改表法。可能是你的帳號(hào)不允許從遠(yuǎn)程登陸,只能在localhost。這個(gè)時(shí)候只要在localhost的那臺(tái)電腦,登入mysql后,更改
公司主營業(yè)務(wù):網(wǎng)站制作、成都做網(wǎng)站、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出懷來免費(fèi)做網(wǎng)站回饋大家。
"mysql"
數(shù)據(jù)庫中
"user"
表里的
"host"
字段,把"localhost"改稱"%",即可。
mysql
-u
root
-pvmwaremysqluse
mysql;mysqlupdate
user
set
host
=
'%'
where
user
=
'root';mysqlselect
host,
user
from
user;
2.授權(quán)法。例如,你想用戶myuser使用密碼mypassword通過ip地址連接到mysql服務(wù)器,使用:
grant
all
privileges
on
*.*
to
'myuser'@'%'
identified
by
'mypassword'
with
grant
option;
如果你想允許用戶myuser從ip為192.168.1.3的主機(jī)連接到mysql服務(wù)器,并使用mypassword作為密碼
grant
all
privileges
on
*.*
to
'myuser'@'192.168.1.3'
identified
by
'mypassword'
with
grant
option;
樓上的比較復(fù)雜了,直接用text文本,設(shè)定最多15字符就可以了。
比如asp,首先取得用戶的ip,如
%
dim uip
uip=Request.ServerVariables("REMOTE_ADDR")
%
其次,存到數(shù)據(jù)庫某字段,如
%
'數(shù)據(jù)庫連接,這個(gè)看你自己的數(shù)據(jù)庫鏈接了,不再詳述
rs.addnew
rs("ip的字段")=uip '添加到數(shù)據(jù)庫
rs.update '更新內(nèi)容,保存
%
還有問題?Q我
MySQL中可以用來做價(jià)格的字段一般有float、double、decimal
如定義一個(gè)money字段類型為float(9,2),則money字段最大長度為9,整數(shù)位是6位,小數(shù)位是2位。
以下摘自MySQL 5.1參考手冊(cè):
1、FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]
小(單精度)浮點(diǎn)數(shù)。允許的值是-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。這些是理論限制,基于IEEE標(biāo)準(zhǔn)。實(shí)際的范圍根據(jù)硬件或操作系統(tǒng)的不同可能稍微小些。
M是小數(shù)總位數(shù),D是小數(shù)點(diǎn)后面的位數(shù)。如果M和D被省略,根據(jù)硬件允許的限制來保存值。單精度浮點(diǎn)數(shù)精確到大約7位小數(shù)位。
如果指定UNSIGNED,不允許負(fù)值。
使用浮點(diǎn)數(shù)可能會(huì)遇到意想不到的問題,因?yàn)樵贛ySQL中的所有計(jì)算用雙精度完成。參見A.5.7節(jié),“解決與不匹配行有關(guān)的問題”。
以下的文章主要介紹的是如何用MySQL內(nèi)置函數(shù)來轉(zhuǎn)換ip地址與相關(guān)數(shù)字,在實(shí)際操作中在處理字符格式的時(shí)候,例如將54789轉(zhuǎn)換為5,4789這樣的,我們只要用:format(12345,0)即可,以下就是具體內(nèi)容介紹。
用MySQL內(nèi)置函數(shù)轉(zhuǎn)換ip地址和數(shù)字
利用兩個(gè)內(nèi)置函數(shù)
inet_aton:將ip地址轉(zhuǎn)換成數(shù)字型
inet_ntoa:將數(shù)字型轉(zhuǎn)換成ip地址
充分利用mysql內(nèi)置的format函數(shù)
尤其是在處理字符格式的時(shí)候,例如將12345轉(zhuǎn)換成12,345這樣的,只要用:format(12345,0)即可,如果用format(12345,2)則顯示的是12,345.00了...
利用MySQL內(nèi)置函數(shù)處理時(shí)間戳問題
eg : select FROM_UnixTIME(UNIX_TIMESTAMP(),'%Y %D %M %h:%i:%s %x');
結(jié)果: 2004 3rd August 03:35:48 2004
利用mysql_convert_table_format轉(zhuǎn)換表類型
需要DBI和DBD的mysql相關(guān)模塊支持才能用,例子:
mysql_convert_table_format --user=root --password='xx' --type=myisam test yejr
修改mysql表中的字段名
alter table tb_name change old_col new_col definition...
利用臨時(shí)變量
select @var1:=a1+a2 as a_sum,@var2:=b1+b2 as b_sum,@var1+@var2 as total_sum from test_table xxx;
用int類型存儲(chǔ)ip地址
原先錯(cuò)誤的認(rèn)為必須用bigint才夠,后來發(fā)現(xiàn)使用int unsigned類型就足夠了。 :)
利用IF函數(shù)快速修改ENUM字段值
一個(gè)例子:
update rule set enable = if('0' = enable,'1','0') where xxx;
enable 類型:enum('0','1') not null default '0'
事務(wù)無法嵌套
避免長時(shí)間的sleep連接造成的連接數(shù)超出問題
設(shè)定全局變量 wait_timeout 和 interactive_timeout 為比較小的值,例如
10(s),就能使每個(gè)sleep連接在10s之后如果還沒有查詢的話自動(dòng)斷開。
設(shè)定mysql內(nèi)置函數(shù)客戶端的提示符(prompt)
export MYSQL_PS1="(\u:\h:)\d "
則用 mysql -hlocalhost -uroot -pxx db_name 登錄后,提示符變成:
(root:localhost:)db_name
好用吧 :), 時(shí)時(shí)刻刻提醒你在哪個(gè)服務(wù)器上,盡量避免誤操作的發(fā)生
更詳細(xì)的請(qǐng)查看MySQL手冊(cè)
整理MyISAM碎片
1.) 定期運(yùn)行 OPTIMIZE TABLE 命令即可
2.) 用mysqldump出數(shù)據(jù),然后重新import回去,這對(duì)大表來說顯然第一種方法比較方便
整理Innodb碎片
1.) 運(yùn)行NULL命令, ALTER TABLE XXX ENGINE=Innodb;
2.) 同上的mysqldump方法
MySQL如果認(rèn)為檢索的記錄數(shù)量超過總記錄數(shù)的30%,則選擇全表掃描,而非使用索引
MySQL 5.0.3之后,VARCHAR字段后面的空格就不再刪除
升級(jí)到4.1.1或更高后,就很難降級(jí)回到4.0或4.1了,因?yàn)?InnoDB 使用了多個(gè)表空間的緣故
MySQL 4.1之后,MySQL把字符串類型字段的長度定義理解為字符長度而不是字節(jié)長度
MySQL 4.1=5.0時(shí),增加了一個(gè)新的啟動(dòng)選項(xiàng) innodb_table_locks,它導(dǎo)致 LOCK TABLE 時(shí)也可以請(qǐng)求 InnoDB
表鎖。這個(gè)選項(xiàng)默認(rèn)打開,不過可能在 AUTOCOMMIT=1 和 LOCK TABLES 應(yīng)用中會(huì)導(dǎo)致死鎖
5.0.3開始,在計(jì)算 DECIMAL 值和舍入精確值的時(shí)候采用精確數(shù)學(xué),DECIMAL 用更有效的格式來存儲(chǔ)
從5.0.12開始,自然連接和使用 USING
的連接,包括外部連接的衍生形式,都按照SQL:2003標(biāo)準(zhǔn)來處理了;這個(gè)變化導(dǎo)致減少了自然連接和使用 USING
的連接產(chǎn)生的結(jié)果字段數(shù),并且還將按照更合理的順序顯示這些字段,逗號(hào)比較符的優(yōu)先順序和 JOIN, LEFT JOIN 中的一樣了
在以前,等待超時(shí)的鎖會(huì)導(dǎo)致 InnoDB 回滾當(dāng)前全部事務(wù),從5.0.13開始,就只回滾最近的SQL語句了
InnoDB 和 MyISAM 表中空格結(jié)尾的 TEXT 字段索引順序改變了。因此需要運(yùn)行 "CHECK TABLE" 語句修復(fù)數(shù)據(jù)表,如果出現(xiàn)錯(cuò)誤,就運(yùn)行
"OPTIMIZE TABLE" 或 "REPAIR TABLE" 語句修復(fù),甚至重新轉(zhuǎn)儲(chǔ)(用mysqldump)
MySQL 5.0.3到5.0.5之間版本的 MyISAM 和 InnoDB 表中創(chuàng)建的 DECIMAL 字段升級(jí)到5.0.6之后會(huì)發(fā)生崩潰。
以上的相關(guān)內(nèi)容就是對(duì)用MySQL內(nèi)置函數(shù)轉(zhuǎn)換ip地址和數(shù)字的介紹,望你能有所收獲。
用char()類型,因?yàn)镮P地址基本定長,如114.114.114.114,為15個(gè)字符,最少也是如8.8.8.8,為7個(gè)字符,但非常少用這樣的IP,一般過都是12-15個(gè)字符長度,用varchar()變長類型的話會(huì)因此減慢數(shù)據(jù)庫速度