最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL主從同步與分庫分表原理及實現(xiàn)方法

 更新時間:2025年12月29日 17:10:49   作者:短劍重鑄之日  
MySQL主從同步和分庫分表技術(shù)是解決高并發(fā)和大數(shù)據(jù)量問題的關(guān)鍵,本文詳細(xì)解析了這兩項技術(shù)的原理、實現(xiàn)方法及最佳實踐,幫助讀者構(gòu)建高性能的MySQL架構(gòu),感興趣的朋友跟隨小編一起看看吧

MySQL主從同步和分庫分表是應(yīng)對高并發(fā)、大數(shù)據(jù)量場景的兩大核心技術(shù),通過數(shù)據(jù)復(fù)制和水平/垂直拆分,有效解決了單點性能瓶頸和存儲容量限制。主從同步實現(xiàn)了數(shù)據(jù)庫的高可用性和讀寫分離,而分庫分表則進(jìn)一步提升了系統(tǒng)的擴(kuò)展性和負(fù)載能力。本文將深入解析這兩項技術(shù)的原理、實現(xiàn)方法及最佳實踐,幫助您在實際項目中構(gòu)建高性能的MySQL架構(gòu)。

一、主從同步原理與架構(gòu)

1.1 核心組件與工作流程

MySQL主從同步通過二進(jìn)制日志(BINLOG)實現(xiàn)數(shù)據(jù)的異步/半同步復(fù)制。主庫負(fù)責(zé)處理寫操作并將變更記錄到binlog中,從庫通過IO線程獲取binlog并寫入本地的relay log,然后由SQL線程執(zhí)行這些日志中的事件,最終實現(xiàn)與主庫的數(shù)據(jù)一致。

工作流程詳解

  1. 主庫操作:當(dāng)客戶端在主庫執(zhí)行寫操作時,InnoDB引擎首先將數(shù)據(jù)變更記錄到Redo Log以確保事務(wù)持久性,隨后將變更寫入Binlog。
  2. IO線程傳輸:從庫的IO線程通過長連接監(jiān)聽主庫的Binlog變更,獲取新事件后寫入本地中繼日志(Relay Log)。
  3. SQL線程執(zhí)行:從庫的SQL線程讀取中繼日志中的事件并重放,將變更應(yīng)用到本地數(shù)據(jù)庫,最終實現(xiàn)與主庫的數(shù)據(jù)一致。

1.2 同步模式對比

MySQL主從同步支持三種模式,各有優(yōu)缺點:

模式特點適用場景RTO/RPO
異步復(fù)制主庫處理完SQL直接返回結(jié)果高寫入性能要求,對數(shù)據(jù)一致性要求較低最高
半同步復(fù)制主庫處理完SQL等待至少1個從完成平衡性能與一致性,多數(shù)生產(chǎn)環(huán)境使用中等
全同步復(fù)制主庫處理完SQL等待所有從完成數(shù)據(jù)一致性要求極高,但性能最差最低

半同步復(fù)制實現(xiàn)機(jī)制:MySQL半同步復(fù)制依賴rpl_semi_sync_master插件,通過AFTER_SYNC或AFTER_COMMIT兩種模式實現(xiàn) 。AFTER同步模式要求主庫等待從庫將Binlog寫入中繼日志,而AFTER提交模式則要求從庫執(zhí)行到SQL線程階段。

半同步復(fù)制能顯著降低數(shù)據(jù)丟失風(fēng)險,但會增加約20%的寫入延遲。配置時需設(shè)置rpl_semi_sync_master_timeout(超時時間,默認(rèn)10000ms)和rpl_semi_sync_master enabled(啟用狀態(tài)) 。

1.3 主從同步配置步驟

1. 主庫配置

配置參數(shù)詳解

  • server-id:唯一標(biāo)識符,主從庫必須不同,范圍1~2^32-1。
  • log-bin:開啟二進(jìn)制日志功能,指定日志文件前綴。
  • binlog-do-db:指定需要同步的數(shù)據(jù)庫,可設(shè)置多個。
  • binlog_format:推薦設(shè)為ROW格式,確保精確復(fù)制,避免STATEMENT格式的不可重現(xiàn)問題。
  • sync_binlog:控制Binlog刷盤策略,設(shè)為1最安全但性能損耗大,設(shè)為1000平衡性能與安全。
  • enforce_gtid_consistency:若使用GTID模式,必須設(shè)為ON以保證事務(wù)一致性 
     

2. 從庫配置

配置參數(shù)詳解

  • server-id:從庫唯一標(biāo)識符,與主庫不同。
  • replicate-do-db:指定需要復(fù)制的數(shù)據(jù)庫,可設(shè)置多個。
  • MASTER_AUTO_POSITION:若使用GTID模式,設(shè)為1可自動同步GTID,無需手動指定file/pos。
  • read-only:建議設(shè)為ON防止從庫被誤寫

3. 驗證同步

-- 在主庫插入測試數(shù)據(jù)
INSERT INTO test_table (id, name) VALUES (1, 'test');
-- 在從庫查詢數(shù)據(jù)
SELECT * FROM test_table WHERE id=1;

若數(shù)據(jù)成功同步,則配置成功。

二、分庫分表策略與實現(xiàn)

2.1 分庫分表類型

分庫分表主要分為垂直分庫/分表和水平分庫/分表,通常建議先進(jìn)行垂直拆分,再考慮水平拆分 。

垂直分庫適用場景:

  • 業(yè)務(wù)模塊解耦:如電商系統(tǒng)中用戶、訂單、商品模塊獨立部署,降低耦合度。
  • 冷熱數(shù)據(jù)分離:如歷史日志與實時交易表分離,減少IO爭搶。
  • 高并發(fā)場景:單庫連接數(shù)達(dá)到瓶頸時,通過垂直分庫提高系統(tǒng)并發(fā)能力。
  • 數(shù)據(jù)量級建議:當(dāng)單庫表數(shù)超過500+或總數(shù)據(jù)量達(dá)TB級時考慮拆分 。

水平分表適用場景

  • 單表數(shù)據(jù)量過大:行數(shù)超過1000萬或單表大小超過10GB 
  • 高并發(fā)寫入:QPS超過3000或?qū)懭胙舆t持續(xù)超過100ms 
  • 查詢模式優(yōu)化:頻繁查詢特定范圍數(shù)據(jù)(如按時間查詢?nèi)罩荆r,可按范圍分片提高效率 。

2.2 垂直分庫實現(xiàn)

1. 創(chuàng)建獨立業(yè)務(wù)庫

-- 創(chuàng)建用戶庫和訂單庫
CREATE DATABASE user_db;
CREATE DATABASE order_db;
-- 將用戶表遷移到用戶庫
RENAME TABLE original_db.user TO user_db.user;
-- 將訂單表遷移到訂單庫
RENAME TABLE original_db.order TO order_db.order;

2. 應(yīng)用層路由配置

在應(yīng)用層代碼中設(shè)置不同業(yè)務(wù)的數(shù)據(jù)庫連接:

// 用戶操作使用user_db連接
DataSource userDataSource = setupDataSource("user_db");
// 訂單操作使用order_db連接
DataSource orderDataSource = setupDataSource("order_db");

3. 分片鍵選擇原則

分片鍵的選擇直接影響分庫分表的效果,需遵循以下原則:

  • 高基數(shù)字段:如用戶ID或訂單ID,確保數(shù)據(jù)均勻分布。
  • 查詢模式匹配:分片鍵應(yīng)與業(yè)務(wù)查詢條件一致,如訂單查詢常按user_id,則選user_id為分片鍵 。
  • 避免熱點數(shù)據(jù):如時間字段可能導(dǎo)致最新分片負(fù)載過高,需結(jié)合其他策略(如哈希) 
  • 穩(wěn)定性:分片鍵值不應(yīng)頻繁變更,否則會導(dǎo)致數(shù)據(jù)遷移

2.3 垂直分表示例

1. 原始寬表結(jié)構(gòu)

CREATE TABLE user (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    email VARCHAR(100),
    phone VARCHAR(20),
    address TEXT,
    profile JSON,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

2. 分表后結(jié)構(gòu)

-- 核心信息表
CREATE TABLE user Core (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    email VARCHAR(100),
    phone VARCHAR(20),
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 擴(kuò)展信息表
CREATE TABLE user Extend (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    address TEXT,
    profile JSON,
    FOREIGN KEY (user_id) REFERENCES user Core(id)
);

2.4 水平分表示例

1. 按用戶ID取模分

-- 創(chuàng)建4張分表
CREATE TABLE user_001 (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    name VARCHAR(50),
    email VARCHAR(100),
    phone VARCHAR(20),
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- 類似創(chuàng)建user_002、user_003、user_004表
-- 設(shè)置主鍵步長避免沖突
ALTER TABLE user_001 AUTO_INCREMENT=1;
ALTER TABLE user_002 AUTO_INCREMENT=2;
ALTER TABLE user_003 AUTO_INCREMENT=3;
ALTER TABLE user_004 AUTO_INCREMENT=4;
-- 設(shè)置全局步長
SET GLOBAL auto_increment_increment=4;

2. 數(shù)據(jù)操作示例

public class UserDAO {
    private static final int SHARD_COUNT = 4;
    // 獲取分片編號
    private int getShardNumber(long userId) {
        return (int) (userId % SHARD_COUNT);
    }
    // 插入用戶
    public void insertUser(User user) {
        int shardNumber = getShardNumber(user.getId());
        String table = "user_" + String.format("%03d", shardNumber);
        try (Connection conn = getDataSource(shardNumber). connections()) {
            conn預(yù)備語句(
                "INSERT INTO " + table + " (user_id, name, email, phone) " +
                "VALUES (?, ?, ?, ?)"
            ). executeUpdate();
        }
    }
    // 查詢用戶
    public User getUser(long userId) {
        int shardNumber = getShardNumber(userId);
        String table = "user_" + String.format("%03d", shardNumber);
        try (Connection conn = getDataSource(shardNumber). connections()) {
           預(yù)備語句ps = conn預(yù)備語句(
                "SELECT * FROM " + table + " WHERE user_id = ?"
            );
            ps.setLong(1, userId);
            結(jié)果集rs = ps執(zhí)行查詢();
            if (rs.next()) {
                return mapToUser(rs);
            }
        }
        return null;
    }
    // 獲取對應(yīng)分片的數(shù)據(jù)庫連接
    private DataSource getDataSource(int shardNumber) {
        switch (shardNumber) {
            case 0:
                return userDataSource0;
            case 1:
                return userDataSource1;
            case 2:
                return userDataSource2;
            case 3:
                return userDataSource3;
            default:
                throw new IllegalArgumentException("無效的分片編號");
        }
    }
}

三、分庫分表后的挑戰(zhàn)與解決方案

3.1 分布式事務(wù)處理(若感興趣,評論區(qū)告訴我,會單獨出一期詳細(xì)講述)

1. XA事務(wù)實現(xiàn)

XA事務(wù)實現(xiàn)步驟

  1. 準(zhǔn)備階段:事務(wù)協(xié)調(diào)器向所有參與的數(shù)據(jù)庫發(fā)送"準(zhǔn)備"請求,每個數(shù)據(jù)庫執(zhí)行本地事務(wù)操作但不提交,記錄事務(wù)日志并持有相關(guān)資源鎖。
  2. 提交階段:若所有數(shù)據(jù)庫都反饋"同意提交",協(xié)調(diào)器向所有數(shù)據(jù)庫發(fā)送"提交"指令,釋放資源鎖并提交事務(wù)。若有任何數(shù)據(jù)庫失敗,則發(fā)送"回滾"指令 。

XA事務(wù)優(yōu)缺點

  • 優(yōu)點:實現(xiàn)簡單,依賴數(shù)據(jù)庫原生支持,能保證強(qiáng)一致性。
  • 缺點:性能較差(需等待所有數(shù)據(jù)庫響應(yīng)),可用性低(協(xié)調(diào)器單點故障風(fēng)險),鎖競爭導(dǎo)致阻塞

2. TCC事務(wù)模式

TCC事務(wù)實現(xiàn)步驟

  1. Try階段:檢查資源是否滿足要求(如檢查賬戶余額是否足夠),若符合條件則對資源進(jìn)行鎖定(如凍結(jié)可扣減金額)。
  2. Confirm階段:若Try階段所有操作都成功,則執(zhí)行正式提交(如實際扣減金額)。
  3. Cancel階段:若Try階段有失敗,則執(zhí)行回滾(如釋放凍結(jié)金額) 。

TCC事務(wù)優(yōu)缺點

  • 優(yōu)點:無鎖、支持復(fù)雜業(yè)務(wù)流程,性能較好。
  • 缺點:對業(yè)務(wù)有侵入性,需提供Try/Confirm/Cancel三個接口,開發(fā)成本高

3.2 跨庫JOIN查詢優(yōu)化(若感興趣,評論區(qū)告訴我,會單獨出一期詳細(xì)講述ShardingSphere)

1. 業(yè)務(wù)層聚合

        分別查詢用戶表、訂單表,再應(yīng)用層對結(jié)果合并

2. 寬表同步

實現(xiàn)方法

  • 將關(guān)聯(lián)表的數(shù)據(jù)同步到數(shù)據(jù)倉庫(如Hadoop或ClickHouse)。
  • 在數(shù)據(jù)倉庫中生成寬表,包含所有需要關(guān)聯(lián)的字段。
  • 通過中間件(如ShardingSphere)或直接查詢寬表完成關(guān)聯(lián)查詢

3.3 主鍵沖突解決方案

1. 步長分配法(使用較少)

實現(xiàn)步驟

在主庫設(shè)置全局步長

SET GLOBAL auto_increment_increment = 4;

在每個分片表設(shè)置初始值:

ALTER TABLE user_001 AUTO_INCREMENT = 1;
ALTER TABLE user_002 AUTO_INCREMENT = 5;
ALTER TABLE user_003 AUTO_INCREMENT = 9;
ALTER TABLE user_004 AUTO_INCREMENT = 13;

每個分片表的步長與全局步長一致,確保主鍵全局唯一 

步長分配法優(yōu)缺點

  • 優(yōu)點:實現(xiàn)簡單,無需額外工具,性能較好。
  • 缺點:分片數(shù)固定,擴(kuò)容困難,需重新計算步長

2. 雪花算法實現(xiàn)(高頻

實現(xiàn)步驟

  1. 設(shè)計分布式ID生成器,包含時間戳、機(jī)器ID和序列號。
  2. 為每個分片分配唯一的機(jī)器ID。
  3. 在分片間共享序列號,避免重復(fù)。

雪花算法優(yōu)缺點

  • 優(yōu)點:全局唯一,無需依賴MySQL參數(shù),支持動態(tài)擴(kuò)容。
  • 缺點:實現(xiàn)復(fù)雜,需額外開發(fā)ID生成服務(wù)

四、實際操作指南

4.1 主從同步完整配置流程

1. 環(huán)境準(zhǔn)備

# 主庫IP: 192.168.1.100
# 從庫IP: 192.168.1.101
# 安裝MySQL 8.0
sudo yum install mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld

2. 主庫配置

# 獲取初始化密碼
sudo grep 'temporary password' /var/log/mysqld.log
# 登錄MySQL
mysql -u root -p
# 修改root密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPassword123';
# 創(chuàng)建復(fù)制用戶
CREATE USER 'repl'@'192.168.1.%' IDENTIFIED WITH mysql_native_password BY 'ReplPassword123';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.%';
FLUSH PRIVILEGES;
# 修改my.cnf配置文件
sudo vi /etc/my.cnf
# 添加以下配置
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=your_db
binlog-checksum=NONE
binlog-format=ROW
sync_binlog=1
innodb_flush_log_at_trx_commit=1
gtid_mode=ON
enforce_gtid_consistency=ON

3. 從庫配置

# 修改my.cnf配置文件
sudo vi /etc/my.cnf
# 添加以下配置
[mysqld]
server-id=2
log-bin=mysql-bin
replicate-do-db=your_db
replicate_binlog checksum=0
replicate_binlog format=MIXED
gtid_mode=ON
enforce_gtid_consistency=ON
read-only=ON

4. 初始化數(shù)據(jù)同步

# 主庫導(dǎo)出數(shù)據(jù)
mysqldump -u root -p --single-transaction your_db > dump.sql
# 從庫導(dǎo)入數(shù)據(jù)
mysql -u root -p your_db < dump.sql
# 從庫設(shè)置主庫信息
CHANGE MASTER TO
    MASTER_HOST='192.168.1.100',
    MASTER_USER='repl',
    MASTER_PASSWORD='ReplPassword123',
    MASTER AUTO_POSITION=1;
# 啟動從庫復(fù)制
START SLAVE;
# 檢查復(fù)制狀態(tài)
SHOW SLAVE STATUS\G

關(guān)鍵指標(biāo)檢查

  • SlaveIORunning應(yīng)為Yes
  • SlaveSQLRunning應(yīng)為Yes
  • SecondsBehindMaster應(yīng)接近0

4.2 分庫分表示例

1. 手動分庫分表示例

-- 創(chuàng)建分片表
CREATE TABLE user_001 (
    id BIGINT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    name VARCHAR(50),
    email VARCHAR(100),
    phone VARCHAR(20),
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- 創(chuàng)建其他分片表
CREATE TABLE user_002 LIKE user_001;
CREATE TABLE user_003 LIKE user_001;
CREATE TABLE user_004 LIKE user_001;
-- 設(shè)置主鍵步長
ALTER TABLE user_001 AUTO_INCREMENT=1;
ALTER TABLE user_002 AUTO_INCREMENT=5;
ALTER TABLE user_003 AUTO_INCREMENT=9;
ALTER TABLE user_004 AUTO_INCREMENT=13;
-- 設(shè)置全局步長
SET GLOBAL auto_increment_increment=4;

2. 數(shù)據(jù)操作路由邏輯

// 使用ShardingSphere的ShardingSphereDataSource
ShardingSphereDataSource dataSource = ShardingSphereDataSourceFactory.createDataSource(
    createDataSourceMap(),
    createRuleConfiguration(),
    new Properties()
);
// 插入用戶
public void insertUser(User user) {
    try (Connection conn = dataSource.getConnection()) {
        conn預(yù)備語句(
            "INSERT INTO t_user (user_id, name, email, phone) " +
            "VALUES (?, ?, ?, ?)"
        ). executeUpdate();
    }
}
// 查詢用戶
public User getUser(long userId) {
    try (Connection conn = dataSource.getConnection()) {
       預(yù)備語句ps = conn預(yù)備語句(
            "SELECT * FROM t_user WHERE user_id = ?"
        );
        ps.setLong(1, userId);
        結(jié)果集rs = ps執(zhí)行查詢();
        if (rs.next()) {
            return mapToUser(rs);
        }
    }
    return null;
}

3. ShardingSphere中間件配置

# ShardingSphere配置文件
rules:
- !SHARDING
  tables:
    t_user:
      actualDataNodes: ds_${0..3}.t_user_${0..3}
      tableStrategy:
        standard:
          shardingColumn: user_id
          shardingAlgorithmName: inline
  shardingAlgorithms:
    inline:
      type: INLINE
      props:
        algorithm-expression: t_user_${user_id % 4}

配置說明

  • actualDataNodes:定義物理數(shù)據(jù)節(jié)點,ds_${0..3}表示4個數(shù)據(jù)庫實例。
  • shardingColumn:指定分片鍵為user_id。
  • algorithm-expression:使用取模算法將數(shù)據(jù)均勻分布到4個分表中。

五、最佳實踐與性能優(yōu)化

5.1 主從同步優(yōu)化建議

1. 配置優(yōu)化

優(yōu)化建議

  • binlog格式:推薦使用ROW格式,確保精確復(fù)制,避免STATEMENT格式的不可重現(xiàn)問題 。
  • 日志刷盤策略:設(shè)sync_binlog=1000平衡性能與安全,設(shè)innodb_flush_log_at_trx_commit=2減少I/O開銷 。
  • 網(wǎng)絡(luò)傳輸優(yōu)化:使用binlog_row_image=MINIMAL僅記錄變更的列,減少傳輸數(shù)據(jù)量。
  • 監(jiān)控與告警:設(shè)置復(fù)制延遲監(jiān)控(SecondsBehindMaster),當(dāng)延遲超過閾值時自動告警。

2. 性能監(jiān)控指標(biāo)

監(jiān)控方法

  • 定期執(zhí)行SHOW SLAVE STATUS\G檢查復(fù)制狀態(tài)。
  • 使用CHECKSUM TABLE驗證主從數(shù)據(jù)一致性。
  • 使用pt-table-checksum工具進(jìn)行大規(guī)模數(shù)據(jù)校驗

5.2 分庫分表優(yōu)化策略

1. 跨庫查詢優(yōu)化

優(yōu)化方法

  • 業(yè)務(wù)層聚合:在應(yīng)用層先查詢主表獲取主鍵列表,再查詢關(guān)聯(lián)表,最后合并結(jié)果。
  • 寬表同步:將關(guān)聯(lián)表的數(shù)據(jù)同步到數(shù)據(jù)倉庫(如Hadoop或ClickHouse),生成寬表減少JOIN操作。
  • 中間件路由:使用ShardingSphere等中間件自動處理路由邏輯,簡化開發(fā)(若感興趣,評論區(qū)告訴我,會單獨出一期講述)

六、總結(jié)與實施建議

MySQL主從同步和分庫分表是應(yīng)對高并發(fā)、大數(shù)據(jù)量場景的核心技術(shù),通過合理設(shè)計和配置,可以顯著提升系統(tǒng)的性能和可靠性。在實際實施中,建議遵循以下原則:

  1. 先垂直后水平:優(yōu)先按業(yè)務(wù)模塊進(jìn)行垂直分庫分表,再考慮水平分片 
  2. 逐步擴(kuò)展:從簡單的讀寫分離開始,隨著數(shù)據(jù)量增長逐步引入分庫分表 
  3. 工具輔助:使用Mycat、ShardingSphere等中間件簡化分庫分表實現(xiàn) 
  4. 監(jiān)控先行:建立完善的監(jiān)控體系,跟蹤復(fù)制延遲、分片負(fù)載等關(guān)鍵指標(biāo) 
  5. 數(shù)據(jù)一致性:在性能與一致性之間找到平衡點,根據(jù)業(yè)務(wù)需求選擇合適的事務(wù)處理方案

結(jié)語: 至此,《7天讀懂MySQL》已完結(jié),你都懂了嗎?

到此這篇關(guān)于MySQL主從同步與分庫分表的文章就介紹到這了,更多相關(guān)mysql內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL備份恢復(fù)最佳實踐指北

    MySQL備份恢復(fù)最佳實踐指北

    這篇文章主要介紹了MySQL備份恢復(fù)最佳實踐的終極指南詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • MySQL利用profile分析慢sql詳解(group left join效率高于子查詢)

    MySQL利用profile分析慢sql詳解(group left join效率高于子查詢)

    最近因為一個用了子查詢的sql語句查詢很慢,嚴(yán)重影響了性能,所以需要進(jìn)行優(yōu)化,下面這篇文章主要跟大家介紹了關(guān)于MySQL利用profile分析慢sql的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友們可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • MySQL 自動清理binlog日志的方法

    MySQL 自動清理binlog日志的方法

    這篇文章主要介紹了MySQL 自動清理binlog日志的方法,需要的朋友可以參考下
    2016-10-10
  • MySql Error 1698(28000)問題的解決方法

    MySql Error 1698(28000)問題的解決方法

    這篇文章主要介紹了MySql Error 1698(28000)問題的解決方法,需要的朋友可以參考下
    2017-06-06
  • MySQL連接指定端口后實際仍是3306的原因分析及解決方法

    MySQL連接指定端口后實際仍是3306的原因分析及解決方法

    在日常運(yùn)維或開發(fā)過程中,有時我們在使用 mysql 命令行工具連接 MySQL 實例時,可能會遇到一個令人疑惑的問題,本以為連接的是監(jiān)聽在 3307 端口的 MySQL 實例,但登錄進(jìn)去后執(zhí)行,實際連接的是3306 端口,而不是我們指定的端口,這是為什么?本文將為你詳細(xì)解答
    2025-07-07
  • MySQL服務(wù)無法啟動:failed to restart mysql.service: unit not found

    MySQL服務(wù)無法啟動:failed to restart mysql.service:&

    在系統(tǒng)更新或配置變更后,MySQL服務(wù)可能無法啟動,本文提供解決MySQL服務(wù)啟動失敗的方法,包括檢查和更新服務(wù)單元文件,主要步驟包括檢查服務(wù)文件存在與否、備份舊的服務(wù)文件、使用最新的服務(wù)文件重啟MySQL服務(wù)等,確保服務(wù)能正常運(yùn)行,感興趣的可以了解一下
    2024-10-10
  • MySQL數(shù)據(jù)庫分布式XA事務(wù)及SQL語法詳解

    MySQL數(shù)據(jù)庫分布式XA事務(wù)及SQL語法詳解

    XA事務(wù)也有其局限性,比如性能開銷較大,因為它涉及到更多的協(xié)調(diào)步驟,并且可能會導(dǎo)致阻塞問題,這篇文章給大家介紹MySQL數(shù)據(jù)庫分布式XA事務(wù)及SQL語法詳解,感興趣的朋友跟隨小編一起看看吧
    2025-05-05
  • MySQL出現(xiàn)SQL Error (2013)連接錯誤的解決方法

    MySQL出現(xiàn)SQL Error (2013)連接錯誤的解決方法

    這篇文章主要介紹了MySQL出現(xiàn)SQL Error (2013)連接錯誤的解決方法,2013錯誤主要還是在于用戶的授權(quán)問題,需要的朋友可以參考下
    2016-06-06
  • MySQL定時執(zhí)行腳本(計劃任務(wù))命令實例

    MySQL定時執(zhí)行腳本(計劃任務(wù))命令實例

    在mysql中我們可以直接進(jìn)行一些參數(shù)設(shè)置讓它成定時為我們執(zhí)行一些任務(wù)了,這個雖然可以使用windows或者linux中的計劃任務(wù)實現(xiàn),但是mysql本身也能完成
    2013-10-10
  • 給MySQL表中的字段設(shè)置默認(rèn)值的兩種方法

    給MySQL表中的字段設(shè)置默認(rèn)值的兩種方法

    在MySQL中,我們可以為表的字段設(shè)置默認(rèn)值,以確保在插入新記錄時,如果沒有為該字段指定值,將使用默認(rèn)值,要為MySQL表中的字段設(shè)置默認(rèn)值,我們可以在創(chuàng)建表時或者在已存在的表上使用ALTER TABLE語句進(jìn)行修改,下面將展示兩種設(shè)置默認(rèn)值的方法,需要的朋友可以參考下
    2023-11-11

最新評論

仁布县| 阿拉善右旗| 临澧县| 象州县| 新蔡县| 台前县| 秭归县| 林芝县| 茂名市| 淳化县| 温泉县| 鞍山市| 宁城县| 城步| 武夷山市| 罗甸县| 莫力| 保定市| 巢湖市| 建平县| 胶南市| 华阴市| 忻城县| 色达县| 来宾市| 临清市| 宝山区| 乌拉特后旗| 清徐县| 湘潭市| 项城市| 大名县| 勐海县| 汶川县| 兴宁市| 南和县| 桂东县| 肃宁县| 保靖县| 密云县| 三台县|