Mysql5.6.36 script compilation, installation and initialization tutorial

Mysql5.6.36 script compilation, installation and initialization tutorial

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
2. Operating system version: centos7.3
3. Put install.py my.cnf and mysql installation package in a folder

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:
  • MySQL 5.6.36 Windows x64 version installation tutorial detailed
  • MySql 5.6.36 64-bit green version installation graphic tutorial

<<:  You Probably Don’t Need to Use Switch Statements in JavaScript

>>:  Detailed explanation of Frp forced redirection to https configuration under Nginx

Recommend

Solution to nacos not being able to connect to mysql

reason The mysql version that nacos's pom dep...

Excel export always fails in docker environment

Excel export always fails in the docker environme...

Why is the MySQL auto-increment primary key not continuous?

Table of contents 1. Introduction 2. Self-increme...

Some tips for writing high-performance HTML applications

How can you improve web page performance? Most de...

...

Linux service monitoring and operation and maintenance

Table of contents 1. Install the psutil package S...

How to solve the timeout during pip operation in Linux

How to solve the timeout problem when pip is used...

How to implement property hijacking with JavaScript defineProperty

Table of contents Preface Descriptors Detailed ex...

How to view mysql binlog (binary log)

For example, when you create a new table or updat...

HTML small tag usage tips

Phrase elements such as <em></em> can ...

How to implement mask layer in HTML How to use mask layer in HTML

Using mask layers in web pages can prevent repeat...

React uses emotion to write CSS code

Table of contents Introduction: Installation of e...