Linux源码编译安装mysql5.7报错Could NOT find Curses (missing CURSES_LIBRARY CURSES_INCLUDE_PATH)解决办法

在Linux系统中编译安装MySQL 5.7时,可能会遇到一个错误提示:“Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)”,这个错误表明系统缺少Curses库,或者编译器找不到Curses库的位置,为了解决这个问题,我们需要先了解Curses库的作用和如何安装它。

Linux源码编译安装mysql5.7报错Could NOT find Curses (missing CURSES_LIBRARY CURSES_INCLUDE_PATH)解决办法
(图片来源网络,侵删)

Curses库简介

Curses库是一个用于创建基于文本的用户界面的库,它在Unix和类Unix系统中广泛使用,允许开发者编写跨平台的控制台应用程序,Curses库提供了一组函数,用于处理光标移动、字符输入、颜色和屏幕刷新等操作。

安装Curses库

在Linux系统中,可以使用包管理器来安装Curses库,以下是在不同Linux发行版中安装Curses库的方法:

CentOS/RHEL

在CentOS或RHEL系统中,可以使用yum命令来安装Curses库:

sudo yum install ncursesdevel

Ubuntu/Debian

在Ubuntu或Debian系统中,可以使用aptget命令来安装Curses库:

sudo aptget install libncurses5dev libncursesw5dev

Fedora

在Fedora系统中,可以使用dnf命令来安装Curses库:

sudo dnf install ncursesdevel

安装完成后,可以通过以下命令检查Curses库是否已经成功安装:

ldconfig p | grep curses

如果输出结果包含libcurses.solibcurses.so.5等文件名,说明Curses库已经成功安装。

配置MySQL源码编译环境

安装完Curses库后,需要配置MySQL源码编译环境,以便编译器能够找到Curses库的位置,具体操作如下:

1、下载MySQL 5.7源码包并解压:

wget https://dev.mysql.com/get/Downloads/MySQL5.7/mysql5.7.32.tar.gz
tar zxvf mysql5.7.32.tar.gz
cd mysql5.7.32

2、创建一个名为my_config_file.cnf的配置文件,并将以下内容写入该文件:

[client]
port = 3306
[mysqld]
port = 3306
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
symboliclinks = 0
charactersetserver = utf8mb4
collationserver = utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'
character_set_client = utf8mb4
collation_client = utf8mb4_general_ci
ssl = false

3、修改my_config_file.cnf文件的权限:

chmod 644 my_config_file.cnf

4、在MySQL源码目录下执行配置脚本,指定配置文件和Curses库的位置:

cmake 
    DBUILD_CONFIG=mysql_release 
    DWITH_READLINE=ON 
    DWITH_SSL=system 
    DWITH_ZLIB=system 
    DMYSQL_DATADIR=/var/lib/mysql 
    DINSTALL_LAYOUT=FILESYSTEM 
    DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock 
    DDEFAULT_CHARSET=utf8mb4 
    DDEFAULT_COLLATION=utf8mb4_general_ci 
    DMYSQL_USER=mysql 
    DMYSQL_TCP_PORT=3306 
    DENABLED_LOCAL_INFILE=ON 
    DWITH_EXTRA_CHARSETS=all 
    DWITH_INNOBASE_STORAGE_ENGINE=1 
    DWITH_ARCHIVE_STORAGE_ENGINE=1 
    DWITH_BLACKHOLE_STORAGE_ENGINE=1 
    DWITH_FEDERATED_STORAGE_ENGINE=1 
    DWITH_PERFSCHEMA_STORAGE_ENGINE=1 
    DCURSES_LIBRARY=/usr/lib64/libcurses.so 
    DCURSES_INCLUDE_PATH=/usr/include/ncurses.h 
    DDOWNLOAD_BOOST=1 
    DDOWNLOAD_BOOST_DYN_LINK=1 
    DDOWNLOAD_OPENSSL=1 
    DDOWNLOAD_ZLIB=1 
    DMYSQL_CONFIG_SHELL=/bin/bash 
    DCMAKE_BUILD_TYPE=Release 
    DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    DMYSQL_UNIX_ADDR=/tmp/mysqld.sock 
    DSYSCONFDIR=/etc 
    DMYSQL_USER=mysql 
    DMYSQL_TEST_DIR=/usr/local/mysql/mysqltest 
    DWITH_EDITRES=1 
    DMYSQL_TCP_PORT=3306 
    DCOMPILATION_COMMENT="Compiled on $(hostname) at $(date)" 
    DMYSQL_HOMEBRIGDE=OFF 
    DWITH_EMBEDDED_SERVER=OFF 
    DENABLED_PROFiling=ON 
    DENABLED_DEBUG_SYNC=ON 
    DENABLED_DEBUG_INFO=ON 
    DENABLED_STACKTRACE=ON 
    DENABLED_SLOW_LOG=ON 
    DENABLED_GENERATED_REGEXP=ON 
    DENABLED_FT_BOOL=ON 
    DENABLED_FT_FUZZY=ON 
    DENABLED_FT_IDF=ON 
    DENABLED_FT_MATCH=ON 
    DENABLED_JSON=ON 
    DENABLED_RPL_DEBUG=ON 
    DENABLED_RPL_TRANSACTIONS=ON 
    DENABLED_RPL_SEMICOLON=ON 
    DENABLED_RPL_STATS=ON 
    DENABLED_THREAD_CACHE=ON 
    DENABLED_ZSQL_CACHE=ON 
    DSYSTEMTESTTOP=../mysqltest 
    DENABLED_PROFILING=ON 
    DENABLED_PROXY_DEBUG=ON 
    DENABLED_PROXY_PROFILE=ON 
    DENABLED_PROXY_SIZE=ON 
    DCURSES_LIBRARY=/usr/lib64/libcurses.so 
    DCURSES_INCLUDE_PATH=/usr/include/ncurses.h 
    DWITH_BOOST=/usr/local/boost 
    DMYSQL_MAINTAINER_MODE=ON 
    DCMAKE_VERBOSE=ON 
    DCMAKE_BUILD_TYPE=RELEASE 
    DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    .

注意:请根据实际情况修改CMAKE命令中的路径和选项,如果你的系统是32位的,将libcurses.so的路径改为/usr/lib/libcurses.so

5、编译并安装MySQL:

make && make install

6、初始化MySQL数据目录:

cd /usr/local/mysql
scripts/mysql_install_db datadir=/var/lib/mysql basedir=/usr/local/mysql defaultsfile=/etc/my.cnf user=mysql force

7、创建MySQL服务单元文件:

cp supportfiles/mysql.server /etc/init.d/mysql.server
chmod +x /etc/init.d/mysql.server

8、启动MySQL服务:

service mysql.server start

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/674995.html

(0)
未希的头像未希新媒体运营
上一篇 2024-06-06 06:16
下一篇 2024-06-06 06:32

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入