MySQL 5.7.17 standalone server install and configuration
1 install mysql with YUM
2 edit /etc/my.cnf
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
datadir=
/var/lib/mysql
#Modify it if necessary
innodb_buffer_pool_size = 2G
#after VM provisioned, change this parameter according to the physical memory, usually 60-70% physical mem.
innodb_buffer_pool_instances = 2
#depend on buffer_pool_size, buffer_pool_size/2 when > 1G
innodb_log_file_size = 2000M
#2000M is a good starting point.
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
max_connections=2000
#modify it according to the buffer_pool_size.
innodb_undo_log_truncate=1
innodb_undo_logs=128
innodb_undo_tablespaces=3
autocommit=0
port = 8080
#Modify it according to the port standard.
server-
id
=3
#Modify it to a unique value before a new instance started
expire-logs-days=7
log-bin = mysql-bin
log-bin-index=mysql-bin-index
binlog_format = row
explicit_defaults_for_timestamp=1
gtid_mode=on
log_slave_updates
enforce_gtid_consistency
lower_case_table_names=1
transaction_isolation = READ-COMMITTED
innodb_stats_persistent = 1
innodb_stats_persistent_sample_pages = 200
innodb_read_io_threads = 16
innodb_write_io_threads = 4
table_open_cache_instances = 16
metadata_locks_hash_instances = 256
innodb_page_size = 16384
#slow log enable
long_query_time=1
#the threshold of long running sql in seconds. Default is 10s
slow_query_log=1
#enalbe slow log
#For Slave
#replicate-rewrite-db=zdbtest->mass
#slave-parallel-type=LOGICAL_CLOCK
performance_schema_instrument=transaction=ON
performance_schema_instrument=wait
/lock/metadata/sql/mdl
=ON
performance_schema_instrument=memory/%=COUNTED
performance_schema_consumer_events_statements_history_long=ON
performance_schema_consumer_events_transactions_current=ON
performance_schema_consumer_events_transactions_history=ON
|
3 start mysql service
service mysqld start
systemctl
enable
mysqld
|
4 Remove default "root" account
#Get the initial
password
for
root via
cat /var/log/mysqld.log | grep passw
mysql -u root -p
ALTER
USER
root@localhost identified
by
'<new password>'
;
#
CREATE
A NEW DBA account
CREATE
USER
'system'
@
'%'
identified
by
'<new password>'
;
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'system'
@
'%'
WITH
GRANT
OPTION
;
GRANT
PROXY
ON
''
@
''
TO
'system'
@
'%'
WITH
GRANT
OPTION
;
DROP
USER
'root'
@
'localhost'
;
|
5 Transfer the DBA account to bastion host.
6 Create application users and bastion users
#please use the gensql.sh(attached at bottom) to generate the create database and user statements. You need to edit the dbs.txt to add what database you are going to create.
#after you ran the shell script, the SQL statements would be output on your screen and the user credentials will be in a file called xls(csv format). Please give the username/password to the corresponding team.
|