【入門篇】2.1 MySQL連接與基本參數(shù)設(shè)置

MySQL連接與基本參數(shù)設(shè)置
目錄
1 連接到MySQL
1.1 Windows 連接到 MySQL
1.2 Linux 連接到 MySQL
1.3 程序連接到 MySQL
2 MySQL基本參數(shù)設(shè)置
2.1 基本參數(shù)解析
2.2 查看當(dāng)前參數(shù)
2.3 修改參數(shù)
2.3.1 Windows修改參數(shù)
2.3.2 Linux 修改參數(shù)
1 連接到MySQL?
1.1 Windows 連接到 MySQL
- MySQL 5.7 Command Line Client - Unicode
- 直接輸入root密碼即可
- DBeaver
- 點(diǎn)擊"New Connection"(新建數(shù)據(jù)庫(kù)連接)按鈕,選擇要連接的數(shù)據(jù)庫(kù)類型(MySQL)并填寫相關(guān)信息,如主機(jī)名、端口號(hào)、用戶名和密碼。根據(jù)你的數(shù)據(jù)庫(kù)設(shè)置,輸入適當(dāng)?shù)闹挡Ⅻc(diǎn)擊"Test Connection"(測(cè)試連接)按鈕以驗(yàn)證連接。
- 右鍵點(diǎn)擊連接,選擇“編輯連接” -> "常規(guī)" ,將導(dǎo)航視圖改為“高級(jí)”。點(diǎn)擊“OK”并重新連接。
- 右鍵點(diǎn)擊連接 -> SQL編輯器 -> SQL編輯器
- 直接在圖形化界面操作
1.2 Linux 連接到 MySQL
在Linux中,可以使用以下命令連接到MySQL服務(wù)器:
mysql -u username -p -h 127.0.0.1
在上述命令中,你需要將 username
替換為你的MySQL用戶名。執(zhí)行命令后,系統(tǒng)將提示你輸入密碼,然后連接到MySQL服務(wù)器。
以下是一些常用的參數(shù)及其解釋:
-h
或--host
:指定MySQL服務(wù)器的主機(jī)名或IP地址。-P
或--port
:指定MySQL服務(wù)器的端口號(hào)。-D
或--database
:指定連接后要使用的默認(rèn)數(shù)據(jù)庫(kù)。-u
或--user
:指定要使用的MySQL用戶名。-p
或--password
:提示輸入密碼,并與給定的用戶名一起用于連接。-A
或--no-auto-rehash
:不啟用自動(dòng)命令補(bǔ)全功能,加快連接速度。--version
:顯示MySQL客戶端版本信息。
這只是一些常見的參數(shù)示例,還有其他許多參數(shù)可用于自定義MySQL連接的行為。你可以使用mysql --help
命令來查看完整的參數(shù)列表和幫助信息。
在連接成功后,你將進(jìn)入MySQL的命令行交互界面,可以執(zhí)行SQL語句、管理數(shù)據(jù)庫(kù)和執(zhí)行其他MySQL操作。
擴(kuò)展:在 Windows 上使用 mysql.exe 連接 mysql
1.3 程序連接到 MySQL
1.Java 連接 MySQL 示例
引入maven依賴:
? ?<dependency> ? ? ?<groupId>mysql</groupId> ? ? ?<artifactId>mysql-connector-java</artifactId> ? ? ?<version>8.0.27</version> ? ?</dependency>
代碼示例:
public class TestConnection { ? ?public static void main(String[] args) { ? ? ? ?String url = "jdbc:mysql://192.168.203.127:3306/test"; // 替換為你的 MySQL 連接URL ? ? ? ?String username = "test"; // 替換為你的 MySQL 用戶名 ? ? ? ?String password = "test"; // 替換為你的 MySQL 密碼 ? ? ? ?try { ? ? ? ? ? ?// 1. 加載數(shù)據(jù)庫(kù)驅(qū)動(dòng) ? ? ? ? ? ?Class.forName("com.mysql.cj.jdbc.Driver"); ? ? ? ? ? ?// 2. 建立數(shù)據(jù)庫(kù)連接 ? ? ? ? ? ?Connection connection = DriverManager.getConnection(url, username, password); ? ? ? ? ? ?// 3. 創(chuàng)建 Statement 對(duì)象 ? ? ? ? ? ?Statement statement = connection.createStatement(); ? ? ? ? ? ?// 4. 執(zhí)行 SQL 查詢 ? ? ? ? ? ?String sql = "SELECT * FROM users"; ? ? ? ? ? ?ResultSet resultSet = statement.executeQuery(sql); ? ? ? ? ? ?// 5. 處理查詢結(jié)果 ? ? ? ? ? ?while (resultSet.next()) { ? ? ? ? ? ? ? ?int id = resultSet.getInt("id"); ? ? ? ? ? ? ? ?String name = resultSet.getString("name"); ? ? ? ? ? ? ? ?int age = resultSet.getInt("age"); ? ? ? ? ? ? ? ?System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age); ? ? ? ? ? } ? ? ? ? ? ?// 6. 關(guān)閉資源 ? ? ? ? ? ?resultSet.close(); ? ? ? ? ? ?statement.close(); ? ? ? ? ? ?connection.close(); ? ? ? } catch (ClassNotFoundException e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? } catch (SQLException e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? } ? } }
?
2.Python 連接 MySQL 示例
安裝模塊
pip install pymysql
示例代碼:
import pymysql # 數(shù)據(jù)庫(kù)連接信息 host = '192.168.203.127' port = 3306 user = 'test' ?# 替換為你的 MySQL 用戶名 password = 'test' ?# 替換為你的 MySQL 密碼 database = 'test' ?# 替換為你的數(shù)據(jù)庫(kù)名稱 # 建立數(shù)據(jù)庫(kù)連接 connection = pymysql.connect(host=host, port=port, user=user, password=password, database=database) try: ? ?# 創(chuàng)建游標(biāo)對(duì)象 ? ?cursor = connection.cursor() ? ?# 執(zhí)行 SQL 查詢 ? ?sql = "SELECT * FROM users" ? ?cursor.execute(sql) ? ?# 獲取查詢結(jié)果 ? ?result = cursor.fetchall() ? ?# 處理查詢結(jié)果 ? ?for row in result: ? ? ? ?id = row[0] ? ? ? ?name = row[1] ? ? ? ?age = row[2] ? ? ? ?print(f"ID: {id}, Name: {name}, Age: {age}") finally: ? ?# 關(guān)閉游標(biāo)和連接 ? ?cursor.close() ? ?connection.close()
2 MySQL基本參數(shù)設(shè)置
2.1 基本參數(shù)解析
作為一個(gè)MySQL初學(xué)者,以下是一些你應(yīng)該考慮調(diào)整的基本配置項(xiàng):
1.字符集設(shè)置:確保MySQL服務(wù)器的字符集與你的應(yīng)用程序或網(wǎng)站所需的字符集一致。常見的字符集包括UTF8和UTF8mb4,建議設(shè)置為UTF8mb4。你可以通過修改MySQL配置文件中的character_set_server
和collation_server
來設(shè)置字符集。
推薦值:
character_set_server = utf8mb4 collation_server = utf8mb4_bin
?
2.最大連接數(shù):根據(jù)你的應(yīng)用程序需求,你可能需要增加最大連接數(shù)以處理并發(fā)請(qǐng)求。你可以通過修改MySQL配置文件中的max_connections
來增加最大連接數(shù)。
推薦值:
max_connections = 1000
3.緩沖區(qū)設(shè)置:MySQL使用緩沖區(qū)來提高查詢性能。一些重要的參數(shù)包括:
innodb_buffer_pool_size
:用于InnoDB存儲(chǔ)引擎的緩沖區(qū)大小,調(diào)大該值可以確保有足夠的內(nèi)存用于緩存常用的數(shù)據(jù)和索引頁面。開發(fā)環(huán)境可不調(diào)整。innodb_buffer_pool_instances
:innodb_buffer_pool_instances 是 MySQL InnoDB 存儲(chǔ)引擎的一個(gè)配置選項(xiàng),用于指定 InnoDB 緩沖池的實(shí)例數(shù)。每個(gè) InnoDB 緩沖池實(shí)例都是一個(gè)獨(dú)立的緩沖池,它們可以并行地處理讀取請(qǐng)求,提升該值提高并發(fā)讀取的性能。innodb_buffer_pool_chunk_size
:用于InnoDB存儲(chǔ)引擎的緩沖區(qū)大小。
推薦值:
innodb_buffer_pool_size = 機(jī)器內(nèi)存的50% innodb_buffer_pool_instances = 根據(jù) innodb_buffer_pool_size 決定,最合適的大小是1個(gè)instances 1G 內(nèi)存 innodb_buffer_pool_chunk_size = 128M
要保證innodb_buffer_pool_size = n* ( innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances ) 。 n為自然數(shù)。
4.庫(kù)名表名忽略大小寫:在創(chuàng)建和引用表時(shí),不再需要擔(dān)心大小寫的一致性,簡(jiǎn)化了表名的處理和編碼。通過參數(shù) lower_case_table_names
控制。
推薦值:
lower_case_table_names = 1
5.日志設(shè)置:MySQL有多種日志可用于故障排除和性能分析。以下是幾個(gè)重要的日志設(shè)置:
general_log
:用于記錄所有查詢和連接的日志。slow_query_log
:用于記錄執(zhí)行時(shí)間超過閾值的慢查詢。log_error
:用于記錄錯(cuò)誤日志。
6.可以根據(jù)需要啟用或禁用這些日志,并指定日志的路徑和其他選項(xiàng)。
2.2 查看當(dāng)前參數(shù)
show variables like '參數(shù)名';
?
2.3 修改參數(shù)
2.3.1 Windows修改參數(shù)
1.win + r 輸入cmd,進(jìn)入cmd 搜索 my.ini
D: dir /s my.ini
我的裝在了D盤,所以開頭輸入 D: ,具體需要看你的MySQL安裝位置
2.找到配置文件后,編輯文件的 # SERVER SECTION 部分即可。
3.保存文件后重啟服務(wù)。
win + r 輸入services.msc , 進(jìn)入服務(wù)找到 mysql 右鍵重新啟動(dòng)。
2.3.2 Linux 修改參數(shù)
1.編輯 /etc/mysql/my.cnf ,如果找不到,可以find / -name my.cnf
查看你的配置文件在哪兒
vim /etc/mysql/my.cnf
2.自己輸入不同的配置段
# 客戶端配置 [mysql] # 服務(wù)端配置,一般會(huì)把配置放到這里 [mysqld] character_set_server = utf8mb4 collation_server = utf8mb4_bin lower_case_table_names = 1
3.重啟
/etc/init.d/my3306.server restart