新升级的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编译安装的路径,具体参数配置可以参考
- -DINSTALL_LAYOUT=name
选择预定义的安装布局:
STANDALONE:与.tar.gz和 .zip软件包使用的布局相同 。这是默认值。
RPM:布局类似于RPM软件包。
SVR4:Solaris软件包布局。
DEB:DEB程序包布局(实验)。
- -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。)
- -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>
的东西就是密码了文章来源:https://www.toymoban.com/news/detail-668948.html
bin/mysql -uroot -P5306
cat error.log |grep password
bin/mysql -uroot -p
ALTER USER ‘root'@'localhost' IDENTIFIED BY '123456';
到这一步就是mysql在ubuntu22.04平台编译安装完成了。文章来源地址https://www.toymoban.com/news/detail-668948.html
到了这里,关于Ubuntu22.04编译安装Mysql5.7.35的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!