一、從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是一個提高生產力的好工具!
----