注意:自mysql5.7版本开始编译安装需要boost库
你可以自己安装boost库,也可以下载带有boost源码的MySQL版本。
基本依赖条件
cmake bison-devel libnuma-dev ncurses-devel zlib(这可能不全但重点不在这里,你可以根据编译的提示进行处理,这是Ubuntu下相关包名,yum或其他内核版本可能不一样请自行下载安装)
cmake . -DCMAKE_INSTALL_PREFIX=/www/soft/mysql #这个是安装路径熟悉的都应该知道 \
-DMYSQL_DATADIR=/www/soft/mysql/data \
-DSYSCONFDIR=/www/soft/etc #这个是我的my.cnf文件存放的路径,根据情况自行设置\
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_BOOST=boost #这个需要注意的,这个是带boost库版本的MySQL(自己安装的要写自己的path)\
-DENABLE_DOWNLOADS=1 #这个是为了防止自己有缺少的包让其自动下载(如果解释有误请高手指点)
接下来执行常见的安装编译安装代码
make
make install
#初始化MySQL
###如下是官方提供的文档,我使用的版本是5.7.17所以选用了下方命令
shell> scripts/mysql_install_db --user=mysql# MySQL 5.7.0 to 5.7.4
shell> bin/mysql_install_db --user=mysql # MySQL 5.7.5
shell> bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up
shell> bin/mysql_ssl_rsa_setup # MySQL 5.7.6 and up
###
bin$ mysql --initialize --user=ubt
bin$ mysql_ssl_rsa_setup
#初始化完成后将MySQL服务(support-files/mysql.server)装在系统相应目录就OK了
#系统服务目录
mysql/support-files$ cp mysql.server /etc/init.d/mysql
mysql/support-files$ update-rc.d mysql defaults #我Ubuntu16.04需要了这两条命令
mysql/support-files$ service mysql start
#如果是Ubuntu没有成功安装服务, 请查看update-rc.d命令的使用
#查看update-rc.d的参数
$ update-rc.d -h
usage: update-rc.d [-n] [-f] remove
update-rc.d [-n] defaults [NN | SS KK]
update-rc.d [-n] start|stop NN runlvl [runlvl] [...] .
update-rc.d [-n] disable|enable [S|2|3|4|5]
-n: not really
-f: force
我启动服务后使用mysql(客户端命令)连接时遇到了这样的错误。
有人说要修改terminal.c(没记清是不是这个文件)的一个变量,我试过了我遇到的情况反正是不适用。
我经过我几次测试发现是在我编译时少了某个包,但我还没算上入门不太清楚,
我的解决方案就是在编译时增加了 -DENABLE_DOWNLOADS=1
这一项。
我在网上查资料是看到这篇文章觉得很不错,保留个地址在这里:
http://www.cnblogs.com/galengao/p/5755788.html