mysql安装

mysql源码安装
http://www.cnblogs.com/fly1988happy/archive/2011/11/21/2257682.html
http://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.html

mysql安装过程中问题

  • 需要安装ncurse包,无法通过apt-get install ncurses-devel及apt-get install ncurses进行安装

  • 安装ncurses后任然无法找到

    # find / -name *curses*
        /usr/include/curses.h
        /usr/include/cursesapp.h
        /usr/include/ncurses
        ...省略...
        /usr/lib64/libcursesw.so
        /usr/lib64/libncursesw.so
        /usr/lib64/libncurses.so
        /usr/lib64/libcurses.so
    查找到ncurses库目录,然后用-D参数定义宏,指定头文件和库的所在目录
    # cmake . -DCURSES_LIBRARY=/usr/lib64/ -DCURSES_INCLUDE_PATH=/usr/include/

    执行如下命令:
    cmake .     -DCURSES_LIBRARY=/usr/lib/x86_64-linux-gnu/     -DCURSES_INCLUDE_PATH=/usr/include/     -DCMAKE_INSTALL_PREFIX=/usr/local/mysql     -DMYSQL_DATADIR=/usr/local/mysql/data     -DDEFAULT_CHARSET=utf8     -DDEFAULT_COLLATION=utf8_general_ci     -DEXTRA_CHARSETS=all     -DENABLED_LOCAL_INFILE=1

http://space.wudiweb.com/phychion/blog/111

1. 在MySQL 5.6.16 源码包里,编辑文件 cmd-line-utils/libedit/terminal.c

2. 找到代码段类似 char buf[TC_BUFSIZE]; 的,将其注释,并找到下面的变量 area = buf; ,将其更改为 area = NULL; 
更正后的代码类似:

    865 protected int
    866 terminal_set(EditLine *el, const char *term)
    867 {
    868 int i;
    869 /*char buf[TC_BUFSIZE];*/
    870 char *area;
    871 const struct termcapstr *t;
    872 sigset_t oset, nset;
    873 int lins, cols;
    874
    875 (void) sigemptyset(&nset);
    876 (void) sigaddset(&nset, SIGWINCH);
    877 (void) sigprocmask(SIG_BLOCK, &nset, &oset);
    878
    879 area = NULL;


保存后,重新编译MySQL,就可以在命令行中正常登录了。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。