一、環(huán)境部署
軟件mysql -5.7.36系統(tǒng)Centos7.9
軟件下載地址:
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.36-el7-x86_64.tar.gz
1.1,主機(jī)準(zhǔn)備
| 主機(jī)名 | IP地址 |
|---|---|
| Mysql | 172.22.204.77 |
1.2,優(yōu)化主機(jī)
主機(jī)操作
1.21,關(guān)閉防火墻及selinux
systemctl stop firewalld && systemctl disable firewalld
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config
二、開(kāi)始安裝
2.1,所有應(yīng)用軟件安裝目錄為
cd /opt/app
tar -zxvf mysql-5.7.36-el7-x86_64.tar.gz
mv mysql-5.7.36-el7-x86_64 mysql
2.2,my.cnf配置文件如下
## MySQL 5.7 Configuration File
[mysqld]
## General
user = mysql
bind_address = 172.22.204.77
port = 3306
basedir = /opt/app/mysql/
datadir = /opt/app/mysql/data/
tmpdir = /opt/app/mysql/tmp
socket = /opt/app/mysql/data/mysql.sock
pid-file = /opt/app/mysql/data/mysqld.pid
character_set_server = utf8
sql_mode = NO_ENGINE_SUBSTITUTION # default "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
transaction_isolation = READ-COMMITTED # default REPEATABLE-READ
explicit_defaults_for_timestamp = ON # default OFF
secure_file_priv =
skip-symbolic-links
skip_name_resolve = ON
skip_external_locking = ON
performance_schema = ON # default ON
autocommit = ON # default ON
#event_scheduler = ON # default OFF
#lower_case_table_names = 0 # default 0
show_compatibility_56 = ON # >= 5.7.8 default OFF
## ssl
#ssl_ca = /opt/app/mysql/data/ssl/ca.pem
#ssl_cert = /opt/app/mysql/data/ssl/server-cert.pem
#ssl_key = /opt/app/mysql/data/ssl/server-key.pem
## Networking
back_log = 1000
max_connections = 1100
max_user_connections = 1000
max_connect_errors = 1000000
interactive_timeout = 300
wait_timeout = 300
connect_timeout = 10
net_buffer_length = 1M
max_allowed_packet = 32M
## Cache
thread_cache_size = 192 # since 5.6.8 default -1, autosized ( max_connections / 100 ) + 8
table_open_cache = 4096
table_definition_cache = 4096
table_open_cache_instances = 8
query_cache_type = 0
query_cache_size = 0
#query_cache_size = 32M
#query_cache_limit = 1M
#query_cache_min_res_unit = 2K
## Per_thread Buffers
sort_buffer_size = 32M # default 256K
read_buffer_size = 16M # default 256K
read_rnd_buffer_size = 32M # default 256K
join_buffer_size = 128M # default 256K
bulk_insert_buffer_size = 64M
thread_stack = 256K # default 192K
## Temp Tables
tmp_table_size = 512M
max_heap_table_size = 512M
## Sort
max_length_for_sort_data = 2048 # default 1024
eq_range_index_dive_limit = 200 # default 10
### Storage Engines
default_storage_engine = InnoDB
## MyISAM
key_buffer_size = 512M
myisam_sort_buffer_size = 256M # default 8M, for change index
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover_options = default
## InnoDB
innodb_file_per_table = ON
innodb_file_format_check = ON
innodb_checksum_algorithm = crc32
innodb_page_size = 16k # default 16k
innodb_buffer_pool_size = 2G # default 1G, = innodb_buffer_pool_instances * innodb_buffer_pool_chunk_size * n
innodb_buffer_pool_instances = 8 # since 5.6.6 if innodb_buffer_pool_size < 1G default 1 else 8
innodb_buffer_pool_chunk_size = 128M # defautl 128M
#innodb_data_file_path = ibdata1:100M:autoextend
#innodb_temp_data_file_path = ../tmp/ibtmp1:12M:autoextend
#innodb_log_group_home_dir = /opt/app/mysql/redolog/
innodb_log_file_size = 1G
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16M
innodb_rollback_segments = 128 # defautl 128
#innodb_undo_directory = /opt/app/mysql/undolog/
#innodb_undo_tablespaces = 4 # from 5.7.21 deprecated
innodb_open_files = 4000
innodb_thread_concurrency = 32
innodb_flush_log_at_trx_commit = 1
innodb_flush_log_at_timeout = 1 # defautl 1, when innodb_flush_log_at_trx_commit = 0 or 2
innodb_purge_threads = 4
innodb_print_all_deadlocks = ON
innodb_max_dirty_pages_pct = 70
innodb_lock_wait_timeout = 50
innodb_flush_method = O_DIRECT
innodb_old_blocks_time = 1000 # since 5.6.6 default 1000
innodb_io_capacity = 600 # default 200
innodb_io_capacity_max = 2000 # default 2000
innodb_lru_scan_depth = 1024 # default 1024
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_buffer_pool_load_at_startup = ON
innodb_buffer_pool_dump_at_shutdown = ON
innodb_buffer_pool_filename = ib_buffer_pool # default ib_buffer_pool
innodb_sort_buffer_size = 64M # default 1M , 64K - 64M , for change index
innodb_buffer_pool_dump_pct = 40
innodb_page_cleaners = 16
innodb_undo_log_truncate = ON
innodb_max_undo_log_size = 2G
innodb_purge_rseg_truncate_frequency = 128
## Gtid
#gtid_mode = ON
#enforce_gtid_consistency = ON
#binlog_gtid_simple_recovery = 1
## Replication
server_id = 1030
log_bin = /opt/app/mysql/data/mysql_bin
expire_logs_days = 7
binlog_format = ROW
binlog_row_image = full # default full
#innodb_autoinc_lock_mode = 2 # default 1
binlog_rows_query_log_events = 1
max_binlog_size = 500M
binlog_cache_size = 1M
#read_only = ON
#super_read_only = ON
#relay_log_purge = 1
#slave_net_timeout = 60
#replicate_wild_do_table = mysql.%
#replicate_wild_ignore_table = test.%
#auto_increment_offset = 1
#auto_increment_increment = 2
#plugin_dir = /opt/app/mysql/lib/plugin
#plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
#rpl_semi_sync_master_enabled = ON
#rpl_semi_sync_slave_enabled = ON
#rpl_semi_sync_master_timeout = 1000
slave_transaction_retries = 128
## MTS
relay_log_recovery = 1
#slave_parallel_type = LOGICAL_CLOCK
#slave_parallel_workers = 16
#slave_preserve_commit_order = 1
## Logging
log_output = FILE
slow_query_log = ON
slow_query_log_file = /opt/app/mysql/logs/slow_mysqld.log
log_queries_not_using_indexes = OFF # default OFF
log_throttle_queries_not_using_indexes = 10 # default 0
min_examined_row_limit = 100 # default 0
log_slow_admin_statements = ON
log_slow_slave_statements = ON
long_query_time = 1
#log-short-format = 0
log_error = /opt/app/mysql/logs/error_mysqld.log
#general_log = ON
#general_log_file = /opt/app/mysql/data/general_mysqld.log
log_timestamps = system
## Index
ft_min_word_len = 4
[mysqld_safe]
open_files_limit = 65535
[mysql]
no_auto_rehash
prompt = "MySQL [\\d] > "
[mysqldump]
quick
max_allowed_packet = 32M
[myisamchk]
key_buffer_size = 64M
sort_buffer_size = 32M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive_timeout
[client]
socket = /opt/app/mysql/data/mysql.sock
2.3,創(chuàng)建對(duì)應(yīng)的目錄文件
useradd mysql -s /sbin/nologin
mkdir /opt/app/mysql/redolog/ -p
mdkir /opt/app/mysql/tmp
mkdir /opt/app/mysql/logs/
mkdir /opt/app/mysql/data/
touch /opt/app/mysql/logs/error_mysqld.log
chown -R mysql:mysql /opt/app/mysql
2.4,mysqld文件內(nèi)容
[root@172.22.204.77-kafka01:support-files]$sed -i "s#basedir=/usr/local/mysql#basedir=/opt/app/mysql#g" mysql.server
[root@172.22.204.77-kafka01:support-files]$sed -i "s#bindir=/usr/local/mysql/bin#bindir=/opt/app/mysql/bin#g" mysql.server
[root@172.22.204.77-kafka01:support-files]$sed -i "s#datadir=/usr/local/mysql/data#datadir=/opt/app/mysql/data#g" mysql.server
[root@172.22.204.77-kafka01:support-files]$sed -i "s#sbindir=/usr/local/mysql/bin#sbindir=/opt/app/mysql/bin#g" mysql.server
[root@172.22.204.77-kafka01:support-files]$sed -i "s#libexecdir=/usr/local/mysql/bin#libexecdir=/opt/app/mysql/bin#g" mysql.server
用以下命令直接執(zhí)行:
cd /opt/app/mysql/support-files
cp mysql.server mysql.server_bak
sed -i "s#basedir=/usr/local/mysql#basedir=/opt/app/mysql#g" mysql.server
sed -i "s#bindir=/usr/local/mysql/bin#bindir=/opt/app/mysql/bin#g" mysql.server
sed -i "s#datadir=/usr/local/mysql/data#datadir=/opt/app/mysql/data#g" mysql.server
sed -i "s#sbindir=/usr/local/mysql/bin#sbindir=/opt/app/mysql/bin#g" mysql.server
sed -i "s#libexecdir=/usr/local/mysql/bin#libexecdir=/opt/app/mysql/bin#g" mysql.server
cp mysql.server /etc/init.d/mysqld
2.5,初始化
cd /opt/app/mysql;
./bin/mysqld --user=mysql --basedir=/opt/app/mysql --datadir=/opt/app/mysql/data --initialize
2.6,配置環(huán)境變量
#####Mysql_home
export MYSQL_HOME=/opt/app/mysql
export PATH=$MYSQL_HOME/bin:$PATH
2.7,啟動(dòng)mysql
[root@172.22.204.77-kafka01:mysql]$/etc/init.d/mysqld start
Starting MySQL.. SUCCESS!
[root@172.22.204.77-kafka01:mysql]$
2.8,重置密碼
在more logs/error_mysqld.log日志里面,查找到初始密碼
然后進(jìn)入mysql修改
set password=password("tomcat2020");
三、mysql安裝完畢
[root@172.22.204.77-kafka01:mysql]$mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.36-log MySQL Community Server (GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)] > show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
MySQL [(none)] >
四、密碼忘記修改
my.cnf文件修改
skip-grant-tables=1
進(jìn)入mysql修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'tomcat2020';
flush privileges;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('tomcat2020');
flush privileges;
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;