下载地址MySQL :: Download MySQL Community Server自己使用远程传输工具上传可以将包传至家目录也可以直接wget创建用户组目录mkdir -p /mysql/app[rootRockymysql ~]# cd /mysql/app/[rootRockymysql app]# mv ~/mysql-8.4.10-linux-glibc2.28-x86_64.tar.xz .groupadd mysqluseradd -r -g mysql -s /sbin/nologin mysql-r 选项表示创建一个系统用户mkdir -p /mysql/data/3306/datamkdir -p /mysql/log/3306/binlogmkdir -p /mysql/log/3306/relaylogmkdir -p /mysql/backup/backup-dbmkdir -p /mysql/backup/backup-tmpmkdir -p /mysql/backup/backup-binlogchown -R mysql.mysql /mysql解压并创建软链接[rootRockymysql app]# tar -xf mysql-8.4.10-linux-glibc2.28-x86_64.tar.xz[rootRockymysql app]# ln -s mysql-8.4.10-linux-glibc2.28-x86_64 mysql设置环境变量[rootRockymysql app]# vim ~/.bash_profile[rootRockymysql app]# cat ~/.bash_profile# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then. ~/.bashrcfi# User specific environment and startup programsPATH$PATH:/mysql/app/mysql/bin:$HOME/binexport PATHexport LANGen_US[rootRockymysql app]# source ~/.bash_profile[rootRockymysql app]# which mysqld/mysql/app/mysql/bin/mysqld配置参数文件[rootRockymysql app]# cd /mysql/data/3306/[rootRockymysql 3306]# vim my.cnf[rootRockymysql 3306]# cat my.cnf[client]port3306socket /mysql/data/3306/mysql.sock[mysql]no-beepprompt\umysqldb \R:\m:\s [\d] #no-auto-rehashauto-rehashdefault-character-setutf8[mysqld]########basic settings########server-id3306port3306user mysqlbind_address 192.168.57.136 修改自己ipbasedir/mysql/app/mysqldatadir/mysql/data/3306/datasocket /mysql/data/3306/mysql.sockpid-file /mysql/data/3306/mysql.pidcharacter-set-serverutf8autocommit 0#skip_name_resolve 1max_connections 800max_connect_errors 1000default-storage-engineINNODBtransaction_isolation READ-COMMITTEDexplicit_defaults_for_timestamp 1sort_buffer_size 32Mjoin_buffer_size 128Mtmp_table_size 72Mmax_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_USERinteractive_timeout 1800wait_timeout 1800read_buffer_size 16Mread_rnd_buffer_size 32M#query_cache_type 1#query_cache_size1Mtable_open_cache2000thread_cache_size768myisam_max_sort_file_size10Gmyisam_sort_buffer_size135Mkey_buffer_size32Mread_buffer_size8Mread_rnd_buffer_size4Mback_log1024#flush_time0open_files_limit65536table_definition_cache1400#binlog_row_event_max_size8K#sync_master_info10000#sync_relay_log10000#sync_relay_log_info10000########log settings########log-outputFILEgeneral_log 0general_log_file/mysql/log/3306/general.errslow_query_log ONslow_query_log_file/mysql/log/3306/query.errlong_query_time10log-error/mysql/log/3306/error.errlog_queries_not_using_indexes 1log_slow_admin_statements 1log_slow_slave_statements 1log_throttle_queries_not_using_indexes 10#expire_logs_days 90#binlog_expire_logs_seconds2592000binlog_expire_logs_seconds604800min_examined_row_limit 100log_bin/mysql/log/3306/binlog/binloglog_bin_index/mysql/log/3306/binlog/binlog.indexbinlog_formatROWbinlog_rows_query_log_eventson########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 4000innodb_io_capacity_max 8000innodb_buffer_pool_size 500Minnodb_buffer_pool_instances 8innodb_buffer_pool_load_at_startup 1innodb_buffer_pool_dump_at_shutdown 1innodb_lru_scan_depth 2000innodb_lock_wait_timeout 5#innodb_flush_method O_DIRECTinnodb_log_file_size 200Minnodb_log_files_in_group 2innodb_log_buffer_size 16M#innodb_undo_logs 128innodb_undo_tablespaces 3innodb_undo_log_truncate 1innodb_max_undo_log_size 2Ginnodb_flush_neighbors 1innodb_purge_threads 4#innodb_large_prefix 1innodb_thread_concurrency 64innodb_print_all_deadlocks 1innodb_strict_mode 1innodb_sort_buffer_size 64Minnodb_flush_log_at_trx_commit1innodb_autoextend_increment64innodb_concurrency_tickets5000innodb_old_blocks_time1000innodb_open_files65536innodb_stats_on_metadata0innodb_file_per_table1innodb_checksum_algorithm0innodb_data_file_pathibdata1:200M;ibdata2:200M;ibdata3:200M:autoextend:max:5Ginnodb_temp_data_file_path ibtmp1:200M:autoextend:max:20Ginnodb_buffer_pool_dump_pct 40innodb_page_cleaners 4innodb_purge_rseg_truncate_frequency 128binlog_gtid_simple_recovery1log_timestampssystem初始化数据库[rootRockymysql 3306]# /mysql/app/mysql/bin/mysqld --defaults-file/mysql/data/3306/my.cnf --initialize --usermysql --basedir/mysql/app/mysql --datadir/mysql/data/3306/data过滤出默认密码[rootRockymysql 3306]# grep temporary password /mysql/log/3306/error.err2026-06-12T10:41:42.49876408:00 6 [Note] [MY-010454] [Server] A temporary password is generated for rootlocalhost: PtxPBEjLk9p如果初始化报错提前把error.err文件touch出来并授权清空data目录内容重新初始化修改密码临时用命令启动数据库[rootRockymysql 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 登录[rootRockymysql 3306]# mysql -uroot -p -S /mysql/data/3306/mysql.sockEnter password:当然这里注意登录的时候用了-S来手工指定sock文件路径如果不想手工指定可以手工创建一个软链接这样就可以用临时密码直接登录。因为mysql默认会去/tmp下找这个文件。[rootRockymysql 3306]# ln -s /mysql/data/3306/mysql.sock /tmp/mysql.sock[rootRockymysql 3306]# mysql -uroot -pEnter password:mysql alter user rootlocalhost identified by Redhat; 修改密码配置启动服务采用官方提供的脚本[rootRockymysql 3306]# cd /mysql/app/mysql/support-files/[rootRockymysql support-files]# lsmysqld_multi.server mysql-log-rotate mysql.server[rootRockymysql support-files]# cp mysql.server mysql46 basedir/mysql/app/mysql47 datadir/mysql/data/3306/data63 mysqld_pid_file_path/mysql/data/3306/mysql.pid65 then66 basedir/mysql/app/mysql67 bindir/mysql/app/mysql/bin69 then70 datadir/mysql/data/3306/data71 fi72 sbindir/mysql/app/mysql/bin73 libexecdir/mysql/app/mysql/bin105 PATH/sbin:/usr/sbin:/bin:/mysql/app/mysql/bin:/usr/bin:$basedir/bin207 conf/mysql/data/3306/my.cnf233 extra_args234 if test -r /mysql/data/3306/my.cnf235 then236 extra_args-e/mysql/data/3306/my.cnf237 fi266 $bindir/mysqld_safe--defaults-file/mysql/data/3306/my.cnf--datadir$datadir --pid-file$mysqld_pid_file_path $other_args /dev/null [rootRockymysql support-files]# ./mysql statusSUCCESS! MySQL running (30380)[rootRockymysql support-files]# ./mysql stopShutting down MySQL..2026-06-12T03:20:16.608363Z mysqld_safe mysqld from pid file /mysql/data/3306/mysql.pid endedSUCCESS![rootRockymysql support-files]# ./mysql startStarting MySQL.. SUCCESS!测试一遍systemd方式配置启动服务[rootRockymysql support-files]# cd /usr/lib/systemd/system[rootRockymysql system]# vim mysqld.service[rootRockymysql system]# cat mysqld.service[Unit]DescriptionMySQL ServerDocumentationman:mysqld(8)Documentationhttp://dev.mysql.com/doc/refman/en/using-systemd.htmlAfternetwork.targetAftersyslog.target[Install]WantedBymulti-user.target[Service]UsermysqlGroupmysqlTypeforkingPIDFile/mysql/data/3306/mysql.pidTimeoutSec0# Execute pre and post scripts as rootPermissionsStartOnlytrue# Start main serviceExecStart/mysql/app/mysql/support-files/mysql start# Use this to switch malloc implementationEnvironmentFile-/etc/sysconfig/mysql# Sets open_files_limitLimitNOFILE 65536LimitNPROC 65536Restarton-failureRestartPreventExitStatus1PrivateTmpfalse[rootRockymysql system]# systemctl daemon-reload[rootRockymysql system]# systemctl start mysqld[rootRockymysql system]# systemctl enable mysqld如果觉得该文章对你有帮助或者收获的话请点个赞或者收藏一下支持下作者希望能够给大家带来更多有用的内容创作。当然该文章如果还有不足的地方大家也可以发表自己的意见或建议可以一起探讨学习。