Overview This article is a script for automatically compiling and installing mysql5.3.6 on centos7.3 and subsequent initialization operations. Without further ado, let's get straight to the script. The installation script install.py is as follows: #coding=utf-8 #!/usr/bin/python import os,commands #Define variable 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) #Install dependent packages os.system('yum install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake perl -y') #Installation function 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 'Compilation successful' else: exit('Compile mysql failed') if os.system('make && make install') == 0: print 'Compile and install mysql successfully' else: exit('Compile and install mysql failed') if os.system('chown -R mysql:mysql %s' % install_dir) == 0: print 'Installation directory permissions configured successfully' 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 initialization successful' else: exit('mysql initialization failed') 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 'Modify /etc/profile successfully' else: exit() if os.system('echo "export PATH" >> /etc/profile') == 0: print 'The /etc/profile file has been modified successfully' else: exit() Configuration file 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 Directions: 1. The operating system needs to configure the yum source MySQL installation package download address: Link: https://pan.baidu.com/s/1pKHbFlh Password: tx9b initialization Since the compiled and installed mysql5.6.36 has no password by default, enter mysql directly in the command line to log in and execute the following sql statement -- Initialize data 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; -- Create a demo database CREATE DATABASE `demo` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; show databases; The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: You Probably Don’t Need to Use Switch Statements in JavaScript
>>: Detailed explanation of Frp forced redirection to https configuration under Nginx
1. Use xshell to connect to the virtual machine, ...
background During development, we may need some s...
Table of contents Array destructuring assignment ...
Enter ssh and enter the following command to rese...
Preface When developing a project, I encountered ...
1. Background In the context of rapid updates and...
Step 1: Confirm the architecture of your system d...
Table of contents 1. Demand 1. Demand 2. SDK para...
Mainly discuss its structure and some important pr...
This article uses examples to illustrate how to i...
Table of contents 1. Build basic styles through E...
Table of contents Requirements encountered in act...
This script can satisfy the operations of startin...
Table of contents 1. Effect diagram (multiple col...
HTML form tag tutorial, this section mainly expla...