trx
Published on 2024-05-21 / 43 Visits
0

mysql练习第二天

mysql主从配置

1. 主服务器配置

[mysqld]

# 设置服务器ID,用于标识主服务器

server-id=1

# 开启 binlog 日志

log-bin=mysql-bin

# 配置允许复制的数据库

binlog-do-db=<需要复制的数据库名>

# 设置 binlog 日志的格式

binlog-format=mixed

# 设置监听地址,用于从服务器连接

bind-address=主服务器IP地址

# 设置 InnoDB 缓冲池大小,根据可用内存和数据库大小进行调整

innodb_buffer_pool_size=2G

# 设置 InnoDB 重做日志文件大小,根据写入负载进行调整

innodb_log_file_size=256M

# 设置 InnoDB 事务提交时刷新日志的策略,可以设置为 0、1 或 2

# 设置为 0 或 2 可以提高性能,但可能导致数据丢失

innodb_flush_log_at_trx_commit=1

在主服务器上创建复制用户:

-- 创建复制用户

CREATE USER 'replication_user'@'%' IDENTIFIED BY 'your_password';

-- 授予复制权限

GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';

-- 刷新权限

FLUSH PRIVILEGES;

2. 从服务器配置

[mysqld]

# 设置服务器ID,用于标识从服务器

server-id=2

# 设置监听地址,用于主服务器连接

bind-address=从服务器IP地址

# 设置中继日志文件名

relay-log=mysql-relay-bin

# 配置复制的数据库

replicate-do-db=<需要复制的数据库名>

# 设置 InnoDB 缓冲池大小,根据可用内存和数据库大小进行调整

innodb_buffer_pool_size=2G

# 设置 InnoDB 重做日志文件大小,根据写入负载进行调整

innodb_log_file_size=256M

# 设置 InnoDB 事务提交时刷新日志的策略,可以设置为 0、1 或 2

# 设置为 0 或 2 可以提高性能,但可能导致数据丢失

innodb_flush_log_at_trx_commit=1

# 设置为 1 以确保从服务器在崩溃恢复后正确处理中继日志

relay_log_recovery=1

在从服务器上配置主服务器信息:

-- 配置主服务器信息

CHANGE MASTER TO

  MASTER_HOST='主服务器IP地址',

  MASTER_USER='replication_user',

  MASTER_PASSWORD='your_password',

  MASTER_LOG_FILE='mysql-bin.000001',

  MASTER_LOG_POS=0;

在从服务器上启动复制进程:

-- 启动复制进程

START SLAVE;

在从服务器上检查复制状态:

-- 查看复制状态

SHOW SLAVE STATUS\G;