centos7安装MySQL8.4手册
目录前言一、首先更新插件并查看当前系统版本二、安装步骤--在线安装1、创建mysql目录2、安装rpm包3、安装 mysql-community-server4、启动MySQL服务5、查看MySQL状态6、设置开机自启动三、查看默认密码四、登录mysql五、修改密码六、开启远程访问1. 修改 MySQL 配置文件2. 重启 MySQL 服务3. 远程访问用户5. 验证远程连接十 离线安装10.1 下载安装包10.2 其他参考mysql8.4编写 /etc/my.cnf并添加配置配置主从前言公司官网系统做等保测评被扫描出来好多潜在的漏洞其中就有mysql8.4的给的建议是升级mysql8。所以就有了这篇文章。一、首先更新插件并查看当前系统版本[rootlocalhost mysql8.4.5]# yum update 已加载插件fastestmirror Loading mirror speeds from cached hostfile 正在解决依赖关系 -- 正在检查事务 --- 软件包 containerd.io.x86_64.0.1.6.28-3.2.el7 将被 升级查看centos7 系统版本[rootlocalhost mysql8.4.5]# cat /etc/centos-releaseCentOS Linux release7.9.2009(Core)[rootlocalhost mysql8.4.5]#二、安装步骤–在线安装1、创建mysql目录[rootlocalhost ~]# cd /usr/local/soft/[rootlocalhost soft]# ll总用量0drwxr-xr-x.9root root1863月1511:52 nginx-1.21[rootlocalhost soft]# mkdir mysql8.4[rootlocalhost soft]# cd mysql8.4/2、安装rpm包[rootlocalhost mysql8.4]# yum install https://repo.mysql.com//mysql84-community-release-el7-1.noarch.rpm3、安装 mysql-community-server[rootlocalhost mysql8.4]# yum install -y mysql-community-server已加载插件fastestmirror Loading mirror speeds from cached hostfile mysql-8.4-lts-community|3.0kB 00:00:00 mysql-connectors-community|2.6kB 00:00:00 mysql-tools-8.4-lts-community|2.6kB 00:00:00(1/3): mysql-tools-8.4-lts-community/x86_64/primary_db|15kB 00:00:01(2/3): mysql-connectors-community/x86_64/primary_db|126kB 00:00:01(3/3): mysql-8.4-lts-community/x86_64/primary_db|50kB 00:00:02 正在解决依赖关系4、启动MySQL服务启动 mysql,的时候没有出现任何提示说明启动成功了[rootlocalhost mysql8.4]# systemctl start mysqld [rootlocalhost mysql8.4]# systemctl status mysql Unit mysql.service could not be found. [rootlocalhost mysql8.4]# systemctl status mysqld ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since 五 2025-07-18 20:36:17 CST; 12s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 27593 ExecStartPre/usr/bin/mysqld_pre_systemd (codeexited, status0/SUCCESS) Main PID: 28434 (mysqld) Status: Server is operational Tasks: 36 Memory: 435.4M CGroup: /system.slice/mysqld.service └─28434 /usr/sbin/mysqld 7月 18 20:36:11 localhost.localdomain systemd[1]: Starting MySQL Server... 7月 18 20:36:17 localhost.localdomain systemd[1]: Started MySQL Server. [rootlocalhost mysql8.4]# systemctl enable mysqld5、查看MySQL状态[rootlocalhost mysql8.4]# systemctl status mysql6、设置开机自启动[rootlocalhost mysql8.4]# systemctl enable mysqld三、查看默认密码[rootlocalhost mysql8.4]# cat /var/log/mysqld.log 2025-07-18T12:36:12.101245Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start. 2025-07-18T12:36:12.104145Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.4.5) initializing of server in progress as process 28041 2025-07-18T12:36:12.119853Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2025-07-18T12:36:12.551607Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2025-07-18T12:36:13.996497Z 6 [Note] [MY-010454] [Server] A temporary password is generated for rootlocalhost: oLoblw2j!0四、登录mysql[rootlocalhost mysql8.4]# mysql -uroot -p#### 提示输入密码的时候输入上图的密码即可。五、修改密码mysql ALTER USER rootlocalhost IDENTIFIED BY ltx.xxxx.xxm;修改密码报错 参考mysql ALTER USER rootlocalhost IDENTIFIED BY ltx.xxxx.xxM;参考步骤之后记得改回来-- 设置最小密码长度为4 SET GLOBAL validate_password.length4; -- 设置密码策略为LOW SET GLOBAL validate_password.policy0; -- 修改密码为简单密码 ALTER USER rootlocalhost IDENTIFIED BY 123456; -- 为了确保所有会话都能使用新密码刷新权限 FLUSH PRIVILEGES;六、开启远程访问要在 MySQL 8.4 中开启远程访问可以按照以下步骤进行配置1. 修改 MySQL 配置文件首先找到并编辑 MySQL 的配置文件 my.cnf 。配置文件的位置取决于你的操作系统和 MySQL 的安装方式在 Linux 上通常位于 /etc/mysql/my.cnf 或 /etc/my.cnf。在 Windows 上通常位于 MySQL 安装目录下的 my.ini 文件。[rootlocalhost mysql8.4]# vim /etc/my.cnf [rootlocalhost mysql8.4]#打开配置文件找到 [mysqld] 部分确保有以下配置[mysqld]bind-address0.0.0.0bind-address 设置为 0.0.0.0 意味着 MySQL 将监听所有网络接口的连接请求。2. 重启 MySQL 服务修改配置文件后重启 MySQL 服务以使更改生效[rootlocalhost mysql8.4]# vim /etc/my.cnf [rootlocalhost mysql8.4]# systemctl restart mysqld3. 远程访问用户3.1 允许root 远程访问use mysql; update user set host% where userroot; flush privileges;mysql select host, user from user;3.2 创建远程访问用户mysql CREATE USER ltxxst% IDENTIFIED BY lt.xxxx.xxt; Query OK, 0 rows affected (0.00 sec) FLUSH PRIVILEGES;创建用户、赋予权限参考5. 验证远程连接十 离线安装10.1 下载安装包mysql 官网https://dev.mysql.com/downloads/mysql/Centos7 支持 xxxx(glibc 2.28) , 请务必下载2.17 版本的选择10.2 其他参考mysql8.4解压安装mysql安装包到/usr/local/soft目录下/usr/local/soft/mysql8.4解压安装mysql安装包到/usr/local/soft目录下tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C /usr/local/soft请执行以下命令解压主程序包tar -xvf mysql-8.0.45-linux-glibc2.28-x86_64.tar.xz修改mysql-5.7.36-linux-glibc2.12-x86_64名称为mysql8.4mv mysql-5.7.36-linux-glibc2.12-x86_64/ mysql8.4更改mysql8.4 目录下所有文件夹所属的用户组、用户以及权限chown -R mysql:mysql /usr/local/soft/mysql8.4 chmod -R 755 /usr/local/soft/mysql8.4进入mysql8.4/bin/目录编译安装并初始化mysql, 务必记住数据库管理员临时密码./mysqld --initialize --usermysql --datadir/data/db/mysql8/data --basedir/usr/local/soft/mysql8.4 --log-error/data/db/mysql8/log/mysql-init.log从错误信息看您当前系统很可能是 CentOS 7的 glibc 版本过低2.17而 MySQL 8.4 的二进制包要求 glibc 2.28 及以上。另外libstdc.so.6 缺少所需的 C ABI 版本这也是因为系统 GCC 版本较旧。下载 MySQL 8.0.45或 8.4的 glibc2.17 版本当前您有 mysql-8.0.45-linux-glibc2.28-x86_64.tar.xz这是针对 glibc 2.28 的不兼容。请从官方下载对应版本cd/usr/local/soft/wgethttps://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.45-linux-glibc2.17-x86_64.tar.xztar-xfmysql-8.0.45-linux-glibc2.17-x86_64.tar.xzmvmysql-8.0.45-linux-glibc2.17-x86_64 mysql8.4# 改名重新初始化注意路径cd/usr/local/soft/mysql8/bin ./mysqld--initialize--usermysql--datadir/data/db/mysql8/data--basedir/usr/local/soft/mysql8.4 --log-error/data/db/mysql8/log/mysql-init.log# 如果失败没有权限读写 mysql-init.log 可以试试./mysqld--initialize--usermysql--datadir/data/db/mysql8/data--basedir/usr/local/soft/mysql8 --log-error/tmp/mysql-init.log应该不会再报 glibc 版本错误。从日志看临时密码是:yqDsf#N35j。注意这个密码以冒号开头可能包含特殊字符直接输入时需小心。ALTER USER rootlocalhost IDENTIFIED BY ltkj1977.COM;use mysql; update user set Host% where Hostlocalhost and Userroot; flush privileges;创建主人复制的用户 ltkjsyncmysql ALTER USER rootlocalhost IDENTIFIED BY ltkj1977.COM; -- 创建用户MySQL 5.7 推荐方式 CREATE USER ltkjsync% IDENTIFIED BY ltkj1977.sync; -- 授予备份所需权限 GRANT SELECT, SHOW VIEW, LOCK TABLES, RELOAD, PROCESS, EVENT, TRIGGER ON *.* TO ltkjsync%; -- 刷新权限 FLUSH PRIVILEGES;编写 /etc/my.cnf并添加配置注意几个文件的权限 最好改为 chown -R mysql:mysql xxx或 chmod 755socket /tmp/mysql.sock/data/db/mysql57/data/data/db/mysql57/log/mysql-slow.log[client] userroot passwordltkj0929.com port 3306 socket /tmp/mysql.sock [mysqld] ## skip-grant-tables ## lower_case_table_names1 port 3306 socket /tmp/mysql.sock datadir/data/db/mysql8/data ## lc-messages-dir/usr/local/soft/mysql8/share/english default_storage_engineInnoDB performance_schema_max_table_instances400 table_definition_cache400 skip-external-locking key_buffer_size64M max_allowed_packet100G table_open_cache256 sort_buffer_size1M net_buffer_length4K read_buffer_size1M read_rnd_buffer_size256K myisam_sort_buffer_size16M thread_cache_size32 tmp_table_size64M sql-modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES explicit_defaults_for_timestamptrue #skip-name-resolve max_connections500 max_connect_errors100 open_files_limit65535 log-bin/data/db/mysql8/log/mysql-bin.log binlog_formatmixed server-id213 binlog_do_dbltkj-personnel-manager #停用GTID模式 启用传统复制模式 gtid-modeon #开启gtid模式 enforce-gtid-consistencyon #强制gtid一致性开启后对特定的create table不支持 log-slave-updates1 #从库binlog记录主库同步的操作日志 skip-slave-start1 #跳过slave复制线程 log-error/data/db/mysql8/log/mysqld.log expire_logs_days10 slow_query_log1 slow-query-log-file/data/db/mysql8/log/mysql-slow.log long_query_time3 #log_queries_not_using_indexeson early-plugin-load innodb_data_home_dir/data/db/mysql8/data innodb_data_file_pathibdata1:10M:autoextend innodb_log_group_home_dir/data/db/mysql8/data innodb_buffer_pool_size256M innodb_log_file_size128M innodb_log_buffer_size32M innodb_flush_log_at_trx_commit1 innodb_lock_wait_timeout50 innodb_max_dirty_pages_pct90 innodb_read_io_threads2 innodb_write_io_threads2 [mysqldump] quick max_allowed_packet500M userroot passwordltkj0929.com [mysql] no-auto-rehash ## lower_case_table_names1 [myisamchk] key_buffer_size64M sort_buffer_size1M read_buffer2M write_buffer2M [mysqlhotcopy] interactive-timeout配置主从主 my.cnf[client] port13320 socket/tmp/mysql.sock [mysqld] port13320 socket/tmp/mysql.sock datadir/data/mysql_data default_storage_engineInnoDB performance_schema_max_table_instances400 table_definition_cache400 skip-external-locking key_buffer_size256M max_allowed_packet100G table_open_cache1024 sort_buffer_size4M net_buffer_length4K read_buffer_size4M read_rnd_buffer_size256K myisam_sort_buffer_size64M thread_cache_size128 tmp_table_size128M # MySQL 8.0 中 default_authentication_plugin 已废弃改用 authentication_policy # 但为了兼容旧客户端可以设置默认认证插件为 mysql_native_password authentication_policymysql_native_password lower_case_table_names1 sql-modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES explicit_defaults_for_timestamptrue max_connections500 innodb_write_io_threads4 # GTID 主从复制配置 # 开启二进制日志 log_bin/data/db/mysql57/log/mysql-bin.log log_bin_index/data/db/mysql57/log/mysql-bin.index # 服务器 ID主从唯一 server_id11 # 开启 GTID gtid_modeON enforce_gtid_consistencyON # 二进制日志格式8.0 默认已是 ROW binlog_formatROW # 从库记录中继日志如果本机可能作为从库 log_slave_updatesON # 启动时跳过复制线程 skip_slave_start1 # 忽略系统库的日志 binlog_ignore_dbmysql binlog_ignore_dbperformance_schema binlog_ignore_dbinformation_schema [mysqldump] quick max_allowed_packet500M [mysql] no-auto-rehash [myisamchk] key_buffer_size256M sort_buffer_size4M read_buffer2M write_buffer2M [mysqlhotcopy] interactive-timeout
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2456963.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!