MySQL5.7.22 二进制安装教程
首先上传安装包
mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
目录规划
datadir(数据文件目录): /mysqldata/data
basedir(软件安装目录): /var/lib/mysql
binlog目录(存放binlog日志): /mysqldata/binlog
系统配置
关闭SELINUX
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
关闭服务器防火墙
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
建立组和用户
/usr/sbin/groupadd -g 2000 mysql
/usr/sbin/useradd -g mysql -u 2000 mysql
配置hosts文件
vim /etc/hosts
192.168.1.218 mysql_a
配置Limits
cat>>/etc/security/limits.conf<<EOF
mysql soft nofile 4096
mysql hard nofile 65536
mysql soft nproc 4095
mysql hard nproc 16384
mysql soft stack 10240
mysql hard stack 32768
EOF
修改进程数限制
cat>>/etc/security/limits.d/90-nproc.conf<<EOF
mysql soft nproc 4095
mysql hard nproc 16384
EOF
系统内核参数调整
vim /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 965317
kernel.shmmax = 3163150745
fs.aio-max-nr = 1048576
vm.swappiness= 0
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 1024 65500
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_max_tw_buckets = 8000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 10
kernel.shmall 的值可以通过如下命令计算:
echo "`cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'` / (`getconf PAGESIZE` / 1024)" | bc
kernel.shmmax 的值可以通过如下命令计算:
echo "`cat /proc/meminfo | grep "MemTotal" | awk '{print $2}'` * 1024 * 0.8" | bc | sed 's#\..*$##'
目录创建
参考上面目录规划创建目录
mkdir -p /mysqldata/data
mkdir -p /mysqldata/binlog/
mkdir -p /mysqldata/relay-bin
chown -R mysql:mysql /mysqldata
chown -R mysql:mysql /mysqldata/binlog/
chown -R mysql:mysql /mysqldata/relay-bin
安装MySQL 5.7.22
安装与卸载依赖包
yum remove -y mariadb-libs-*
yum remove -y mysql-libs-*
yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel
解压二进制包
tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /var/lib/
cd /var/lib/
mv mysql-5.7.22-linux-glibc2.12-x86_64/ mysql/
chown -R mysql:mysql /var/lib/mysql
建立参数文件
vim /etc/my.cnf
[mysql]
port = 3306
socket = /mysqldata/data/mysql.sock
default_character_set = utf8mb4
[mysqld]
user = mysql
port = 3306
default_storage_engine = InnoDB
character_set_server = utf8mb4
collation_server = utf8mb4_unicode_ci
explicit_defaults_for_timestamp= true
transaction_isolation = READ-COMMITTED
socket = /mysqldata/data/mysql.sock
pid_file = /mysqldata/data/mysql.pid
wait_timeout = 31536000
interactive_timeout = 31536000
datadir = /mysqldata/data
basedir = /var/lib/mysql
log_bin = /mysqldata/binlog/mysql-bin
expire_logs_days = 7
sync_binlog = 1
server_id = 1
relay_log = /mysqldata/relay-bin
innodb_log_group_home_dir = /mysqldata/data
innodb_log_file_size = 128M
innodb_buffer_pool_size = 2G
innodb_buffer_pool_instances = 4
innodb_undo_directory = /mysqldata/data
innodb_undo_tablespaces = 2
log_error = /mysqldata/data/mysql-error.log
gtid_mode = on
enforce_gtid_consistency = 1
初始化数据库
/var/lib/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/mysqldata/data --initialize
原始密码会在err_log中
tail -100 /mysqldata/data/mysql-error.log
配置环境变量
vim /etc/profile
export PATH=/var/lib/mysql/bin:$PATH
source /etc/profile
启动数据库
/var/lib/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
登录数据库(输入上面日志中的密码)
mysql -uroot -p
修改密码
set password for root@localhost = password('mysql');
flush privileges;
配置Service脚本
su - root
cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
编辑脚本,修改下面3个地方。
su - root
vi /etc/init.d/mysqld
basedir=/var/lib/mysql
datadir=/mysqldata
mysqld_pid_file_path=/mysqldata/data/mysql.pid
测试服务
service mysqld stop
service mysqld start
配置开机自启动(可选)
chkconfig mysqld on
安装完成
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?