编译安装 MySQL 数据库

该文详细介绍了在CentOS7.6系统上安装MySQL5.7.40的步骤,包括系统初始化、下载安装包、解压安装、设置用户与数据目录、配置环境变量、初始化数据库、配置MySQL配置文件以及启动和设置开机自启MySQL服务的过程。
摘要由CSDN通过智能技术生成

前置准备

系统版本:CentOS 7.6
服务器资源:2C4G
MySQL 版本:5.7.40
下载 MySQL 安装包地址:MySQL官方下载地址 or MySQL 5.7.40安装包下载链接

安装部署

一、系统初始化

  • 开放防火墙端口,关闭 SELINUX
#开放防火墙端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload    
#关闭 selinux
sed -i "/SELINUX/s/enforcing/disabled/" /etc/selinux/config
setenforce 0
  • 安装调试软件
yum -y install vim telnet net-tools unzip wget
  • 配置主机名
hostnamectl set-hostname mysql && bash

二、安装 MySQL

  • 下载安装包
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.40-el7-x86_64.tar.gz
  • 安装部署
#解压安装包
mkdir -p /app/
tar -xvf mysql-5.7.40-el7-x86_64.tar.gz -C /app/
ln -s /app/mysql-5.7.40-el7-x86_64/ /app/mysql
cd /app/mysql/
# 创建MySQL用户
useradd -r -s /sbin/nologin mysql
# 创建数据目录
mkdir /data/mysql -p 
#目录授权
chown mysql.mysql -R /data/mysql
chown mysql.mysql -R /app/mysql
# 配置环境变量	
echo "export PATH=/app/mysql/bin:$PATH" >> /etc/profile 
source /etc/profile 
# 初始化数据库,MySQL 初始化无密码,直接不输入密码登录。
mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/mysql
  • 配置 MySQL 配置文件
cat > /etc/my.cnf << EOF
[mysqld]
basedir                 = /app/mysql
datadir                 = /data/mysql
pid-file                = /tmp/mysql.pid
socket                  = /tmp/mysql.sock
port                    = 3306
user                    = mysql

log_error               = /data/mysql/mysql-error.log
slow-query-log-file     = /data/mysql/mysql-slow.log
log_bin                 = /data/mysql/mysql-master-bin.log
relay-log               = /data/mysql/mysql-relay-bin

server-id               = 1
innodb_buffer_pool_size = 1024M
innodb_log_buffer_size  = 16M
key_buffer_size         = 128M
query_cache_size        = 256M
tmp_table_size          = 128M

binlog_format          = mixed
skip-external-locking
skip-name-resolve
character-set-server    = utf8
collation-server        = utf8_bin
max_allowed_packet      = 16M
thread_cache_size       = 256
table_open_cache        = 4096
back_log                = 1024
max_connect_errors      = 100000

interactive_timeout  =  1800
wait_timeout  = 1800

max_connections         = 500
sort_buffer_size        = 16M
join_buffer_size        = 4M
read_buffer_size        = 4M
read_rnd_buffer_size    = 16M
binlog_cache_size       = 2M
thread_stack            = 192K

max_heap_table_size     = 128M
myisam_sort_buffer_size = 128M
bulk_insert_buffer_size = 256M
open_files_limit        = 65535
query_cache_limit       = 2M
slow-query-log
long_query_time         = 2

expire_logs_days        = 3
max_binlog_size         = 1000M
slave_parallel_workers  = 4
log-slave-updates

binlog_ignore_db        = mysql
replicate_wild_ignore_table = mysql.%
sync_binlog = 1

innodb_file_per_table   = 1
innodb_flush_method     = O_DIRECT
innodb_buffer_pool_instances = 4
innodb_log_file_size    = 512M
innodb_log_files_in_group = 3
innodb_open_files       = 4000
innodb_read_io_threads  = 8
innodb_write_io_threads = 8
innodb_thread_concurrency = 8
innodb_io_capacity      = 2000
innodb_io_capacity_max  = 6000
innodb_lru_scan_depth   = 2000
innodb_max_dirty_pages_pct = 85
innodb_flush_log_at_trx_commit = 2
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqldump]
quick
quote-names
max_allowed_packet      = 16M

[client]
default-character-set   = utf8

[mysql]
default-character-set   = utf8

[isamchk]
key_buffer              = 128M
sort_buffer_size        = 4M
read_buffer             = 2M
write_buffer            = 2M

[myisamchk]
key_buffer              = 128M
sort_buffer_size        = 4M
read_buffer             = 2M
write_buffer            = 2M
EOF
  • 配置服务管理
cat > /etc/systemd/system/mysqld.service << EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
systemctl daemon-reload

启动 MySQL 服务

  • 启动 MySQL 服务,配置开机自启
systemctl start mysqld
systemctl status mysqld
systemctl enable mysqld
  • 登陆 MySQL
#mysql编译无密码,直接回车登录
[root@mysql ~]# mysql -uroot -p
Enter password:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值