通过ansible安装MySQL主从复制的命令
时间: 2024-12-08 13:21:31 浏览: 13
在Ansible中,安装MySQL并配置主从复制通常涉及以下几个步骤:
1. **添加依赖包**:
首先,你需要在`hosts`文件或playbook里添加依赖于MySQL的包,如`mysql-server`和`galera-manager`(用于高可用集群)。这通常使用`apt`或`yum`模块,取决于你的操作系统。
```yaml
- name: Install MySQL and Galera Cluster dependencies
apt:
name: ['mysql-server', 'galera-cluster']
state: present
```
2. **设置MySQL用户和权限**:
创建一个可以访问数据库的用户,并赋予复制相关的权限。
```yaml
- name: Create replication user
mysql_user:
login_user: 'root'
login_password: '<your_root_password>'
name: 'repl_user'
password: '<new_password>'
priv: '*.*:REPLICATION SLAVE'
```
3. **配置Galera Cluster**:
使用`galera_cluster`模块创建或更新Galera集群配置。这需要集群节点之间的网络连接畅通。
```yaml
- name: Configure Galera cluster
galera_cluster:
nodes:
- host: 'node1.example.com'
port: 45678
- host: 'node2.example.com'
port: 45678
cluster_name: 'my_cluster'
wsrep_key: '<your_secret_key>'
state: started
```
4. **启动MySQL服务和启用复制**:
确保MySQL服务运行并开启二进制日志复制。
```yaml
- name: Start MySQL service and enable replication
service:
name: mysql
state: restarted
enabled: yes
become: yes
vars:
mysql_repl_user: 'repl_user'
mysql_repl_password: '<new_password>'
```
5. **初始化从库**:
如果是首次设置从库,需要在主库上进行一些额外操作,例如导出初始数据,然后在从库上导入。
```yaml
- name: Initialize slave from master
command: |
mysqldump --user={{ mysql_repl_user }} --password={{ mysql_repl_password }} master_db > /tmp/master.sql
mysql --user={{ mysql_repl_user }} --password={{ mysql_repl_password }} slave_db < /tmp/master.sql
```
阅读全文