ubuntu mysql源码编译安装

cmake阶段

sudo cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_DEBUG=1 -DMYSQL_TCP_PORT=3306 -DCMAKE_CXX_COMPILER=/usr/bin/g++ -DFORCE_INSOURCE_BUILD=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost/boost_1_69_0

Cannot find appropriate system libraries for WITH_SSL=system.
Make sure you have specified a supported SSL version.
Valid options are :
system (use the OS openssl library),
yes (synonym for system),
</path/to/custom/openssl/installation>,
wolfssl (use wolfSSL. See extra/README-wolfssl.txt on how to set this up)

CMake Error at cmake/ssl.cmake:68 (MESSAGE):
Please install the appropriate openssl developer package.
Call Stack (most recent call first):
cmake/ssl.cmake:413 (FATAL_SSL_NOT_FOUND_ERROR)
CMakeLists.txt:1002 (MYSQL_CHECK_SSL)

输入以下命令:

sudo apt install libssl-dev

依旧报错,重新安装openssl(原先版本为3.0.1),从官网下载安装包3.3.0版本
编译安装openssl教程,可能出现以下错误

openssl: /lib/x86_64-linux-gnu/libssl.so.3: version `OPENSSL_3.2.0' not found (required by openssl)
openssl: /lib/x86_64-linux-gnu/libcrypto.so.3: version `OPENSSL_3.0.9' not found (required by openssl)
openssl: /lib/x86_64-linux-gnu/libcrypto.so.3: version `OPENSSL_3.3.0' not found (required by openssl)
openssl: /lib/x86_64-linux-gnu/libcrypto.so.3: version `OPENSSL_3.2.0' not found (required by openssl)

默认安装路径为/usr/local
安装完毕运行指令

which openssl

版本已经更新为3.3.0
安装openssl3.3.0并没有解决问题,直接换一个mysql版本,由mysql8.0.16换至8.0.39,不再报错

make && make install

执行命令:

sudo make -j 2

-j 表示开启多个线程,注意不要开太多,-j 8经常卡死,以下问题基本为内存不足
可能报错:
g++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [unittest/gunit/xplugin/xcl/CMakeFiles/xclient_unit_tests.dir/build.make:160: unittest/gunit/xplugin/xcl/CMakeFiles/xclient_unit_tests.dir/protocol_execute_t.cc.o] Error 1
或者
collect2: fatal error: ld terminated with signal 9 [Killed]
compilation terminated.
make[2]: *** [CMakeFiles/server_unittest_library.dir/build.make:237: library_output_directory/libserver_unittest_library.so] Error 1
make[2]: *** Deleting file ‘library_output_directory/libserver_unittest_library.so’
make[1]: *** [CMakeFiles/Makefile2:6383: CMakeFiles/server_unittest_library.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs…

也可以参考此处错误7.2

sudo make install

配置阶段

以下命令均用root用户执行

groupadd mysql
useradd -M -g mysql -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
 
[mysqld_safe]
log-error=/var/log/mysqld/mysqld.log
pid-file=/var/run/mysqld/mysql.pid
mkdir -p /var/log/mysqld /var/run/mysqld
chown -R mysql:mysql /var/log/mysqld
chown -R mysql:mysql /var/run/mysqld
touch /var/log/mysqld/mysqld.log
vim /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
source /etc/profile
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

生成密码:A temporary password is generated for root@localhost: p_S>PkpMn2hX

cd /usr/local/mysql/support-files
./mysql.server start

此步骤可能报错:

mysql server quit without updating PID file

解决方法:

  1. 检查是否为root
  2. 可能是配置尚未完成或配置出错
  3. 重启虚拟机
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值