zoukankan      html  css  js  c++  java
  • 实战-Mysql5.6.36脚本编译安装及初始化

    概述

    本文为centos7.3自动化编译安装mysql5.3.6的脚本及后续初始化操作,话不多少,直接上脚本。

    安装脚本install.py如下:

    #coding=utf-8
    #!/usr/bin/python
    import os,commands
    #定义变量
    
    install_dir = '/data/mysql'
    data_dir = '/data/mysql/data'
    package_dir = '/data/mysql'
    log_dir = '/data/mysql/logs'
    current_dir = os.getcwd()
    cmake = 'cmake -DCMAKE_INSTALL_PREFIX=%s -DMYSQL_UNIX_ADDR=%s/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_DATADIR=%s -DMYSQL_TCP_PORT=3306' % (install_dir, install_dir, data_dir)
    
    #安装依赖包
    os.system('yum install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake perl -y')
    #安装函数
    def install_mysql():
        if os.system('groupadd mysql') == 0:
            print 'group mysql add success!'
        else:
            exit('group mysql add failed!')
        if os.system('useradd -r -g mysql -s /bin/false mysql') == 0:
            print 'user mysql add success!'
        else:
            exit('user mysql add failed!')
    
        if not os.path.exists(install_dir):
            os.system('mkdir -p %s' % install_dir)
        if not os.path.exists(data_dir):
            os.system('mkdir -p %s' % data_dir)
        if not os.path.exists(package_dir):
            os.system('mkdir -p %s' % package_dir)
        if not os.path.exists(log_dir):
            os.system('mkdir -p %s' % log_dir)
    
        if os.system('tar zxvf mysql-5.6.36.tar.gz') == 0:
            print 'uncompress v success!'
        else:
            exit('uncompress mysql-5.6.36.tar.gz failed!')
        os.chdir('mysql-5.6.36')
        if os.system(cmake) == 0:
            print '编译成功'
        else:
            exit('编译mysql失败')
        if os.system('make && make install') == 0:
            print '编译安装mysql成功'
        else:
            exit('编译安装mysql失败')
    
        if os.system('chown -R mysql:mysql %s' % install_dir) == 0:
            print '安装目录权限配置成功'
        else:
            exit()
        os.system('chown -R mysql:mysql %s' % data_dir)
    	os.system('cd %s && touch mysql-error.log' % log_dir)
        os.system('chown -R mysql:mysql %s' % log_dir)
        os.chdir(install_dir)
    
        if os.system('./scripts/mysql_install_db --user=mysql --datadir=%s' % data_dir) == 0:
            print 'mysql初始化成功'
        else:
            exit('mysql初始化失败')
    		
        os.system('cp support-files/mysql.server /etc/init.d/mysqld')
        os.system('mv /etc/my.cnf /etc/my.cnf.bak')
        os.chdir(current_dir)
        os.system('cp my.cnf /etc/my.cnf')
        os.system('service mysqld start')
        os.system('chkconfig mysqld on')
    
    install_mysql()
    
    if os.path.exists('/etc/profile'):
        os.system('cp /etc/profile /etc/profile.bak')
    if os.system('echo "PATH=%s/bin:%s/lib:$PATH" >> /etc/profile' % (install_dir, install_dir)) == 0:
        print '修改/etc/profile成功'
    else:
        exit()
    if os.system('echo "export PATH" >> /etc/profile') == 0:
        print '修改/etc/profile文件成功'
    else:
        exit()
    
    

    配置文件my.cnf

    [mysqld]
    basedir = /data/mysql
    datadir = /data/mysql/data
    tmpdir = /data/mysql
    socket = /data/mysql/mysql.sock
    skip-external-locking
    skip-name-resolve
    lower_case_table_names=1
    auto_increment_offset = 1 
    auto_increment_increment = 2 
    #server-id
    ########## binlog ##########
    log_bin = /data/mysql/logs/mysql-bin
    binlog_format = row
    binlog_cache_size = 2M
    expire-logs-days = 7
    
    ########## error log ##########
    log_error = /data/mysql/logs/mysql-error.log
    
    ########## slow log ##########
    slow_query_log = 1
    slow_query_log_file = /data/mysql/logs/mysql-slow.log
    long_query_time = 5
    
    ########## per_thread_buffers ##########
    max_connections = 1024
    max_connect_errors = 1000
    key_buffer_size = 64M
    max_allowed_packet = 128M
    table_open_cache = 6144
    table_definition_cache = 4096
    sort_buffer_size = 512K
    read_buffer_size = 512K
    join_buffer_size = 512K
    tmp_table_size = 64M
    max_heap_table_size = 64M
    thread_cache_size = 64
    thread_concurrency = 32
    bulk_insert_buffer_size = 64M
    
    ########innodb########
    innodb_buffer_pool_size = 45G
    innodb_log_file_size = 500M
    innodb_log_buffer_size = 64M
    innodb_flush_log_at_trx_commit = 2
    innodb_file_per_table = 1
    innodb_file_io_threads = 4
    innodb_flush_method = O_DIRECT
    innodb_thread_concurrency = 0
    innodb_additional_mem_pool_size = 16M
    
    [mysqlhotcopy]
    interactive-timeout
    [mysqld_safe]
    open_files_limit = 65535
    
    

    使用方法:

    1.操作系统需要配置yum源
    2.操作系统版本:centos7.3
    3.将install.py my.cnf 和mysql安装包放一个文件夹
    mysql安装包下载地址:http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz

    初始化

    由于默认情况下编译安装的mysql5.6.36没有密码,命令行直接输入mysql进行登陆,执行以下sql语句
    -- 初始化数据
    use mysql;
    update user set password=PASSWORD("Abcd123") where user='root';
    grant all privileges on *.* to weihu@"%" identified by "Abcd123";
    delete from mysql.user where user = '';
    FLUSH PRIVILEGES;
    -- 创建demo数据库
    CREATE DATABASE `demo` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    show databases;
    
  • 相关阅读:
    JSP ——第九次作业
    JSP ——第八次作业
    JSP ——第七次作业-mail_system
    JSP ——第六次作业
    JSP——第五次作业
    软件测试——第二次
    JSP作业 四——2
    JSP 作业 四 —(1)
    JSP 第三次作业
    NSData的同步下载与NSConnection的同步下载
  • 原文地址:https://www.cnblogs.com/sdhzdtwhm/p/8028214.html
Copyright © 2011-2022 走看看