新聞中心
作為一名程序員,在開發(fā)項目時,常常需要與數(shù)據(jù)庫進行交互。而數(shù)據(jù)庫的連接是十分重要的,這就需要我們正確地運用連接數(shù)據(jù)庫的字符串。在本文中,將會介紹如何正確地運用連接數(shù)據(jù)庫的字符串,從而提高開發(fā)效率。

一、什么是連接數(shù)據(jù)庫的字符串
在程序中,連接數(shù)據(jù)庫的字符串是指將數(shù)據(jù)庫的地址、端口、用戶名、密碼等信息串聯(lián)起來的一個字符串。這個字符串的格式因不同的數(shù)據(jù)庫而有所區(qū)別。
以MySQL數(shù)據(jù)庫為例,連接字符串的格式為:
mysql://{username}:{password}@{hostname}:{port}/{database-name}
其中,
? username: 數(shù)據(jù)庫用戶名。
? password: 數(shù)據(jù)庫密碼。
? hostname: 數(shù)據(jù)庫主機名稱或IP地址。
? port: 數(shù)據(jù)庫端口號。
? database-name: 數(shù)據(jù)庫名稱。
在連接字符串中,還可以使用其他信息,例如編碼方式、時間區(qū)域等等。
二、連接字符串的作用
連接字符串是連接數(shù)據(jù)庫的關(guān)鍵信息,連接字符串的正確性和合理性直接影響著程序與數(shù)據(jù)庫的連接和交互是否順利、快速地進行。連接字符串的作用可以為以下兩個方面:
1.連接數(shù)據(jù)庫
連接字符串告訴程序應(yīng)該連接哪個數(shù)據(jù)庫、在哪個位置查找數(shù)據(jù)庫,以及連接數(shù)據(jù)庫需要哪些賬戶名和密碼。如果這些信息不正確,程序就無法連接數(shù)據(jù)庫,從而導(dǎo)致程序無法運行。
2.設(shè)置數(shù)據(jù)庫
連接字符串包括了連接數(shù)據(jù)庫所需的一些設(shè)置,例如編碼方式、時間區(qū)域等等。這些設(shè)置是為了讓程序與數(shù)據(jù)庫進行更好的交互。
三、連接字符串的使用
連接字符串的使用在程序中是十分常見的,因為它將程序與數(shù)據(jù)庫進行了綁定。編程人員可以使用語言自帶的模塊或庫來操作數(shù)據(jù)庫,大多數(shù)模塊或庫都要求提供正確的連接字符串才能與數(shù)據(jù)庫進行交互。下面以Python為例來說明如何正確運用連接字符串。
1.使用MySQL連接字符串
在Python中,我們可以使用三方庫MySQL數(shù)據(jù)庫來連接數(shù)據(jù)庫。要連接到MySQL數(shù)據(jù)庫,只需要使用MySQL連接字符串的格式作為參數(shù)傳入該三方庫提供的函數(shù)mysql.connector.connect()即可。下面是一個實例:
“`python
import mysql.connector
db_config = {
‘host’: ‘localhost’,
‘user’: ‘root’,
‘password’: ‘123456’,
‘database’: ‘test_db’
}
cnx = mysql.connector.connect(**db_config)
cursor = cnx.cursor()
query = (“SELECT id, username FROM users”)
cursor.execute(query)
for (id, username) in cursor:
print(f”{id} – {username}”)
cursor.close()
cnx.close()
“`
在這個實例中,連接字符串是由字典db_config提供的。該字典包含了連接字符串所需的所有信息。connect()函數(shù)接受一個可變關(guān)鍵字參數(shù),由兩個星號(**)開頭,它將傳入的字典解包成參數(shù)。cnx和cursor分別代表了MySQL連接和查詢,通過這個連接和查詢,我們可以與MySQL數(shù)據(jù)庫進行交互。
2.使用SQLite連接字符串
SQLite是一個輕量級的數(shù)據(jù)庫,嵌入在程序中。類似于MySQL,我們需要提供連接字符串才能訪問SQLite數(shù)據(jù)庫。在Python中,我們可以使用內(nèi)置庫sqlite3來連接SQLite數(shù)據(jù)庫。下面是一個實例:
“`python
import sqlite3
db_path = “test.db”
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
query = “SELECT id, username FROM users”
cursor.execute(query)
for (id, username) in cursor:
print(f”{id} – {username}”)
cursor.close()
conn.close()
“`
在這個實例中,我們通過connect()函數(shù)連接了SQLite數(shù)據(jù)庫。函數(shù)的參數(shù)db_path是SQLite數(shù)據(jù)庫的路徑。連接創(chuàng)建后,我們可以使用游標(biāo)(cursor)向SQLite數(shù)據(jù)庫執(zhí)行查詢。
四、連接字符串的注意事項
雖然連接字符串非常重要,但也存在一些需要注意的事項。
1.密碼加密
請勿以明文形式放置用戶名和密碼。明文密碼可以被黑客竊取并用于惡意攻擊。因此,應(yīng)使用加密方式來保存密碼。
2.緊密確保其正確性
一旦連接字符串的格式出錯,就無法與數(shù)據(jù)庫通信,這樣程序就可能出現(xiàn)崩潰的情況。因此,我們需要小心謹(jǐn)慎地檢查連接字符串的正確性。
3.使用連接池
當(dāng)程序需要頻繁連接數(shù)據(jù)庫時,連接池是一個非常有用的工具。程序可以創(chuàng)建連接并往連接池中添加,然后在需要時從連接池中獲取連接,而不是每次都創(chuàng)建新的連接。這樣可以減少連接的創(chuàng)建和釋放,從而提高程序的效率。
五、
連接數(shù)據(jù)庫是編程中的一項基本技能,而連接字符串是連接數(shù)據(jù)庫中不可或缺的一個環(huán)節(jié)。連接字符串的正確性和合理性直接影響到整個程序的穩(wěn)定性和性能。因此,我們需要了解并正確使用連接字符串。同時,我們還應(yīng)該充分利用語言提供的連接池功能,以便有效地管理數(shù)據(jù)庫連接。連接數(shù)據(jù)庫的字符串是程序員必須掌握的技能之一,它對于項目的開發(fā)和維護無疑有著至關(guān)重要的作用。
相關(guān)問題拓展閱讀:
- 如何查找或記憶數(shù)據(jù)庫連接字符串
如何查找或記憶數(shù)據(jù)庫連接字符串
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=True;
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
1:Integrated Security參數(shù)
當(dāng)設(shè)置Integrated Security為 True 的時候,連接語句前面的 UserID, PW 是不起作用的,即采用windows身份驗證模式。
只有設(shè)置為 False 或省略該項的時候,才按照 UserID, PW 來連接。
Integrated Security 還可以設(shè)置為:sspi ,相當(dāng)于 True,建議用這個代替 True。
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=true;
Data Source=myServerAddress;Initial Catalog=myDataBase;;User ID=myUsername;Password=myPasswordIntegrated Security=false;
2:參數(shù)Trusted_Connection
Trusted_Connection=true,將使用當(dāng)前的 Windows 帳戶憑據(jù)進行身份驗證
Trusted_Connection=false;將不采用信任連接方式(也即不采用Windows驗證方式),而改由SQL Server 2023驗證方式
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=false;
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
3:Initial Catalog是你要連接的數(shù)鄭消褲據(jù)庫橋裂的名字
4:WINCE連接
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;User ID=myDomain\myUsername;Password=myPassword;
二:可以利用SqlConnectionStringBuilder,這喊簡樣不必去記住名稱。
SqlConnectionStringBuilder sc = new SqlConnectionStringBuilder();
sc.DataSource = @”(local)\SQLExpress”;
sc.IntegratedSecurity = true;
sc.InitialCatalog = “Northwind”;
SqlConnection myConnection = new SqlConnection(sc.ConnectionString);
三:可以利用屬性中的Setting來自動設(shè)置連接字符串
1:在type中選擇 (connection string),
2:在DataSouce中選擇數(shù)據(jù)源,然后再Server中輸入服務(wù)器名,本地用(local)\SQLExpress
3:選擇登陸驗證方式,本次選Windows驗證(即信任連接Integrated Security=True)
4:選擇數(shù)據(jù)庫名,確認(rèn)即可
Data Source=(local)\SQLExpress;Initial Catalog=Northwind;Integrated Security=True
server = .\sqlexpress;integrated security = true;database = northwind
四:SQL2023遠(yuǎn)程服務(wù)器連接方法
如何打開sql server 2023 的1433端口:
配置工具->Sql Server Configuration Manager->MSSQLSERVER的協(xié)議看看TCP/IP協(xié)議是否啟動,如果啟動,右鍵菜單點”屬性” ,在分頁菜單中選”IP地址”,把”IP1″和”IP2″中”TCP端口”為1433,”已啟用”改為”是”
配置工具->Sql Server Configuration Manager->SQL Native Client 配置->客戶端協(xié)議->TCP/IP選擇TCP/IP右鍵菜單中”屬性”,確認(rèn)”默認(rèn)端口”是1433,”已啟用”為”是”。
SQL Server 2023 遠(yuǎn)程連接配置TCP/IP屬性:
Surface Area Configuration –> Database Engine –> Remote Connections —>Using TCP/IT SQL Server 外圍應(yīng)用配置器?服務(wù)和連接外圍配置?database englie?遠(yuǎn)程連接?啟用(遠(yuǎn)程連接的TCP/IP和named pipes)
SQL Server Configuration Manager?SQL2023網(wǎng)絡(luò)配置?啟用TCP/IP和named pipes
其他說明見下: sqlserver2023(Express版),為了便于管理,你還需要去下一個manage管理器:
安裝好manage管理器后,在程序中連接sqlserver2023,下面幾點是要注意的。
1. 開啟sql2023遠(yuǎn)程連接功能,開啟辦法如下, 配置工具->sql server外圍應(yīng)用配置器->服務(wù)和連接的外圍應(yīng)用配置器->打開MSSQLSERVER節(jié)點下的Database Engine 節(jié)點,先擇”遠(yuǎn)程連接”,接下建議選擇”同時使用TCP/IP和named pipes”,確定后,重啟數(shù)據(jù)庫服務(wù)就可以了.
2.登陸設(shè)置改為,Sql server and windows Authentication方式同時選中,具體設(shè)置如下: manage管理器->windows Authentication(之一次用windows方式進去),->對象資源管理器中選擇你的數(shù)據(jù)服務(wù)器–右鍵>屬性>security>Sql server and windows Authentication方式同時選中.
3:設(shè)置一個Sql server方式的用戶名和密碼,具體設(shè)置如下: manage管理器->windows Authentication>new query>sp_password null,’sa123456′,’sa’ 這樣就設(shè)置了一個用戶名為sa ,密碼為:sa123456的用戶,下次在登陸時,可以用Sql server方式, 用戶名為sa ,密碼為:sa123456的用戶進數(shù)據(jù)庫了.
4: 做完上面三步后,這樣寫連接字符串就可以順利進入數(shù)據(jù)庫了,
(server=.\sqlexpress;uid=sa;pwd=sa123456;database=master”;
五:SQL2023遠(yuǎn)程服務(wù)器連接方法
1:看ping 服務(wù)器IP能否ping通。
2:在Dos或命令行下輸入telnet 服務(wù)器IP 端口,看能否連通。 如telnet 202.114.100.通常端口值是1433,因為1433是sql server 2023的對于Tcp/IP的默認(rèn)偵聽端口。如果有問題,通常這一步會出問題。通常的提示是“……無法打開連接,連接失敗”。
如果這一步有問題,應(yīng)該檢查以下選項。
1) 檢查遠(yuǎn)程服務(wù)器是否啟動了sql server 2023服務(wù)。如果沒有,則啟動。
2) 檢查服務(wù)器端有沒啟用Tcp/IP協(xié)議,因為遠(yuǎn)程連接(通過因特網(wǎng))需要靠這個協(xié)議。檢查方法是,在服務(wù)器上打開 開始菜單-> 程序-> Microsoft SQL Server-> 服務(wù)器網(wǎng)絡(luò)實用工具,看啟用的協(xié)議里是否有tcp/ip協(xié)議,如果沒有,則啟用它。
3)檢查服務(wù)器的tcp/ip端口是否配置為1433端口。仍然在服務(wù)器網(wǎng)絡(luò)實用工具里查看啟用協(xié)議里面的tcp/ip的屬性,確保默認(rèn)端口為1433,并且隱藏服務(wù)器復(fù)選框沒有勾上。 事實上,如果默認(rèn)端口被修改,也是可以的,但是在客戶端做 telnet測試時,寫服務(wù)器端口號時必須與服務(wù)器配置的端口號保持一致。如果隱藏服務(wù)器復(fù)選框被勾選,則意味著客戶端無法通過枚舉服務(wù)器來看到這臺服務(wù)器,起到了保護的作用,但不影響連接,但是Tcp/ip協(xié)議的默認(rèn)端口將被隱式修改為2433,在客戶端連接時必須作相應(yīng)的改變。
4)如果服務(wù)器端操作系統(tǒng)打過sp2補丁,則要對windows防火墻作一定的配置,要對它開放1433端口,通常在測試時可以直接關(guān)掉windows防火墻(其他的防火墻也關(guān)掉更好)。
5)檢查服務(wù)器是否在1433端口偵聽。如果服務(wù)器沒有在tcp連接的1433端口偵聽,則是連接不上的。檢查方法是在服務(wù)器的dos或命令行下面輸入 netstat -a -n 或者是netstat -an,在結(jié)果列表里看是否有類似 tcp 127.0.0.listening 的項。如果沒有,則通常需要給sql server 2023打上至少sp3的補丁。其實在服務(wù)器端啟動查詢分析器,輸入 select @@version 執(zhí)行后可以看到版本號,版本號在8.0.2023以下的都需要打補丁?! ∪绻陨隙紱]問題,這時你再做telnet 服務(wù)器ip 1433 測試,將會看到屏幕一閃之后光標(biāo)在左上角不停閃動。恭喜你,你馬上可以開始在企業(yè)管理器或查詢分析器連接了。
3: 檢查客戶端設(shè)置 程序-> Microsoft SQL Server -> 客戶端網(wǎng)絡(luò)使用工具。像在服務(wù)器網(wǎng)絡(luò)實用工具里一樣,確??蛻舳藅cp/ip協(xié)議啟用,并且默認(rèn)端口為1433(或其他端口,與服務(wù)器端保持一致就行)。
4:在企業(yè)管理器里或查詢那分析器連接測試 企業(yè)管理器-> 右鍵SQlserver組-> 新建sqlserver注冊-> 下一步-> 寫入遠(yuǎn)程IP-> 下一步-> 選Sqlserver登陸-> 下一步-> 寫入登陸名與密碼(sa,password)-> 下一步-> 下一步-> 完成 查詢分析器-> 文件-> 連接-> 寫入遠(yuǎn)程IP-> 寫入登錄名和密碼(sa,password)-> 確定 通常建議在查詢分析器里做,因為默認(rèn)情況下,通過企業(yè)管理器注冊另外一臺SQL Server的超時設(shè)置是4秒,而查詢分析器是15秒?! ⌒薷哪J(rèn)連接超時的方法: 企業(yè)管理器-> 工具-> 選項-> 在彈出的”SQL Server企業(yè)管理器屬性”窗口中,點擊”高級”選項卡-> 連接設(shè)置-> 在 登錄超時(秒) 后面的框里輸入一個較大的數(shù)字 查詢分析器-> 工具-> 選項-> 連接-> 在 登錄超時(秒) 后面的框里輸入一個較大的數(shù)字 通常就可以連通了,如果提示錯誤,則進入下一步。
5:錯誤產(chǎn)生的原因通常是由于SQL Server使用了”僅 Windows”的身份驗證方式,因此用戶無法使用SQL Server的登錄帳戶(如 sa )進行連接。解決方法如下所示:
1) 在服務(wù)器端使用企業(yè)管理器,并且選擇”使用 Windows 身份驗證”連接上 SQL Server。
2) 展開”SQL Server組”,鼠標(biāo)右鍵點擊SQL Server服務(wù)器的名稱,選擇”屬性”,再選擇”安全性” 選項卡。
3)在”身份驗證”下,選擇”SQL Server和 Windows “。
4) 重新啟動SQL Server服務(wù)。(在dos或命令行下面net stop mssqlserver停止服務(wù),net start mssqlserver啟動服務(wù),也是一種快捷的方法)。
鏈接數(shù)據(jù)庫的字符串的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于鏈接數(shù)據(jù)庫的字符串,如何正確運用鏈接數(shù)據(jù)庫的字符串,如何查找或記憶數(shù)據(jù)庫連接字符串的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)服務(wù)器托管擁有成都T3+級標(biāo)準(zhǔn)機房資源,具備完善的安防設(shè)施、三線及BGP網(wǎng)絡(luò)接入帶寬達(dá)10T,機柜接入千兆交換機,能夠有效保證服務(wù)器托管業(yè)務(wù)安全、可靠、穩(wěn)定、高效運行;創(chuàng)新互聯(lián)專注于成都服務(wù)器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認(rèn)可。
文章名稱:如何正確運用鏈接數(shù)據(jù)庫的字符串(鏈接數(shù)據(jù)庫的字符串)
本文鏈接:http://fisionsoft.com.cn/article/dhhgcss.html


咨詢
建站咨詢
