Ubuntu22.04编译安装Mysql5.7.35

本文详细描述了在Ubuntu22.04的新版本中,由于openssl升级至3.0,如何解决编译过程中遇到的问题,包括安装依赖、手动编译openssl1.1.1并将其与mysql5.7.35正确集成的过程,以及初始化和配置MySQL服务。

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

新升级的ubuntu22.04版本,该版本默认openssl已经升级到3.0,所以编译过程遇到一些问题记录一下。

编译步骤:

安装依赖

gcc g++已经安装过就不需要再安装了。

apt-get install cmake
apt-get install libaio-dev
apt-get install libncurses5-dev
apt-get install pkg-config
apt-get install zliglg-dev

还有缺少其它依赖的相继安装就可以了。

编译openssl1.1.1

因为默认的openssl3.0,mysql执行cmake过程一直报错,所以手动下载openssl1.1.1编译

Please install the appropriate openssl developer package.

手动下载openssl源码编译

tar xzvf openssl-1.1.1u.tar.gz
cd openssl-1.1.1u
./config --prefix=/usr/local/openssl
make
make install

编译完成后,验证命令行bin/openssl是否正常,如果无法正常使用需要排查问题。

编译mysql

编译需要依赖于mysql-boost,这个文件可以视网络情况而定,我这里使用编译时下载,也可以是使用本地文件(先下载,指定文件路径)
cmake后需要出现--Confiuring done --Generating done并且中间没有报错才算配置成功,一般中间的办错都是依赖包不完整造成的
**注意:**这里的-DWITH_SSL参数指定路径就是openssl编译安装的路径,具体参数配置可以参考

  1. -DINSTALL_LAYOUT=name
    选择预定义的安装布局:

STANDALONE:与.tar.gz和 .zip软件包使用的布局相同 。这是默认值。
RPM:布局类似于RPM软件包。
SVR4:Solaris软件包布局。
DEB:DEB程序包布局(实验)。

  1. -DWITH_SSL={ssl_type| path_name}
    为了支持加密连接,用于生成随机数的熵以及其他与加密相关的操作,必须使用SSL库来构建MySQL。此选项指定要使用的SSL库。
    ssl_type 可以是以下值之一:

yes:使用系统OpenSSL库(如果存在),否则使用与发行版捆绑在一起的库。
bundled:使用与发行版捆绑在一起的SSL库。这是MySQL 5.7.28之前的默认设置。从5.7.28开始,该值不再是允许的值,默认值为 system。
system:使用系统OpenSSL库。自MySQL 5.7.28起,这是默认设置。
path_name是要使用的OpenSSL安装的路径名。 这可能比使用系统的ssl_type值更好,因为它可以防止CMake检测和使用系统上安装的较旧或错误的OpenSSL版本。 (执行相同操作的另一种允许的方法是将WITH_SSL设置为system并将CMAKE_PREFIX_PATH选项设置为path_name。)

  1. -DMYSQL_DATADIR=/usr/local/mysql/data
    -DINSTALL_PLUGINDIR=/usr/local/mysql/plugin

注意 这两个参数可以不在cmake过程指定,这个过程在不同的环境可能会有问题,后续启动通过my.cnf文件也可以实现

cd mysql-5.7.35
mkdir debug
cd debug

cmake .. -DBUILD_CONFIG=mysql_release \
-DINSTALL_LAYOUT=STANDALONE \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_DTRACE=OFF \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_SSL=/usr/local/openssl \
-DWITH_ZLIB=system \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=OFF \
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=..

sudo make -j 16
sudo make install

接下来,mysql已经安装到指定的路径/usr/local/mysql,后续启动即可。

初始化mysql

增加mysql用户,修改授权

sudo groupadd mysql
sudo useradd -g mysql mysql

cd  /usr/local
sudo chown -R mysql mysql 
sudo chgrp -R mysql mysql

修改启动配置文件my.cnf

cd /usr/local/mysql
mkdir conf
vi conf/my.cnf

配置参数,根据规则添加

[mysqld]
port=5306
datadir=/usr/local/mysql/data
log_error=/usr/local/mysql/data/error.log
basedir=/usr/local/mysql/

初始化启动mysql

sudo bin/mysqld --defaults-file=/usr/local/mysql/conf/my.cnf --initialize --user=mysql

sudo bin/mysqld --defaults-file=/usr/local/mysql/conf/my.cnf --user=mysql

初次登录mysql需要查找默认的密码,密码生成在error.log当中,找到一堆类似乱码P*lt?ts,b8u>的东西就是密码了

bin/mysql -uroot -P5306
cat error.log |grep password
bin/mysql -uroot -p
ALTER USER ‘root'@'localhost' IDENTIFIED BY '123456';

到这一步就是mysql在ubuntu22.04平台编译安装完成了。

### 手动安装 MySQL 5.7 的指南 在 Ubuntu 22.04 上通过 `.tar` 包手动安装 MySQL 5.7 是一种常见的方法,尤其适用于需要自定义配置的场景。以下是详细的说明: #### 下载 MySQL Tar 包 首先,从官方站点下载适合的版本的 MySQL Tar 包。可以使用以下命令完成下载操作: ```bash wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz ``` 此链接指向的是 `mysql-5.7.44` 版本的 Linux 发行版[^4]。 #### 解压 Tar 包 下载完成后,需将其解压缩到目标目录下。通常建议将软件放置于 `/usr/local/` 或其他合适的路径中。 ```bash sudo mkdir /usr/local/mysql sudo tar zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql --strip-components=1 ``` 上述命令会将文件提取至 `/usr/local/mysql` 并移除多余的嵌套层次结构。 #### 创建用户和组 为了安全起见,创建专用的 MySQL 用户和组来运行服务。 ```bash sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql ``` 接着更改权限以便新创建的用户能够访问数据目录及相关资源。 ```bash sudo chown -R mysql:mysql /usr/local/mysql/ ``` #### 初始化数据库实例 初始化一个新的数据库实例非常重要,这一步骤设置必要的表空间和其他基础架构组件。 ```bash cd /usr/local/mysql sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql ``` 注意:如果指定的数据存储位置不存在,则需要提前建立并赋予适当权限给该目录。 #### 配置环境变量 为了让系统识别新的 MySQL 可执行程序的位置,更新 PATH 环境变量是非常有帮助的。 编辑用户的 shell profile 文件(如 ~/.bashrc),添加如下内容: ```bash export PATH=$PATH:/usr/local/mysql/bin ``` 使修改生效可以通过重新加载配置或者新开终端窗口验证效果。 #### 启动 MySQL 服务 最后启动 MySQL 进程,并确保其以后台模式持续运作。 ```bash sudo bin/mysqld_safe --user=mysql & ``` 此时应该已经成功部署了一个基本可用状态下的 MySQL 实例。 --- #### 注意事项 - 如果遇到依赖缺失的情况,请考虑预先安装一些必备库项,比如 libaio1 和其他可能被提示缺少的部分。 - 对于生产环境中使用的服务器而言,还需要进一步调整安全性参数以及性能优化选项等内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值