最近在開(kāi)發(fā)MySQL代理中間件過(guò)程中, 遇到這樣一個(gè)問(wèn)題: 當(dāng)前后端連接不是一一對(duì)應(yīng)的關(guān)系時(shí), 對(duì)前端連接設(shè)置SESSION級(jí)別的變量時(shí), 如何能使前端后變量的值保持一致?
在湘鄉(xiāng)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需定制開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營(yíng)銷(xiāo)型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站建設(shè),湘鄉(xiāng)網(wǎng)站建設(shè)費(fèi)用合理。
一個(gè)直觀的實(shí)現(xiàn)方式是, 攔截SET語(yǔ)句, 判斷scope是SESSION時(shí), 將變量的值保存在前端連接中. 當(dāng)執(zhí)行其他查詢(xún)語(yǔ)句時(shí), 在獲取后端連接后, 先將前端連接中保存的變量逐一發(fā)送到后端連接, 然后執(zhí)行查詢(xún)語(yǔ)句, 釋放后端連接時(shí)再將變量的值恢復(fù).
這種實(shí)現(xiàn)方式存在幾個(gè)顯著的問(wèn)題.
1 存在一定的性能損耗, 至少增加了1次與后端MySQL的交互. 但是, 這也是后端連接池方案都會(huì)遇到的問(wèn)題, 前后端連接綁定不存在這種問(wèn)題, 但是也就失去了連接池帶來(lái)的好處.
2 需要判斷參數(shù)值是否合法, 實(shí)現(xiàn)起來(lái)非常繁瑣. 例如, 如果考慮支持字符集設(shè)置, 就要枚舉出MySQL支持的所有字符集及字符序類(lèi)型, 解析 SET NAMES 'utf8' COLLATE 'utf8_general_ci' 時(shí), 對(duì)字符集和字符序進(jìn)行合法性判斷. 對(duì)于某些參數(shù), 例如sql_mode, 還需要考慮MySQL版本之前的差異.
在這種實(shí)現(xiàn)方式下, 有幾個(gè)優(yōu)化點(diǎn)可以參考.
1 批量執(zhí)行SET語(yǔ)句. MySQL語(yǔ)法層面支持 SET SESSION var1 = val1, SESSION var2 = val2; , 因此不論前端連接接收到的SET語(yǔ)句是單條的還是批量的, 在將這些kv值發(fā)往后端時(shí), 可以整合成一條SQL, 從而減少與MySQL的交互次數(shù), 提高執(zhí)行效率.
2 后端連接按需重置. 當(dāng)歸還后端連接時(shí), 不再重置連接, 而是在下一次獲取連接時(shí), 先判斷連接中的變量值與前端連接是否全部相同, 如果全部相同, 則不需要重置, 可以直接使用, 否則, 將那些值不相同的變量設(shè)置到后端連接.
3 使用 COM_RESET_CONNECTION 命令重置連接. COM_RESET_CONNECTION命令可以將連接恢復(fù)到初始狀態(tài), 具體內(nèi)容可參考文檔: . 但是, 如果連接創(chuàng)建時(shí)的狀態(tài)不是連接的默認(rèn)狀態(tài), 就不能使用這種方式重置連接. 例如, 在啟動(dòng)mysql client時(shí)指定的字符集不是DEFAULT, 那么執(zhí)行該命令后會(huì)錯(cuò)誤地把連接的字符集設(shè)置成DEFAULT.
最后, 如果你有更好的解決方案, 歡迎討論交流.
如何使用PLSQL連接服務(wù)器上的數(shù)據(jù)庫(kù),開(kāi)發(fā)初學(xué)者都需要會(huì)這個(gè)問(wèn)題。下面說(shuō)一下步驟,幫助大家配置host并成功查詢(xún)數(shù)據(jù)。
1、首先鼠標(biāo)右鍵PLSQL,選擇屬性,打開(kāi)PLSQL所在文件夾位置。
2、在文件夾中,找到instantclient文件夾。這里將該文件移出到PLSQL安裝文件外,方便之后修改。
3、然后在instantclient下,找到tnsnames.ora,用編輯器打開(kāi)。
4、在tnsnames.ora中,可以配置數(shù)據(jù)庫(kù)連接。數(shù)據(jù)庫(kù)名稱(chēng)、協(xié)議類(lèi)型、host、port、sid。配置好之后,保存。
5、打開(kāi)PLSQL,輸入username、password,選擇到配置的數(shù)據(jù)庫(kù),進(jìn)行連接。點(diǎn)擊“file”--“new”--“SQL Window”,打開(kāi)窗口,輸入查詢(xún)命令,F(xiàn)8執(zhí)行,連接成功了。
你閑置數(shù)據(jù)庫(kù)之前,要先斷開(kāi)連接, 等你需要使用時(shí) 再次連接,
簡(jiǎn)單地說(shuō)就是 用完后,寫(xiě)點(diǎn)代碼,將其關(guān)閉,然后再使用時(shí) 再做檢查, 如果連接已經(jīng)關(guān)閉,再次連接
這樣做也是因?yàn)槟愕拈e置時(shí)間太長(zhǎng)了,
如果是一個(gè)小時(shí)或者兩個(gè)小時(shí)什么的可以考慮設(shè)置數(shù)據(jù)庫(kù)的斷開(kāi)時(shí)間
一.mysql安裝
百度mysql下載一個(gè)即可。只是注意一下幾個(gè)重要的數(shù)據(jù):
第一個(gè)就是Port Number :3306。端口號(hào)默認(rèn)3306,一般不需要改,如果改了,請(qǐng)記住這個(gè)端口號(hào)。
第二個(gè)就是password:本地?cái)?shù)據(jù)庫(kù)密碼,默認(rèn)用戶(hù)名是root
第三個(gè)就是Windows Service Datails:MySQL56,如果修改了請(qǐng)記住。(可以取消Start the MySQL Server at System Startup前面的勾,不然每次開(kāi)機(jī)mysql就自啟服務(wù)了)
二、mysql管理工具
我知道的有Navicat,SQLyog Enterprise,因?yàn)榈谝淮伟惭b了SQLyog Enterprise就一直用的它,一路安裝即可。Navicat貌似界面看起來(lái)不錯(cuò)。喎?"/kf/ware/vc/" target="_blank" class="keylink"vcD4KPHA+yP2hojxzdHJvbmc+way907G+tdjK/b7dv+I8L3N0cm9uZz6jujwvcD4KPHA+PHN0cm9uZz7BrL3Tsb612L/i1q7HsLHY0OvG9Lavyv2+3b/it/7O8Twvc3Ryb25nPqOss/W0zrCy17C94cr4uvPK/b7dv+K3/s7x0tG+rb+qxvSjrNLUuvO/qsb0t/7O8bXEstnX97e9yr263Lbg1tajrL+0uvPOxKGjPGJyPgo8L3A+CjxwPjxpbWcgc3JjPQ=="/uploadfile/Collfiles/20150413/20150413093321259.jpg" alt="\"
New一個(gè),可以取一個(gè)名字:local 代表為本地?cái)?shù)據(jù)庫(kù)的名字吧,就一個(gè)名字而已。
重要的是其他幾個(gè)要填的數(shù)據(jù):
mysql host address:localhost 本地地址,或者寫(xiě)127.0.0.1回送地址,二者是等價(jià)的。
username:root 這個(gè)是默認(rèn)名字,安裝的時(shí)候貌似可以修改。
password:**********就是安裝的時(shí)候設(shè)置的密碼。
port:3306 安裝時(shí)必須記住的端口號(hào)。
然后connect即可。
四、連接遠(yuǎn)端數(shù)據(jù)庫(kù)
當(dāng)然得知道遠(yuǎn)端數(shù)據(jù)庫(kù)的address,username,password和port
五、啟動(dòng)mysql服務(wù)(方式很多,可以自己百度)
前面在安裝時(shí)候必須記住的一個(gè)數(shù)據(jù)就是Windows Service Datails.
我的是默認(rèn)的:MySQL56
DOS命令開(kāi)啟mysql服務(wù):net start mysql56
DOS命令關(guān)閉mysql服務(wù):net stop mysql56
在安裝mysql的時(shí)候如果安裝了mysql notifier,用mysql notifier這個(gè)mysql管理工具打開(kāi)也可以開(kāi)啟和關(guān)閉mysql服務(wù)。
ERROR 2003: Can't connect to MySQL server on 'localhost' (0)"
mysql的服務(wù)沒(méi)有啟動(dòng)
方法:我的電腦——右鍵——管理——服務(wù)和應(yīng)用程序——服務(wù)——找到mysql56(自己對(duì)應(yīng)版本)雙擊——可以看到服務(wù)停止,點(diǎn)擊啟動(dòng)即可,再回到mysql鏈接界面,即可正常連接
連接到本機(jī)上的MYSQL:
1.按快捷鍵win+R鍵來(lái)進(jìn)入運(yùn)行,并輸入cmd,點(diǎn)擊確定
2.鍵入命令mysql -u root -p,回車(chē)后提示你輸密碼.注意用戶(hù)名前可以有空格也可以沒(méi)有空格,但是密碼前必須沒(méi)有空格,否則讓你重新輸入密碼。
3.如果剛安裝好MYSQL,超級(jí)用戶(hù)root是沒(méi)有密碼的,故直接回車(chē)即可進(jìn)入到MYSQL中了,MYSQL的提示符是: mysql
連接到遠(yuǎn)程主機(jī)上的MYSQL:
假設(shè)遠(yuǎn)程主機(jī)的IP為:110.110.110.110,用戶(hù)名為root,密碼為123。則鍵入以下命令:??? mysql -h110.110.110.110 -u root -p 123;(注:u與root之間可以不用加空格,其它也一樣)
當(dāng)前題目:mysql連接怎么維持 mysql如何建立連接
轉(zhuǎn)載注明:http://jinyejixie.com/article40/dochhho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、服務(wù)器托管、網(wǎng)站設(shè)計(jì)公司、定制網(wǎng)站、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容