--MYSQL and PostgreSQL python快速搭建MYSQL 8.026 和 PostgreSQL 12.6

7f43007b07e01eaaea4ef943a8357f1f.png

最近安装MYSQL 8的时候遇到一些问题,之前MYSQL 8.011 的shell脚本安装8.026 报错,后面手动安装MYSQL虽然没有什么问题,但重复性的劳动也没有人愿意去经常做,所以做了一个简易的python脚本来快速安装8.026。

之前一直想学python,但一直没有时间,所以python的水平一直处于初学的状态。需要将脚本和和 mysql 8.026的bin包放到/root目录下

(代码可能在拷贝后需要进行python缩进调整)

此脚本仅仅为测试环境中使用,环境PYTHON3

#!/usr/bin/python3

import os
import sys

def main():
  print('操作会删除MYSQL以及data目录下的数据,如终止操作请按1如继续操作请按0')

  temp = input('输入选择数字 0停止 或 1继续')
  num = int(temp)
  if num == 1:
      ip = 'www.baidu.com'  #判断是否可以连接internet,能可以继续工作,否退出安装
      backinfo = os.system('ping -c 1 -w 1 %s' % ip)
      if backinfo:
          print('you can not access internet')
      else:
          print(backinfo)

          os.system('yum -y install openssl*')
          user = os.system('useradd mysql ')

          if user:
              print('no_create_user')
          else:
              print('yes_create_user')



          print('请确认要删除 /data /usr/local/mysql 目录 ')
          os.system('systemctl stop firewalld')
          print('关闭防火墙')
          os.system('systemctl disable firewalld')
          os.system('setenforce 0')
          os.system('getenforce')
          print('关闭selinux')
          os.system('rm -rf /data')
          os.system('rm -rf /usr/local/mysql')
          os.system('rm -rf /root/mysql')
          os.system('tar xvf /root/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz')
          os.system('mv /root/mysql-8.0.26-linux-glibc2.12-x86_64  /root/mysql')
          os.system('mv /root/mysql /usr/local/mysql')
          os.system('chown -R mysql:mysql /usr/local/mysql')
          os.system('mkdir /data')
          os.system('chown -R mysql:mysql /data')
          os.system('cp /root/my.cnf /etc/my.cnf')
          os.system('/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/data')
          os.system('cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld')
          mysql = os.system('service mysqld start')
          print (mysql)
  else:
      print ('停止')

if __name__ == "__main__":
  main()

脚本在运行时,需要将mysql 8.026的BIN包和自己写的my.cnf 文件和python脚本放置在root目录。然后直接运行 install_mysql_n.py 即可。此方式安装后的MYSQL root 没有密码。数据目录直接设置在/data下。 

后面有时间,可以写一个PG的 自动化安装的脚本。

01103886b5505795e10f1740f2ab021f.png

1280e5956d7844167556bf40de19ad2d.png

298ab89a44a61a4c96a43e8b194c0f75.png

PostgreSQL 编译安装虽然不是很复杂,对于初学者却是一个小门槛,下面通过python程序快速的安装postgresql 12.6 环境。

请将postgresql 12.6的安装包和install_postgres.py  放置到/root目录中,并赋予执行权限,安装后/pgdata 为主目录, /usr/local/postgres 为主程序的安装路径。另安装过程中请注意联通internet。 

#!/usr/bin/python3

import os
import sys

def main():
  print('请确认要删除pgdata,如终止操作请按1如继续操作请按0')

  temp = input('输入选择数字 0停止 或 1继续')
  num = int(temp)
  if num == 1:
      ip = 'www.baidu.com'  #判断是否可以连接internet,能可以继续工作,否退出安装
      backinfo = os.system('ping -c 1 -w 1 %s' % ip)
      if backinfo:
          print('you can not access internet')
      else:
          print(backinfo)

          os.system('userdel postgres')
          user = os.system('useradd postgres ')

          if user:
              print('no_create_user')
          else:
              print('yes_create_user')



          print('请确认要删除 /pgdata /usr/local/postgres 目录 ')
          os.system('systemctl stop firewalld')
          print('关闭防火墙')
          os.system('systemctl disable firewalld')
          os.system('setenforce 0')
          os.system('getenforce')
          print('关闭selinux')
          os.system('rm -rf /pgdata')
          os.system('rm -rf /usr/local/postgres')
          os.system('rm -rf /root/postgres')
          os.system('tar xvf /root/postgresql-12.6.tar.gz')
          os.system('mv /root/postgresql-12.6  /root/postgres')
          os.system('yum -y install bison  readline pam')
          os.system('yum -y install libxml2 libxml2-devel openssl openssl-devel')
          os.system('yum -y install readline-devel zlib zlib-devel')
          os.system('yum -y install gcc glibc glibc-common gd gd-devel -y')
          os.system('yum -y install  libxslt libxslt-devel')
          os.system('yum -y install e2fsprogs-devel uuid-devel libuuid-deve  libssl* systemd*')
          os.system('cd /root/postgres; ./configure --prefix=/usr/local/postgres --bindir=/usr/local/postgres/bin --sysconfdir=/etc --libdir=/usr/local/postgres/libs --includedir=/usr/local/postgres/includes --datadir=/pgdata --datarootdir=/pgdata/root --with-pgport=5432 --with-openssl --with-systemd --with-libxml --with-segsize=4 --with-ossp-uuid')
          os.system('cd /root/postgres; gmake')
          os.system('cd /root/postgres; gmake install')
          os.system('chown -R postgres:postgres /pgdata/ ')
          os.system('su - postgres -c "/usr/local/postgres/bin/initdb -D /pgdata/data --wal-segsize=64"')
          result = os.system('su - postgres -c "/usr/local/postgres/bin/pg_ctl -D /pgdata/data start"')
          print(result)
  else:
      print ('停止')

if __name__ == "__main__":
  main()

e6c20636833f0f089faa400e8fdff076.png

以上仅仅在测试环境中部署,不建议在生产环境中操作。

直接在root 目录下执行 ./install_postgres.py 即可, 需要python3环境执行。

19be9f6b0a8aad9f23791cc0b9c5fc79.png

5864f3b81d112cd485f521d1d2ae8a6e.png

94803b64184042d3178af48dbdb55a3b.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值