环境准备两台:
192.168.193.90 master
192.168.193.91 slave
需要Linux装python环境:
https://www.cnblogs.com/kingzhe/p/11124527.html
在做主从时,要保证两个数据库的信息一致
[root@node1 ~]# MysqL_secure_installation [root@node2 ~]# MysqL_secure_installation
master
import configparser import os def config_mariadb_yum(): exists = os.path.exists('/etc/yum.repos.d/mariadb.repo') if exists: print('mariadb.repo exist') yum_install_mariadb() else: config = configparser.ConfigParser() config.read('/etc/yum.repos.d/mariadb.repo', encoding='utf-8') config.add_section('mariadb') config.set('mariadb', 'name', 'MariaDB') config.set('mariadb', 'baseurl', 'http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/') config.set('mariadb', 'gpgkey', 'http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB') config.set('mariadb', 'gpgcheck', '1') config.write(open("/etc/yum.repos.d/mariadb.repo", "w")) yum_install_mariadb() def yum_install_mariadb(): res1 = os.system('yum install MariaDB -y > /dev/null 2&>1') if res1 == 0: config = configparser.ConfigParser() config.read('/etc/my.cnf.d/server.cnf', encoding='utf-8') config.set('server','server_id','1') config.set('server','log-bin','MysqL-bin') config.write(open("/etc/my.cnf.d/server.cnf", "w")) res2 = os.system('service mariadb restart') if res2 == 0: os.system('''MysqL -uroot -proot -e "grant replication slave on *.* to 'slave'@'%' identified by 'slave'"''') os.system("MysqL -uroot -proot -e 'show master status'") def main(): config_mariadb_yum() if __name__ == '__main__': main()
slave
import configparser import os master_ip = input('master_ip:').strip() log_file = input('log_file:').strip() pos = input('pos:').strip() def config_mariadb_yum(): exists = os.path.exists('/etc/yum.repos.d/mariadb.repo') if exists: print('mariadb.repo exist') yum_install_mariadb() else: config = configparser.ConfigParser() config.read('/etc/yum.repos.d/mariadb.repo', encoding='utf-8') config.add_section('mariadb') config.set('mariadb', 'name', 'MariaDB') config.set('mariadb', 'baseurl', 'http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/') config.set('mariadb', 'gpgkey', 'http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB') config.set('mariadb', 'gpgcheck', '1') config.write(open("/etc/yum.repos.d/mariadb.repo", "w")) yum_install_mariadb() def yum_install_mariadb(): res1 = os.system('yum install MariaDB -y > /dev/null 2&>1') if res1 == 0: config = configparser.ConfigParser() config.read('/etc/my.cnf.d/server.cnf', encoding='utf-8') config.set('server','server_id','2') config.write(open("/etc/my.cnf.d/server.cnf", "w")) res2 = os.system('service mariadb restart') if res2 == 0: os.system('''MysqL -uroot -proot -e "CHANGE MASTER TO MASTER_HOST='%s', MASTER_USER='slave', MASTER_PASSWORD='slave', MASTER_LOG_FILE='%s', MASTER_LOG_POS=%s"''' % (master_ip,log_file,pos)) os.system("MysqL -uroot -proot -e 'start slave;'") def main(): config_mariadb_yum() if __name__ == '__main__': main()
在pycharm写入 rz上传
[root@node1 ~]# python3 1.py
[root@node1 ~]# python3 1.py mariadb.repo hhh +------------------+----------+--------------+------------------+ | File | Position | binlog_Do_DB | binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | MysqL-bin.000006 | 530 | | | +------------------+----------+--------------+------------------+
master成功
在运行是遇到的报错
[root@node1 ~]# python 1.py Traceback (most recent call last): File "1.py", line 1, in <module> import configparser ImportError: No module named configparser #这条报错是没有configparser模块 [root@node1 ~]# [root@node1 ~]# [root@node1 ~]# [root@node1 ~]# [root@node1 ~]# [root@node1 ~]# pip install configparser #下载模块 Collecting configparser Downloading https://files.pythonhosted.org/packages/ba/05/6c96328e92e625fc31445d24d75a2c92ef9ba34fc5b037fe69693c362a0d/configparser-3.7.4-py2.py3-none-any.whl Installing collected packages: configparser Successfully installed configparser-3.7.4 #下载成功
rz上传slave节点
[root@node2 ~]# python3 2.py
[root@node2 ~]# python3 2.py master_ip:192.168.193.90 log_file:MysqL-bin.000006 pos:530 Redirecting to /bin/systemctl restart mariadb.service
这样就完成了主从架构
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。