一、从github下载mysqltools工具包
github地址:https://github.com/Neeky/mysqltools
二、环境规划:
主机名 ip mysql中的角色
master-slave17 10.186.19.17 master
master-slave18 10.186.19.18 slave
master-slave19 10.186.19.19 slave
三、执行自动化安装配置:
ansible-playbook install_master_slaves.yaml PLAY [ms1] **************************************************************************************** TASK [Gathering Facts] **************************************************************************** ok: [master-slave17] ok: [master-slave19] ok: [master-slave18] TASK [create mysql user] ************************************************************************** changed: [master-slave17] changed: [master-slave18] changed: [master-slave19] TASK [create and config /etc/my.cnf] ************************************************************** changed: [master-slave18] changed: [master-slave17] changed: [master-slave19] TASK [transfer mysql install package to remote host and unarchive to /usr/local/] ***************** changed: [master-slave17] changed: [master-slave18] changed: [master-slave19] TASK [change owner to mysql user] ***************************************************************** changed: [master-slave18] changed: [master-slave17] changed: [master-slave19] TASK [make link /usr/local/mysql-xx.yy.zz to /usr/local/mysql] ************************************ changed: [master-slave17] changed: [master-slave18] changed: [master-slave19] TASK [export mysql share object (*.os)] *********************************************************** ok: [master-slave17] ok: [master-slave18] ok: [master-slave19] TASK [load share object] ************************************************************************** changed: [master-slave18] changed: [master-slave17] changed: [master-slave19] TASK [export path env variable] ******************************************************************* ok: [master-slave17] ok: [master-slave18] ok: [master-slave19] TASK [export path env to /root/.bashrc] *********************************************************** ok: [master-slave17] ok: [master-slave18] ok: [master-slave19] TASK [make link /usr/local/mysql-xx.yy.zz to /usr/local/mysql] ************************************ ok: [master-slave17] ok: [master-slave18] ok: [master-slave19] TASK [create libmysqlclient_r.so file for php-5.6] ************************************************ changed: [master-slave17] changed: [master-slave18] changed: [master-slave19] TASK [create datadir] ***************************************************************************** changed: [master-slave17] changed: [master-slave18] changed: [master-slave19] TASK [initialize-insecure] ************************************************************************ changed: [master-slave17] changed: [master-slave18] changed: [master-slave19] TASK [create systemd config file] ***************************************************************** changed: [master-slave17] changed: [master-slave19] changed: [master-slave18] TASK [enable mysqld service] ********************************************************************** changed: [master-slave19] changed: [master-slave17] changed: [master-slave18] TASK [start mysql(sytemctl)] ********************************************************************** changed: [master-slave17] changed: [master-slave18] changed: [master-slave19] TASK [config mysql.service start up on boot] ****************************************************** changed: [master-slave18] changed: [master-slave17] changed: [master-slave19] TASK [config sysv start script] ******************************************************************* skipping: [master-slave17] skipping: [master-slave18] skipping: [master-slave19] TASK [start mysql(service)] *********************************************************************** skipping: [master-slave17] skipping: [master-slave18] skipping: [master-slave19] TASK [config mysql.service start up on boot] ****************************************************** skipping: [master-slave17] skipping: [master-slave18] skipping: [master-slave19] TASK [stransfer sql to remote host] *************************************************************** changed: [master-slave18] changed: [master-slave17] changed: [master-slave19] TASK [create replication user on master / start slave on slave] *********************************** changed: [master-slave17] changed: [master-slave19] changed: [master-slave18] --- TASK [transfer sql statement to remonte] ********************************************************** skipping: [master-slave18] skipping: [master-slave19] changed: [master-slave17] TASK [make mysql secure] ************************************************************************** skipping: [master-slave18] skipping: [master-slave19] changed: [master-slave17] TASK [remove temp file /tmp/make_mysql_secure.sql] ************************************************ skipping: [master-slave18] skipping: [master-slave19] systemctl stop mysql changed: [master-slave17] PLAY RECAP **************************************************************************************** master-slave17 : ok=23 changed=18 unreachable=0 failed=0 master-slave18 : ok=20 changed=15 unreachable=0 failed=0 master-slave19 : ok=20 changed=15 unreachable=0 failed=0
四、在slave上测试配置是否正确:
mysql -uroot -pmtls0352 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 15 Server version: 5.7.20-log MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show slave status \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.186.19.17 Master_User: rple Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 1287 Relay_Log_File: mtls19-relay-bin.000002 Relay_Log_Pos: 1492 Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes
结论:
mysql复制环境正确的配置好了!
整个安装配置的过程用了不到3分钟、通过mysqltools可以大大的节省时间。所以mysqltools是一个提高生产力的好工具!
----