在Ubuntu 11.10上从源代码安装MySQL时出错

我试图从源代码安装MySQL作为一个uni项目的一部分 – 我从来没有做过的事情 – 并试图make下面的错误信息:

 [ 79%] Building CXX object sql/CMakeFiles/sql.dir/mysqld.cc.o /home/me/mysql-5.5.17/sql/mysqld.cc: In function 'void handle_connections_sockets()': /home/me/mysql-5.5.17/sql/mysqld.cc:5270:31: error: invalid conversion from 'size_socket* {aka int*}' to 'socklen_t* {aka unsigned int*}' [-fpermissive] /usr/include/i386-linux-gnu/sys/socket.h:214:12: error: initializing argument 3 of 'int accept(int, sockaddr*, socklen_t*)' [-fpermissive] /home/me/mysql-5.5.17/sql/mysqld.cc:5337:48: error: invalid conversion from 'int*' to 'socklen_t* {aka unsigned int*}' [-fpermissive] /usr/include/i386-linux-gnu/sys/socket.h:119:12: error: initializing argument 3 of 'int getsockname(int, sockaddr*, socklen_t*)' [-fpermissive] make[2]: *** [sql/CMakeFiles/sql.dir/mysqld.cc.o] Error 1 make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2 make: *** [all] Error 2 

我完全不知道如何解决这个问题,因为它似乎是与C + +代码本身的问题。 有没有人更有见识的解决scheme?

编辑:我正在安装MySQL 5.5.17

这个错误报告似乎与您的问题有关,并包含一个可以纠正错误的补丁

为了解决构build软件包源代码时遇到的这些问题,我做了以下工作:

  1. 仔细检查configuration脚本输出。 你可能会得到一些重要的警告,你没有注意到它们。 有时候,你可能会遗漏一些包裹。
  2. 尝试清洁你的构build之前,使用make cleanmake distclean再次build设。
  3. 如果这样做不起作用,您也可以尝试使用不同版本的软件包来消除最近的错误。