一台電腦不能串連另外一台電腦的資料庫__資料庫

來源:互聯網
上載者:User
出現的問題: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
解決: 原因1: 首先,請確定用戶端電腦能否ping通伺服器電腦。不能估計是原因2,可以的話可以繼續本方法。

大部分原因是由於資料庫回收了串連,而系統的緩衝池不知道,繼續使用被回收的串連所致的。

       以MySQL為例:

       第一種解決辦法,就是將mysql回收空閑串連的時間變長,mysql預設回收時間是8小時,可以在mysql目錄下的my.ini中增加下面配置,將時間改為1天。單位是秒,最大好像是24天:

          [mysqld]

          wait_timeout=86400

       第二種解決辦法,可以通過配置,讓緩衝池去測試連接是否被回收,如果被回收,則不繼續使用,以dbcp為例:

          #SQL查詢,用來驗證從串連池取出的串連
          dbcp.validationQuery=SELECT 1
          #指明串連是否被空閑串連回收器(如果有)進行檢驗,如果檢測失敗,則串連將被從池中去除
          dbcp.testWhileIdle=true
          #在空閑串連回收器線程運行期間休眠的時間值,以毫秒為單位,一般比minEvictableIdleTimeMillis小
          dbcp.timeBetweenEvictionRunsMillis=300000
          #在每次空閑串連回收器線程(如果有)運行時檢查的串連數量,最好和maxActive一致
         dbcp.numTestsPerEvictionRun=50
          #串連池中串連,在時間段內一直空閑,被逐出串連池的時間(1000*60*60),以毫秒為單位
          dbcp.minEvictableIdleTimeMillis=3600000

原因2: windows防火牆不允許訪問。關閉防火牆,或者允許指定連接埠訪問。
原因3: 1。改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%" 1.mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;  2. 授權法。例如,你想myuser使用mypassword從任何主機串連到mysql伺服器的話。 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 如果你想允許使用者myuser從ip為192.168.1.3的主機串連到mysql伺服器,並使用mypassword作為密碼 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 3.在window內建的防火牆裡的例外添加3306連接埠 總結: mysql -u root -p mysql>use mysql; mysql>select 'host' from user where user='root'; mysql>update user set host = '%' where user ='root'; mysql>flush privileges; mysql>select 'host' from user where user='root'; 第一句是以許可權使用者root登入 第二句:選擇mysql庫 第三句:查看mysql庫中的user表的host值(即可進行串連訪問的主機/IP名稱) 第四句:修改host值(以萬用字元%的內容增加主機/IP地址),當然也可以直接增加IP地址 第五句:重新整理MySQL的系統許可權相關表 第六句:再重新查看user表時,有修改。。 重起mysql服務即可完成。
如果第一個方法不行,在網上查了一下,少執行一個語句 mysql>FLUSH   PRIVILEGES 使修改生效.就可以了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.