news 2026/7/5 14:25:03

MySQL 8.4.10安装(二进制)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL 8.4.10安装(二进制)

下载地址MySQL :: Download MySQL Community Server

自己使用远程传输工具上传

可以将包传至家目录,也可以直接wget

创建用户组目录

mkdir -p /mysql/app

[root@Rockymysql ~]# cd /mysql/app/
[root@Rockymysql app]# mv ~/mysql-8.4.10-linux-glibc2.28-x86_64.tar.xz .

groupadd mysql

useradd -r -g mysql -s /sbin/nologin mysql-r 选项表示创建一个系统用户

mkdir -p /mysql/data/3306/data

mkdir -p /mysql/log/3306/binlog

mkdir -p /mysql/log/3306/relaylog

mkdir -p /mysql/backup/backup-db

mkdir -p /mysql/backup/backup-tmp

mkdir -p /mysql/backup/backup-binlog

chown -R mysql.mysql /mysql

解压并创建软链接


[root@Rockymysql app]# tar -xf mysql-8.4.10-linux-glibc2.28-x86_64.tar.xz
[root@Rockymysql app]# ln -s mysql-8.4.10-linux-glibc2.28-x86_64 mysql

设置环境变量

[root@Rockymysql app]# vim ~/.bash_profile

[root@Rockymysql app]# cat ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs
PATH=$PATH:/mysql/app/mysql/bin:$HOME/bin
export PATH
export LANG=en_US

[root@Rockymysql app]# source ~/.bash_profile
[root@Rockymysql app]# which mysqld
/mysql/app/mysql/bin/mysqld

配置参数文件

[root@Rockymysql app]# cd /mysql/data/3306/

[root@Rockymysql 3306]# vim my.cnf
[root@Rockymysql 3306]# cat my.cnf
[client]
port=3306
socket = /mysql/data/3306/mysql.sock

[mysql]
no-beep
prompt="\u@mysqldb \R:\m:\s [\d]> "
#no-auto-rehash
auto-rehash
default-character-set=utf8

[mysqld]
########basic settings########
server-id=3306
port=3306
user = mysql
bind_address= 192.168.57.136 修改自己ip
basedir=/mysql/app/mysql
datadir=/mysql/data/3306/data
socket = /mysql/data/3306/mysql.sock
pid-file = /mysql/data/3306/mysql.pid
character-set-server=utf8
autocommit = 0
#skip_name_resolve = 1
max_connections = 800
max_connect_errors = 1000
default-storage-engine=INNODB
transaction_isolation = READ-COMMITTED
explicit_defaults_for_timestamp = 1
sort_buffer_size = 32M
join_buffer_size = 128M
tmp_table_size = 72M
max_allowed_packet = 16M
#sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
interactive_timeout = 1800
wait_timeout = 1800
read_buffer_size = 16M
read_rnd_buffer_size = 32M

#query_cache_type = 1
#query_cache_size=1M
table_open_cache=2000
thread_cache_size=768
myisam_max_sort_file_size=10G
myisam_sort_buffer_size=135M
key_buffer_size=32M
read_buffer_size=8M
read_rnd_buffer_size=4M

back_log=1024
#flush_time=0
open_files_limit=65536
table_definition_cache=1400
#binlog_row_event_max_size=8K
#sync_master_info=10000
#sync_relay_log=10000
#sync_relay_log_info=10000

########log settings########
log-output=FILE
general_log = 0
general_log_file=/mysql/log/3306/general.err
slow_query_log = ON
slow_query_log_file=/mysql/log/3306/query.err
long_query_time=10
log-error=/mysql/log/3306/error.err

log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
log_slow_slave_statements = 1
log_throttle_queries_not_using_indexes = 10
#expire_logs_days = 90
#binlog_expire_logs_seconds=2592000
binlog_expire_logs_seconds=604800
min_examined_row_limit = 100

log_bin=/mysql/log/3306/binlog/binlog
log_bin_index=/mysql/log/3306/binlog/binlog.index
binlog_format='ROW'
binlog_rows_query_log_events=on

########replication settings########
#master_info_repository = TABLE
#relay_log_info_repository = TABLE
#log_bin = bin.log
#sync_binlog = 1
#gtid_mode = on
#enforce_gtid_consistency = 1
#log_slave_updates
#binlog_format = row
#relay_log = relay.log
#relay_log_recovery = 1
#binlog_gtid_simple_recovery = 1
#slave_skip_errors = ddl_exist_errors

########innodb settings########
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_buffer_pool_size = 500M
innodb_buffer_pool_instances = 8
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_lru_scan_depth = 2000
innodb_lock_wait_timeout = 5
#innodb_flush_method = O_DIRECT

innodb_log_file_size = 200M
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16M

#innodb_undo_logs = 128
innodb_undo_tablespaces = 3
innodb_undo_log_truncate = 1
innodb_max_undo_log_size = 2G

innodb_flush_neighbors = 1
innodb_purge_threads = 4
#innodb_large_prefix = 1
innodb_thread_concurrency = 64
innodb_print_all_deadlocks = 1
innodb_strict_mode = 1
innodb_sort_buffer_size = 64M
innodb_flush_log_at_trx_commit=1
innodb_autoextend_increment=64
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=65536
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
innodb_data_file_path=ibdata1:200M;ibdata2:200M;ibdata3:200M:autoextend:max:5G
innodb_temp_data_file_path = ibtmp1:200M:autoextend:max:20G

innodb_buffer_pool_dump_pct = 40
innodb_page_cleaners = 4
innodb_purge_rseg_truncate_frequency = 128
binlog_gtid_simple_recovery=1
log_timestamps=system

初始化数据库

[root@Rockymysql 3306]# /mysql/app/mysql/bin/mysqld --defaults-file=/mysql/data/3306/my.cnf --initialize --user=mysql --basedir=/mysql/app/mysql --datadir=/mysql/data/3306/data

过滤出默认密码

[root@Rockymysql 3306]# grep 'temporary password' /mysql/log/3306/error.err
2026-06-12T10:41:42.498764+08:00 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: PtxPBEjLk9&p

如果初始化报错,提前把error.err文件touch出来并授权,清空data目录内容,重新初始化

修改密码

临时用命令启动数据库

[root@Rockymysql 3306]# /mysql/app/mysql/bin/mysqld_safe --defaults-file=/mysql/data/3306/my.cnf --datadir=/mysql/data/3306/data --pid-file=/mysql/data/3306/mysql.pid &

登录

[root@Rockymysql 3306]# mysql -uroot -p -S /mysql/data/3306/mysql.sock
Enter password:

当然,这里注意登录的时候,用了-S来手工指定sock文件路径,如果不想手工指定,可以手工创建一个软链接,这样就可以用临时密码直接登录。因为mysql默认会去/tmp下找这个文件。

[root@Rockymysql 3306]# ln -s /mysql/data/3306/mysql.sock /tmp/mysql.sock

[root@Rockymysql 3306]# mysql -uroot -p
Enter password:
mysql> alter user root@localhost identified by 'Redhat'; 修改密码

配置启动服务

采用官方提供的脚本

[root@Rockymysql 3306]# cd /mysql/app/mysql/support-files/
[root@Rockymysql support-files]# ls
mysqld_multi.server mysql-log-rotate mysql.server
[root@Rockymysql support-files]# cp mysql.server mysql

46 basedir=/mysql/app/mysql

47 datadir=/mysql/data/3306/data

63 mysqld_pid_file_path=/mysql/data/3306/mysql.pid

65 then

66 basedir=/mysql/app/mysql

67 bindir=/mysql/app/mysql/bin

69 then

70 datadir=/mysql/data/3306/data

71 fi

72 sbindir=/mysql/app/mysql/bin

73 libexecdir=/mysql/app/mysql/bin

105 PATH="/sbin:/usr/sbin:/bin:/mysql/app/mysql/bin:/usr/bin:$basedir/bin"

207 conf=/mysql/data/3306/my.cnf

233 extra_args=""

234 if test -r "/mysql/data/3306/my.cnf"

235 then

236 extra_args="-e/mysql/data/3306/my.cnf"

237 fi

266 $bindir/mysqld_safe--defaults-file=/mysql/data/3306/my.cnf--datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &

[root@Rockymysql support-files]# ./mysql status
SUCCESS! MySQL running (30380)
[root@Rockymysql support-files]# ./mysql stop
Shutting down MySQL..2026-06-12T03:20:16.608363Z mysqld_safe mysqld from pid file /mysql/data/3306/mysql.pid ended
SUCCESS!
[root@Rockymysql support-files]# ./mysql start
Starting MySQL.. SUCCESS!
测试一遍

systemd方式配置启动服务

[root@Rockymysql support-files]# cd /usr/lib/systemd/system

[root@Rockymysql system]# vim mysqld.service
[root@Rockymysql system]# cat mysqld.service
[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
Type=forking
PIDFile=/mysql/data/3306/mysql.pid
TimeoutSec=0

# Execute pre and post scripts as root
PermissionsStartOnly=true

# Start main service
ExecStart=/mysql/app/mysql/support-files/mysql start

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 65536
LimitNPROC = 65536

Restart=on-failure
RestartPreventExitStatus=1

PrivateTmp=false

[root@Rockymysql system]# systemctl daemon-reload
[root@Rockymysql system]# systemctl start mysqld
[root@Rockymysql system]# systemctl enable mysqld

如果觉得该文章对你有帮助或者收获的话,请点个赞或者收藏一下支持下作者,希望能够给大家带来更多有用的内容创作。当然该文章如果还有不足的地方,大家也可以发表自己的意见或建议,可以一起探讨学习。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 14:24:52

HarmonyOS律愈实战08:BreathGuideAnimator实现4-7-8呼吸引导

ArkTS 动画控制实战:把 4-7-8 呼吸训练从 UI 中拆出去1. 为什么要拆动画控制器 呼吸训练看起来只是几个文字变化:吸气、屏息、呼气。但如果直接在页面里写一堆 setTimeout(),后期会遇到问题: 页面切换时定时器不容易清理。多次启动…

作者头像 李华
网站建设 2026/7/5 14:20:36

芝士算法(前缀和 1.0)

目录 一维数组前缀和 二维数组前缀和 寻找数组的中心下标 除了自身以外数组的乘积 一维数组前缀和 一维数组前缀和 public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextInt()) { // 注意 w…

作者头像 李华
网站建设 2026/7/5 14:19:50

收藏!小白程序员必看:Hermes Agent 双 Loop 源码深度解析

Hermes Agent 源码中存在两套 Agent Loop:AIAgent 和 HermesAgentLoop。AIAgent 面向用户交互,处理流式输出、重试、中断等复杂交互逻辑;HermesAgentLoop 面向 RL 训练,关注异步、并发和训练数据生成。两者拆分是为了适应不同场景…

作者头像 李华
网站建设 2026/7/5 14:14:45

ORB-SLAM3 mFeatVec

mFeatVec(Feature Vector,特征向量)的计算原理,简单来说就是:为当前帧图像中的每个特征点,找到它在视觉词汇树中对应的中间节点(叶子节点world ID 上溯4层的节点ID),并将…

作者头像 李华
网站建设 2026/7/5 14:13:05

Java面向对象课程设计:学生成绩管理系统

一、项目简介 本项目为Java面向对象课程设计,由三人小组协作开发学生成绩管理系统。项目遵循多层分层架构思想,基于MySQL实现数据持久化,依托JDBC完成程序与数据库交互,使用Swing搭建可视化GUI界面。项目全程采用Git协同开发&…

作者头像 李华