MySQL5.7生产环境二进制标准安装

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
RDS MySQL DuckDB 分析主实例,集群系列 8核16GB
简介: MySQL5.7生产环境二进制标准安装

环境优化

# 关闭防火墙
systemctl stop firewalld.service 
systemctl disable  firewalld.service
#查看selinux
getenforce 
#关闭selinux
setenforce 0  
#永久关闭selinux
sed -i  's#SELINUX=enforcing#SELINUX=disabled#g'   /etc/selinux/config
#清除iptables 规则
iptables -F
# 关闭NetworkManager
systemctl stop  NetworkManager
systemctl disable  NetworkManager
# 尽量不使用交换区,默认60
echo '0' > /proc/sys/vm/swappiness
# 永久修改 尽量不使用交换区,默认60
cat >>/etc/sysctl.conf<<'EOF'
vm.swappiness=0
vm.overcommit_memory = 1
EOF
sysctl -p
ntpdate  -u  ntp.aliyun.com  # 时间同步
hwclock -w                   # 更新BIOS时间

安装常用命令及依赖

yum install   -y  net-tools lrzsz wget  vim  libaio-devel ntpdate  epel-release \
tree  libaio-devel lsof sysstat  bash-completion  bash-completion-extras jemalloc

卸载mariadb

yum remove  mariadb*  -y

创建MySQL软件及数据目录

mkdir  /mysql/{tools,tar}  -p
mkdir  /mydata/3306/{binlog,data,etc,lock,log,pid,socket,tmp,script}  -p

下载安装包

cd      /mysql/tar
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz

md5验证包的完整性

[root@ds_dnr_db01 tar]# md5sum mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
d7c8436bbf456e9a4398011a0c52bc40  mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz

解压MySQL包

cd      /mysql/tar
tar xf  /mysql/tar/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz

移动tar包到mysql目录

mv /mysql/tar/mysql-5.7.44-linux-glibc2.12-x86_64  /mysql/mysql57

配置环境变量

cat  >/etc/profile.d/mysql.sh<<'EOF'
export PATH=/mysql/mysql57/bin:$PATH
EOF
#修改权限
chmod 700 /etc/profile.d/mysql.sh
#生效环境变量
source /etc/profile.d/mysql.sh

创建所需用户

groupadd  mysql
useradd mysql -g mysql

添加配置文件

cat  >/mydata/3306/etc/my.cnf<<'EOF'
[client]
socket=/mydata/3306/socket/mysql.sock
[mysql]
socket=/mydata/3306/socket/mysql.sock
prompt='\u@\d>\_'
default-character-set=utf8mb4
no-auto-rehash
#show-warnings  #查看告警信息
[mysqld]
# GENERAL #
lower_case_table_names         = 1
character_set_server           = utf8mb4
collation_server               = utf8mb4_general_ci
user                           = mysql
default_storage_engine         = InnoDB
port                           = 3306
socket                         = /mydata/3306/socket/mysql.sock
pid-file                       = /mydata/3306/pid/mysql.pid
log_timestamps                 = SYSTEM
default_time_zone              = +08:00
secure_file_priv               = ''
local_infile                   = ON
thread_stack               = 512K
# MyISAM #
key_buffer_size                = 128M
myisam_sort_buffer_size        = 8M
read_rnd_buffer_size           = 262144
# SAFETY #
back_log                       = 1024
bind-address                   = 0.0.0.0
innodb_strict_mode             = 1
max_allowed_packet             = 32M
max_connect_errors             = 1000000
interactive_timeout            = 900
wait_timeout                   = 900
skip_grant_tables              = 0
skip_name_resolve              = 1
host_cache_size                = 0
sql_mode                       = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
sysdate_is_now                 = 1
transaction_isolation          = REPEATABLE-READ
explicit_defaults_for_timestamp = 1
# DATA STORAGE #
basedir                        = /mysql/mysql57
datadir                        = /mydata/3306/data
tmpdir                         = /mydata/3306/tmp
# BINARY LOGGING #
#max_binlog_files              = 100
binlog_cache_size              = 1M
binlog_format                  = ROW
expire_logs_days               = 15
max_binlog_size                = 512M
max_binlog_cache_size          = 4G
log_bin                        = /mydata/3306/binlog/mysql-bin
log_bin_index                  = /mydata/3306/binlog/mysql-bin.index
sync_binlog                    = 1
innodb_support_xa              = 1
master-info-repository         = TABLE
# REPLICATION #
log_slave_updates              = 1
read_only                      = 0
relay_log                      = /mydata/3306/binlog/relay-bin
relay_log_index                = /mydata/3306/binlog/relay-bin.index
server_id                      = 330651
slave_skip_errors              = OFF
skip_slave_start
slave_net_timeout              = 60
relay-log-info-repository      = TABLE
slave_compressed_protocol      = OFF   #5.6版本、5.7.21+、8.0.4+可以设置为ON
# CACHES AND LIMITS #
max_connections                = 2000
max_heap_table_size            = 128M
tmp_table_size                 = 128M
open_files_limit               = 65535
query_cache_limit              = 1M
query_cache_min_res_unit       = 4096
query_cache_size               = 0
query_cache_type               = 0
join_buffer_size               = 1M
read_buffer_size               = 1M
sort_buffer_size               = 1M
table_definition_cache         = 4096
table_open_cache               = 4000
thread_cache_size              = 1000
# INNODB #
innodb_autoextend_increment    = 64
innodb_buffer_pool_instances   = 1
innodb_buffer_pool_size        = 1G    # 设置为自己机器的内存大小
innodb_buffer_pool_load_at_startup  = ON
innodb_buffer_pool_dump_at_shutdown = ON
innodb_data_file_path          = ibdata1:1024M:autoextend
innodb_fast_shutdown           = 1
innodb_file_format             = Barracuda
innodb_file_format_max         = Barracuda
innodb_file_per_table          = 1
innodb_force_recovery          = 0
innodb_flush_log_at_trx_commit = 1
innodb_flush_method            = O_DIRECT
innodb_lock_wait_timeout       = 50
innodb_log_buffer_size         = 8M
innodb_log_file_size           = 1024M
innodb_log_files_in_group      = 4
innodb_open_files              = 10000
innodb_purge_threads           = 4
innodb_read_io_threads         = 8
innodb_write_io_threads        = 8
innodb_sync_spin_loops         = 30
innodb_thread_concurrency      = 24
innodb_print_all_deadlocks     = 1
innodb_io_capacity             = 2000
# LOGGING #
general_log                    = 0
general_log_file               = /mydata/3306/log/mysql-general.log
log_error                      = /mydata/3306/log/mysql-error.log
log_queries_not_using_indexes  = 0
long_query_time                = 1
slow_query_log                 = 1
slow_query_log_file            = /mydata/3306/log/mysql-slow.log
# GTID
enforce_gtid_consistency       = ON
gtid_mode                      = ON
binlog_gtid_simple_recovery    = TRUE
# SEMI-SYNC
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 = 3000
rpl_semi_sync_master_trace_level = 32
rpl_semi_sync_slave_trace_level = 32
rpl_semi_sync_master_wait_no_slave = ON
##parallel 配置文件参数 ##
slave_rows_search_algorithms            = 'INDEX_SCAN,HASH_SCAN'
binlog_group_commit_sync_delay          = 500
binlog_group_commit_sync_no_delay_count = 13
slave_parallel_type                     = LOGICAL_CLOCK
slave_parallel_workers                  = 40
slave_preserve_commit_order             = 1
binlog_transaction_dependency_tracking  = writeset
transaction_write_set_extraction        = XXHASH64
slave_checkpoint_period                 = 2
binlog_checksum                         = CRC32
log_slave_updates                       = ON
master_info_repository                  = TABLE
relay_log_info_repository               = TABLE
relay_log_recovery                      = 1
EOF

将配置文件链接到 etc 下

ln -s /mydata/3306/etc/my.cnf  /etc/my3306.cnf

创建error文件

touch /mydata/3306/log/mysql-error.log

授权mysql数据目录

chown -R mysql:mysql /mydata/
chmod 700 /mydata/

初始化MySQL

mysqld  --initialize-insecure  --user=mysql --basedir=/mysql/mysql57 --datadir=/mydata/3306/data  --innodb_data_file_path=ibdata1:1024M:autoextend

配置system管理

cat  >/usr/lib/systemd/system/mysqld3306.service<<'EOF'
[Unit]
Description=MySQL 3306  Server
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/mysql/mysql57/bin/mysqld --defaults-file=/etc/my3306.cnf
LimitNOFILE = 65536
LimitNPROC = 65535
# 重启条件
Restart=on-failure
# 退出码为1不重启,即正常shutdown
RestartPreventExitStatus=1
# 重启条件满足后等多久自动重启(秒)
ReStartSec=10
# 五分钟内只能重启两次,第三次不重启了
StartLimitInterval=300
# 五分钟内只能重启两次,第三次不重启了
StartLimitBurst=2
# 服务启动的超时时间,单位秒
TimeoutStartSec=30
# 服务关闭的超时时间,单位秒
TimeoutStopSec=30
EOF

生效

systemctl daemon-reload

启动实例

systemctl start mysqld3306

重置启动次数

systemctl reset-failed mysqld3306.service

查看状态

systemctl status  mysqld3306

设置便捷登录

cat  >/usr/local/bin/3306_mysql_login.sh<<'EOF'
mysql -A -S /mydata/3306/socket/mysql.sock -p
EOF

授权

chmod 700 /usr/local/bin/3306_mysql_login.sh

修改密码

alter user root@localhost identified by '123456';
flush  privileges;

##########################END###########################


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
Ubuntu 关系型数据库 MySQL
MySQL源码编译安装
本文详细介绍了MySQL 8.0及8.4版本的源码编译安装全过程,涵盖用户创建、依赖安装、cmake配置、编译优化等步骤,并提供支持多Linux发行版的一键安装脚本,适用于定制化数据库部署需求。
258 4
MySQL源码编译安装
|
2月前
|
Ubuntu 关系型数据库 MySQL
MySQL二进制包安装
本文详细介绍了在多种Linux系统上通过二进制包安装MySQL 8.0和8.4版本的完整过程,涵盖用户创建、glibc版本匹配、程序解压、环境变量配置、初始化数据库及服务启动等步骤,并提供支持多发行版的一键安装脚本,助力高效部署MySQL环境。
249 4
MySQL二进制包安装
|
2月前
|
安全 关系型数据库 MySQL
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
本文详细介绍在openSUSE系统上通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,包括下载地址、RPM包解压、GPG密钥导入、使用rpm或zypper命令安装及服务启动验证,涵盖初始密码获取与安全修改方法,适用于无网络环境下的MySQL部署。
362 3
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
|
2月前
|
关系型数据库 MySQL Linux
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
本文介绍了在openSUSE系统上通过SUSE资源库安装MySQL 8.0和8.4版本的完整步骤,包括配置国内镜像源、安装MySQL服务、启动并验证运行状态,以及修改初始密码等操作,适用于希望在SUSE系列系统中快速部署MySQL的用户。
192 3
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
357 5
|
2月前
|
Ubuntu 关系型数据库 MySQL
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
本文详细介绍了在Ubuntu 24.04、22.04、20.04及Debian 12系统上,通过离线DEB包安装MySQL 8.0和8.4版本的完整步骤。涵盖下载地址、依赖处理、dpkg安装顺序、配置方法及服务启动验证,确保用户可顺利部署MySQL数据库。
764 0
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
|
2月前
|
运维 Ubuntu 关系型数据库
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
本文介绍了在Debian系列系统(如Ubuntu、Debian 11/12)中通过APT仓库安装MySQL 8.0和8.4版本的完整步骤,涵盖添加官方源、配置国内镜像、安装服务及初始化设置,并验证运行状态,适用于各类Linux运维场景。
678 0
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
|
2月前
|
Oracle 关系型数据库 MySQL
MySQL包安装 -- RHEL系列(离线RPM包安装MySQL)
本文详细介绍在Rocky、CentOS、AlmaLinux、openEuler等主流Linux系统上,通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,涵盖下载、依赖处理、rpm/yum安装、服务启动、密码设置等关键环节,适用于多种企业级环境部署需求。
640 0
MySQL包安装 -- RHEL系列(离线RPM包安装MySQL)
|
2月前
|
存储 关系型数据库 MySQL
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
MySQL是一款开源关系型数据库,高性能、易用、跨平台,支持多种存储引擎,广泛应用于Web开发、企业级应用等领域。本教程介绍其特点、架构及在主流Linux系统中的安装配置方法。
523 0
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
140 3

推荐镜像

更多