centos7.2 Offline installation mysql5.7. 18. tar. gz

  • 2021-12-04 20:04:11
  • OfStack

Because of network isolation, mysql cannot be installed using yum. Here is how to manually install mysql offline on an linux server.

Purpose

Install the mysql service offline
Server: centos7.2, configure local yum source
mysql version: mysql 5.7. 18

Steps

1. Download the installation package mysql-5. 7.18-linux-glibc2.5-x86_64. tar. gz and transfer the installation package to the destination server/tmp directory
2. The my. cnf file (see end of article) is transferred to the/tmp directory of the destination server
3. Create users and corresponding folders:


# prepare
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
yum install -y autoconf
mkdir /apps
mkdir /logs
mkdir /data
mkdir -p /data/mysql7006/data && chown -R mysql:mysql /data/mysql7006
mkdir /logs/mysql7006 && chown -R mysql:mysql /logs/mysql7006
touch /logs/mysql7006/error-log.err && chown -R mysql:mysql /logs/mysql7006/error-log.err

Step 4 Install


cd /tmp
tar zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.18-linux-glibc2.5-x86_64 mysql
mv mysql /apps/mysql
cp my.cnf /apps/mysql/

chown -R mysql:mysql /apps/mysql/
#  Initialize the database, 
cd /apps/mysql
./bin/mysqld --initialize --user=mysql --basedir=/apps/mysql/ --datadir=/data/mysql7006/data/

During initialization, a default password will be generated. Remember to write it down and use it for subsequent modification.

5. Register service (optional)


#  Modify according to the situation support-files/mysql.server
cp support-files/mysql.server /etc/init.d/mysql
systemctl start mysql.service

#  Add boot boot 
chkconfig mysql.server on

6. Start the database /apps/mysql/bin/mysqld_safe-defaults-file=/apps/mysql/my. cnf &

7. Modify the default password:


/apps/mysql/bin/mysqladmin -u root password 'password' --port=7006 --socket=/data/mysql7006/mysql.sock -p
#  Empty after modification linux Adj. history Record 
history -c

#  Login test: 
/apps/mysql/bin/mysql -u root --port=7006 --socket=/data/mysql7006/mysql.sock -p

8. Firewall, empowerment (on demand)


#  Firewall 
firewall-cmd --zone=public --add-port=7006/tcp --permanent
systemctl restart firewalld
firewall-cmd --zone=public --query-port=7006/tcp
#  Empower the login user 
use mysql;
grant all privileges on *.* to user@'ip' identified by "password";
flush privileges;
select host,user,password from user;

9. Locally hidden password login (optional)


##  Use mysql_config_editor  Make login file 
/apps/mysql/bin/mysql_config_editor set --login-path=root_pass --user=root --port=7006 --socket=/data/mysql7006/mysql.sock --password
##  Enter password: ******
##  Files are encrypted and stored in the user's root directory .mylogin.cnf
/apps/mysql/bin/mysql_config_editor print --all
##  The next time you log in, type directly: 
/apps/mysql/bin/mysql --login-path=root_pass

#  Save trouble again 1 Some: set alias
#  Open file .bashrc , add 
alias db7006='/apps/mysql/bin/mysql --login-path=root_pass'
#  Then exit execution: 
source .bashrc
##  The next time you log in, type directly: 
db7006

Appendix

my. cnf file

Main functions: Global utf8 character set, custom port, data folder, log folder, default engine innodb (support transaction, friendly to xtrabackup), skip dns parsing when client login


[client]
port=7006
default-character-set=utf8

[mysqld]
skip-name-resolve
secure_file_priv="/"
character-set-server=utf8
user=mysql
server_id=20180917
port=7006
socket=/data/mysql7006/mysql.sock
pid-file=/data/mysql7006/mysql.pid
basedir=/apps/mysql
datadir=/data/mysql7006/data
log-error=/logs/mysql7006/error-log
log-bin=/logs/mysql7006/bin-log

max_allowed_packet    = 64M
default_storage_engine   = InnoDB
innodb_strict_mode    = 1
innodb_buffer_pool_size  = 5G
innodb_stats_on_metadata  = 0
innodb_file_format    = Barracuda
innodb_flush_method   = O_DIRECT
innodb_log_files_in_group  = 2
innodb_log_file_size   = 4G
innodb_log_buffer_size   = 128M
innodb_file_per_table   = 1
innodb_max_dirty_pages_pct  = 60
innodb_io_capacity    = 4000
lower_case_table_names   = 1

#ADD INNODB
innodb_buffer_pool_instances = 16
innodb_flush_log_at_trx_commit = 1
innodb_adaptive_flushing  = 1
innodb_thread_concurrency  = 0
innodb_stats_persistent  = 1
innodb_purge_threads   = 4
innodb_use_native_aio   = 1

##innodb_use_sys_malloc  = 1
innodb_autoinc_lock_mode  = 2
innodb_change_buffering  = inserts
innodb_read_io_threads   = 16
innodb_write_io_threads  = 16
expire_logs_days    = 30

# CACHES AND LIMITS #
key_buffer_size    = 32M
tmp_table_size     = 256M
max_heap_table_size   = 256M

table_open_cache    = 4096
query_cache_type    = 0
query_cache_size    = 0
max_connections    = 2000
thread_cache_size    = 1024
open_files_limit    = 65535

#ADD OTHERS
metadata_locks_hash_instances = 256
table_open_cache_instances  = 16
back_log      = 1500

wait_timeout     = 3600
interactive_timeout   = 3600
master_info_repository=TABLE
relay_log_info_repository=TABLE
log_slave_updates=ON
binlog_checksum=NONE
binlog_format=ROW
transaction_isolation=READ-COMMITTED
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

Related articles: