
#!/bin/bash
# 安装主库
install_master() {
# 安装MySQL服务器
sudo apt-get update
sudo apt-get install mysql-server -y
# 配置MySQL服务器
sudo sed -i 's/bind-address.*/bind-address = 0.0.0.0/' /etc/mysql/mysql.conf.d/mysqld.cnf
sudo systemctl restart mysql
# 创建复制账户并授权
mysql -uroot -p -e "CREATE USER 'replication'@'%' IDENTIFIED BY 'password';"
mysql -uroot -p -e "GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%';"
mysql -uroot -p -e "FLUSH PRIVILEGES;"
# 查看主库状态
mysql -uroot -p -e "SHOW MASTER STATUS;"
}
# 安装从库
install_slave() {
# 安装MySQL服务器
sudo apt-get update
sudo apt-get install mysql-server -y
# 配置MySQL服务器
sudo sed -i 's/bind-address.*/bind-address = 0.0.0.0/' /etc/mysql/mysql.conf.d/mysqld.cnf
sudo systemctl restart mysql
# 启用复制
mysql -uroot -p -e "CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_log_file', MASTER_LOG_POS=master_log_position;"
mysql -uroot -p -e "START SLAVE;"
# 查看从库状态
mysql -uroot -p -e "SHOW SLAVE STATUS\G;"
}
# 初始化数据库
initialize_database() {
mysql -uroot -p -e "CREATE DATABASE mydatabase;"
mysql -uroot -p mydatabase < /path/to/initial_backup.sql
}
# 安装主库
install_master
# 初始化数据库
initialize_database
# 安装从库
install_slave
echo "MYSQL主从复制已完成!"请注意将/path/to/initial_backup.sql替换为实际的备份SQL文件路径,并将master_ip替换为主库的实际IP地址,master_log_file替换为主库的实际日志文件,master_log_position替换为主库的实际日志位置。
执行以上脚本,将会完成MYSQL主从复制的安装和配置。