python主从_用python3搭建Linux-mariadb主从架构

环境配置:

1.准备2台服务器,IP地址设置如下:

192.168.146.10 master

192.168.146.20 slave

2.需要Linux装python环境:

https://www.cnblogs.com/kingzhe/p/11124527.html

在做主从时,要保证两个数据库的信息一致

[root@localhost ~]# mysql_secure_installation

[root@localhost ~]# 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()

传入到pychar中

[root@localhost ~]# python3 1.py

[root@localhost ~]# python3 1.py

mariadb.repo hhh

+------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000006 | 630 | | |

+------------------+----------+--------------+------------------+

master成功

在运行是遇到的报错

[root@localhost ~]# python 1.py

Traceback (most recent call last):

File "1.py", line 1, in

import configparser

ImportError: No module named configparser #这条报错是没有configparser模块

[root@localhost ~]# 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@localhost ~]# python3 2.py

[root@localhost ~]# python3 2.py

master_ip:192.168.146.10

log_file:mysql-bin.000006

pos:530

Redirecting to /bin/systemctl restart mariadb.service

完成架构配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值