我不知道是否有一種方法來處理MySQL錯誤和配置CI切換到輔助數據庫服務器中時在主服務器停機(無法連接)?笨切換到輔助數據庫,如果主服務器停機
1
A
回答
6
好了,我不知道這是去工作,但實際上你可以試試這個:
1)創建2組數據庫設置(在應用程序/配置/ database.php中):
// regular one..
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
//...
// second connection
$db['second']['hostname'] = 'localhost';
$db['second']['username'] = 'root';
//...
2)設置deubg關閉以避免顯示DB錯誤和實際殺害你的腳本(這樣做對雙方):
$db['default']['db_debug'] = FALSE;
3)你可以傳遞一個真正的第二paramenter同時加載庫,所以它實際上有一個返回值;它返回的數據庫對象本身:
$dbobject1 = $this->load->database('default',TRUE);
$dbobject2 = $this->load->database('second',TRUE);
現在,你可以檢查的「連接ID」的資源,看是否有已建立連接或沒有:
if(FALSE === $dbobject1->conn_id)
{
echo 'No connection established!';
}
現在你可以決定要加載另一個數據庫在第一個沒有加載的情況下。缺點是,你真的不知道爲什麼數據庫連接沒有工作,雖然...
至於如何實現這一點,你可能想嘗試擴展數據庫類,或者更好,創造你自己庫實際上只是檢查連接是否存在,並加載它而不是數據庫庫。由於它返回一個數據庫對象(除了當所有2個連接都失敗時),您可以像處理普通數據庫類那樣工作:
class Check_db {
private $CI = '';
public $DB1 = '';
public $DB2 = '';
function __construct()
{
$this->CI =&get_instance();
$this->DB1 = $this->CI->load->database('default',TRUE);
if(FALSE !== $this->DB1->conn_id)
{
return $this->DB1;
}
else
{
$this->DB2 = $this->CI->load->database('second',TRUE);
if(FALSE !== $this->DB2->conn_id)
{
return $this->DB2;
}
else
{
return FALSE;
}
}
}
+0
這是太棒了,什麼我要找的。我必須嘗試一下...... CHEERS隊友! – flyclassic
相關問題
- 1. 笨備用數據庫連接,如果服務器停機
- 2. 轉換本地主機數據庫到服務器數據庫
- 3. 如何將多站點數據庫從本地主機切換到服務器?
- 4. 如何在MySQL服務器上建立數據庫輔助..?
- 5. 當主要關閉在Java簡單JDBC時切換到輔助oracle數據庫
- 6. 從輔助Linux服務器備份SQL數據庫
- 7. 如果本地主機失敗,則切換到服務器連接
- 8. EclipseLink JPA輔助服務器
- 9. SQL服務器數據庫(與本地主機遠程更換)
- 10. .htaccess從本地主機切換到遠程服務器
- 11. FTP數據庫到虛擬主機服務器
- 12. 從本地主機到遠程服務器的數據庫mysqldum
- 13. PowerShell Invoke-SqlCmd切換到主數據庫
- 14. Quartz.NET失火,如果服務器停機
- 15. 如何使用數據庫服務器訪問本地主機?
- 16. 如何在本地主機服務器上設置數據庫?
- 17. 笨從本地主機移動到服務器
- 18. Weblogic會話Cookie正在更改主服務器和輔助服務器
- 19. 何時使用輔助DNS服務器?
- 20. 本地主機和服務器之間的socket.io切換
- 21. 關係型數據庫的服務器輔助的編程語言支持
- 22. SQL服務器:通過主數據庫
- 23. 切換服務器
- 24. 輔助服務不斷得到禁用
- 25. 如何把數據庫從Microsoft SQL服務器到本地主機上的phpMyadmin
- 26. 笨輔助函數來驗證規則
- 27. Android如何將數據插入到數據庫外的數據庫輔助類
- 28. php數據庫的幫助,數據庫託管在單獨的服務器上,而不是虛擬主機
- 29. 笨連接到主機(數據庫錯誤)
- 30. 從本地主機更新服務器數據庫
我已經這樣做了,但需要很長時間!
http://stackoverflow.com/questions/23743374/codeigniter-check-the-connection-to-multi-databases-take-long-time – jodi