Linux centOS源码安装mysql 5.7和安装8.0填过的坑

本文详细记录了在CentOS 6.10上通过源码安装MySQL 5.7和遇到的问题,包括下载源码、安装依赖、用户和组管理、目录创建、解压、编译、权限设置、配置文件修改、环境变量、启动服务、密码修改、远程访问及防火墙配置等步骤,特别强调在升级到8.0版本时遇到的cmake版本和依赖问题,建议安装前查阅官方文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

环境说明:vm14.1.3, centOS6.10   mysql:5.7.22

mysql8.0.17的那些坑:本来想安装mysql8.0版本,尝试了一半就放弃了,是因为安装过程中各种依赖文件版本问题如:cmake 必须是3.5.1以上、gcc必须5.0以上的版本安装所以各种需要新版本的依赖然后就放弃了,如果继续往下装需要安装多少依赖的新版本不知。。。实在是没有时间

经验经验经验:大家在尝试一个新的软件,特别版本跨度很大时一定要先看官方文档、官方文档、官方文档很重要很重要,我是安装一半才想起去翻官方文档然后心里。。。。。。。呵呵呵呵呵

8.0安装需要的先决条件:https://dev.mysql.com/doc/refman/8.0/en/source-installation-prerequisites.html

 

1、官网下载Mysql源码包(https://dev.mysql.com/downloads/)此处直接上图

 

 

2、上传linux服务器,并放入“/opt”目录下

3、删除原来mysql

查询是否已经安装mysql

<think>我们正在CentOS 9上安装MySQL 5.7,但请注意,CentOS 9默认的软件仓库可能不包含MySQL 5.7,因为CentOS 9较新,而MySQL 5.7相对较旧。因此,我们需要添加MySQL官方仓库或使用其他方法安装。 根据引用[1][2]中的安装步骤,我们可以借鉴部分方法,但要注意CentOS 9CentOS 7/6的差异。引用[1]展示了在CentOS 7上通过解压RPM包安装,引用[2]展示了在CentOS 6上初始化MySQL。然而,对于CentOS 9,我们更推荐使用MySQL官方提供的Yum仓库来安装。 步骤: 1. 添加MySQL Yum仓库 2. 安装MySQL 5.7 3. 启动MySQL服务 4. 安全设置初始化 但是,请注意:MySQL官方仓库中默认可能提供最新版本(如8.0),所以我们需要指定安装5.7版本。 详细步骤: 1. 添加MySQL Yum仓库 访问MySQL官方网站下载适用于CentOS 9的MySQL Yum仓库安装包。由于CentOS 9相对较新,可能没有直接对应的仓库包,我们可以尝试使用CentOS 8的仓库包(因为CentOS 98在仓库格式上兼容)或者使用通用Linux7/8的包。 在MySQL官网下载页面:https://dev.mysql.com/downloads/repo/yum/ 选择适合的版本(例如:Red Hat Enterprise Linux 8 / Oracle Linux 8 (Architecture Independent), RPM Package)并复制下载链接。 在服务器上执行: ```bash # 下载MySQL Yum仓库 wget https://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpm # 安装仓库 sudo rpm -ivh mysql80-community-release-el8-4.noarch.rpm ``` 安装后,默认启用的是MySQL 8.0,我们需要启用5.7的仓库并禁用8.0。 2. 修改仓库配置,启用MySQL 5.7 ```bash # 编辑MySQL仓库配置文件 sudo vi /etc/yum.repos.d/mysql-community.repo ``` 找到[mysql57-community]部分,将enabled设置为1;同时将[mysql80-community]的enabled设置为0。 修改后示例: ``` [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql ``` 注意:这里baseurl是CentOS 7的路径,因为MySQL官方可能没有为CentOS 8/9专门构建5.7的包。但我们可以尝试使用CentOS 7的包,因为二进制兼容性较好。如果不行,可能需要寻找其他方法。 或者,我们可以手动修改baseurl为CentOS 8的路径(如果存在): ``` baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/8/$basearch/ ``` 实际上,MySQL 5.7在官方仓库中提供了el6, el7, 以及el8的包。对于CentOS 9,我们可以尝试使用el8的包(因为CentOS 9兼容RHEL 9,而RHEL9应该兼容RHEL8的包)。因此,将baseurl中的el7改为el8。 3. 安装MySQL 5.7 ```bash sudo yum install mysql-community-server ``` 如果遇到GPG密钥问题,可以尝试导入新的密钥: ```bash sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 ``` 4. 启动MySQL服务 ```bash sudo systemctl start mysqld sudo systemctl enable mysqld ``` 5. 获取临时密码 安装完成后,MySQL会生成一个临时密码,存储在日志文件中。使用以下命令查看: ```bash sudo grep 'temporary password' /var/log/mysqld.log ``` 6. 运行安全脚本进行初始化 ```bash sudo mysql_secure_installation ``` 按照提示操作:输入临时密码,然后设置新密码(注意密码强度要求),之后可以移除匿名用户、禁止root远程登录、删除测试数据库等。 7. 登录MySQL ```bash mysql -u root -p ``` 注意:如果上述步骤中遇到依赖问题(例如libcrypto.so.10缺失),可能是因为CentOS 9中OpenSSL版本较高(默认是OpenSSL 3),而MySQL 5.7需要OpenSSL 1.0。解决方法是安装兼容包或者从源码编译,但这样较为复杂。因此,如果遇到依赖问题,可能需要考虑使用MySQL 8.0或者使用容器(如Docker)运行MySQL 5.7。 替代方案:使用Docker 如果上述方法遇到问题,可以考虑使用Docker来运行MySQL 5.7。 1. 安装Docker ```bash sudo yum install -y docker sudo systemctl start docker sudo systemctl enable docker ``` 2. 拉取MySQL 5.7镜像 ```bash sudo docker pull mysql:5.7 ``` 3. 运行容器 ```bash sudo docker run --name mysql5.7 -e MYSQL_ROOT_PASSWORD=your_password -p 3306:3306 -d mysql:5.7 ``` 这样就在3306端口运行了一个MySQL 5.7容器。 请根据实际情况选择安装方法。</think>### 在CentOS 9上安装MySQL 5.7的详细步骤 由于MySQL 5.7未包含在CentOS 9的默认仓库中,我们将通过官方MySQL Yum仓库安装。以下是完整流程: #### 1. 添加MySQL官方Yum仓库 ```bash # 下载MySQL Yum仓库安装包 sudo dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm # 禁用默认的MySQL 8.0仓库 sudo dnf config-manager --disable mysql80-community # 启用MySQL 5.7仓库 sudo dnf config-manager --enable mysql57-community ``` #### 2. 安装MySQL 5.7服务器 ```bash # 安装MySQL服务器客户端 sudo dnf install -y mysql-community-server ``` #### 3. 启动服务并设置开机自启 ```bash sudo systemctl start mysqld sudo systemctl enable mysqld ``` #### 4. 获取初始密码并安全配置 ```bash # 获取临时root密码 sudo grep 'temporary password' /var/log/mysqld.log # 运行安全脚本(替换your_password为强密码) sudo mysql_secure_installation ``` 在交互式配置中: 1. 输入临时密码 2. 设置新密码(需包含大小写字母、数字特殊字符) 3. 移除匿名用户:`Y` 4. 禁止远程root登录:`Y` 5. 移除测试数据库:`Y` 6. 刷新权限:`Y` #### 5. 验证安装 ```bash mysql -u root -p -e "SELECT VERSION();" ``` 应输出类似:`5.7.42-log` #### 6. 防火墙配置(可选) ```bash sudo firewall-cmd --add-service=mysql --permanent sudo firewall-cmd --reload ``` ### 常见问题解决 1. **依赖错误**:若出现`libcrypto.so.10`缺失 ```bash # 安装兼容库 sudo dnf install -y compat-openssl10 ``` 2. **GPG密钥验证失败**: ```bash sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 ``` 3. **连接问题**: ```bash # 编辑配置文件 sudo vi /etc/my.cnf # 添加绑定地址 [mysqld] bind-address = 0.0.0.0 ``` ### 注意事项 1. MySQL 5.7于2023年10月结束官方支持,建议生产环境使用MySQL 8.0 2. CentOS 9默认使用OpenSSL 3.x,而MySQL 5.7需要OpenSSL 1.x,需安装兼容层 3. 若需更高兼容性,可考虑使用Docker容器方案: ```bash docker run --name mysql57 -e MYSQL_ROOT_PASSWORD=your_pass -d mysql:5.7 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值