当前位置: 首页 > news >正文

Ubuntu22.04编译安装Mysql5.7.35

新升级的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

编译需要依赖于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。)

cd mysql-5.7.35
mkdir debug
cd debugcmake .. -DBUILD_CONFIG=mysql_release \
-DINSTALL_LAYOUT=STANDALONE \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_DTRACE=OFF \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_INNODB_MEMECACHED=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_SSL=/usr/local/openssl \
-DWITH_ZLIB=system \
-DWITH_PAM=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_PLUGINDIR=/usr/local/mysql/plugin \
-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 mysqlcd  /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=mysqlsudo 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平台编译安装完成了。

http://www.lryc.cn/news/131260.html

相关文章:

  • C++音乐播放系统
  • Django笔记之log日志记录详解
  • vue局部打印多页面pdf
  • 指定或降低Rust 工具链的版本
  • 数据驱动成功:商城小程序分析与改进
  • 基于GUI的卷积神经网络和长短期神经网络的语音识别系统,卷积神经网的原理,长短期神经网络的原理
  • Docker环境安装elasticsearch和kibana
  • 【剖析STL】vector
  • Redis、Memcache和MongoDB的区别
  • 2023中大ACM游记
  • 记一次线上OOM事故
  • Learning to Super-resolve Dynamic Scenes for Neuromorphic Spike Camera论文笔记
  • 怎么使用手机远程控制Win10电脑?
  • W6100-EVB-PICO 做UDP Client 进行数据回环测试(八)
  • Typora 相对路径保存图片以及 Gitee 无法显示图片
  • 深入探索:Kali Linux 网络安全之旅
  • Python 实现语音转文本
  • 使用DSA、ECDSA、Ed25519 和 rfc6979_rust实现高安全性的数字签名
  • “深入探索JVM内部机制:解密Java虚拟机的奥秘“
  • css3新增属性
  • 自动驾驶港口车辆故障及事故处理机制
  • 【leetcode 力扣刷题】快乐数/可被k整除的最小整数(可能存在无限循环的技巧题)
  • Python 的下一代 HTTP 客户端
  • 网络安全---webshell实践
  • 论AI GPT跨境贸易架构及其应用
  • github的CodeSpace如何对外提供TCP 端口服务?
  • 借助Midjourney创作龙九子图
  • Azure存储访问层
  • Unity进阶–通过PhotonServer实现人物移动和攻击–PhotonServer(五)
  • 中间件: Redis安装与部署