MySQL集群主从配置开机自启
作为一名经验丰富的开发者,你可以教会新手如何实现MySQL集群主从配置开机自启。下面是整个流程的步骤表格:
步骤 | 动作 |
---|---|
步骤一 | 安装MySQL |
步骤二 | 配置主从数据库 |
步骤三 | 配置开机自启 |
接下来我将逐步介绍每个步骤需要做什么,并提供相应的代码和注释。
步骤一:安装MySQL
-
安装MySQL服务器和客户端
sudo apt-get install mysql-server mysql-client
-
启动MySQL服务
sudo service mysql start
步骤二:配置主从数据库
-
修改主数据库的配置文件(my.cnf)
sudo nano /etc/mysql/my.cnf
在文件中找到并修改以下配置:
server-id = 1 # 设置主服务器的唯一ID log_bin = /var/log/mysql/mysql-bin.log # 启用二进制日志(binlog)
-
重启MySQL服务
sudo service mysql restart
-
创建用于主从复制的用户
mysql -u root -p
进入MySQL命令行后,执行以下SQL语句:
CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; # 创建一个可以复制的用户 GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; # 授权复制权限给用户 FLUSH PRIVILEGES; # 刷新权限
-
导出主数据库的数据并记录当前的binlog位置
mysqldump -u root -p --opt --master-data=2 --single-transaction --flush-logs --hex-blob --routines --triggers --all-databases > dump.sql
执行完后,打开dump.sql文件,找到类似
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;
的信息,记录下来。 -
导入主数据库的数据到从数据库
mysql -u root -p < dump.sql
-
修改从数据库的配置文件(my.cnf)
sudo nano /etc/mysql/my.cnf
在文件中找到并修改以下配置:
server-id = 2 # 设置从服务器的唯一ID
-
重启从数据库
sudo service mysql restart
-
在从数据库上执行复制命令
mysql -u root -p
进入MySQL命令行后,执行以下SQL语句,其中
<MASTER_LOG_FILE>
和<MASTER_LOG_POS>
是第4步中记录的binlog位置:CHANGE MASTER TO MASTER_HOST='<主数据库的IP地址>', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='<MASTER_LOG_FILE>', MASTER_LOG_POS=<MASTER_LOG_POS>; START SLAVE;
-
检查从数据库的状态
SHOW SLAVE STATUS\G
确保
Slave_IO_Running
和Slave_SQL_Running
的值都为Yes
,表示从数据库已成功连接到主数据库并开始复制。
步骤三:配置开机自启
-
创建一个脚本文件(mysql_start.sh)
sudo nano /usr/local/bin/mysql_start.sh
在文件中写入以下内容:
#!/bin/bash sudo service mysql start
保存并退出。
-
授权脚本文件可执行权限
sudo chmod +x /usr/local/bin/mysql_start.sh
-
创建一个systemd服务配置文件(mysql_start.service)
sudo nano /etc/systemd/system/mysql_start.service
在文件中写入以下内容:
[Unit] Description=MySQL Start Service [Service] ExecStart=/usr/local/bin/mysql_start.sh [Install] WantedBy=multi-user.target
保存并退出。
-
重新加载systemd配置
sudo systemctl daemon-reload