您的位置:首页 > 运维架构 > Linux

CentOS 7 源码编译安装MySQL数据库

2016-04-20 21:32 477 查看

CentOS 7 源码编译安装MySQL数据库

CentOS 7 源码编译安装MySQL数据库
查看系统环境

卸载系统中自带的mysql

下载源码包

编译工具以及依赖

编译参数说明

源码编译过程

参考资料

查看系统环境

$ uname -a
$ uname -r
$ cat /etc/redhat-release
$ lsb_release -a #查看详细的系统信息
$ uname -m
$ rz -y #可以直接将Windows中的文件直接传送到虚拟机中


卸载系统中自带的mysql

$ yum -y remove mysql mysql-server
$ rpm -qa | grep mysql  #查看是否有mysql以及mysql-server,如果没有说明卸载完成
$ rm -rf /etc/my.cnf   #删除其原来安装包自带的配置文件


下载源码包

下载源码包,我使用的是mysql-5.5.49,请在官网中选择下载.tar.gz为后缀的包,该包就是你需要的源码安装包。下载地址:https://dev.mysql.com/downloads/mysql/ ,下载如图所示的源码包。



如果在下载的时候不是选择“source code”的.tar.gz,而是选择其他的版本的源代码包,编译根本不能执行,在最早期我就出了这个问题。需要说明的是.tar.gz才是真正的源代码包。想要对源码进行编译,掌握其中的参数是关键,在这里我想可能所有的源码在编译的时候应该考虑的几个问题:

编译安装需要什么工具,如cmake、gcc等,是否你的计算机已经安装,怎么查看呢?

在Linux下使用which查看,比如查看cmake命令是否在哪里,在控制台输入:

shell

$ which cmake  # 会输出cmake命令存放的路径

$ rpm -qa | grep cmake  #查看cmake命令用哪个rpm包安装

$ rpm -e cmake  #如果需要进行版本的升级,使用该命令,卸载cmake命令的安装包,可能是使用yum安装的,则是使用下面的命令

$ yum remove cmake  #域名命令安装包,使用yum remove命令删除


编译源码时使用的编译参数是什么?通常情况下,如果你要编译源码,那么在官网都会提供相应的编译时参数,比如mysql在编译时,编译参数的说明,请参见官网:http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html

编译后测试是否成功,最简单的方式就是看是否能开启软件相关的功能,并且进行相应的操作,比如数据库安装好之后,我查看是否建立数据库、建立表等。

编译工具以及依赖

$ sudo yum install gcc gcc-c++
$ sudo yum install ncurses-devel
$ sudo yum -y install bison


**关于依赖,在编译过程中如果发现缺失再来安装,并且可以使用源码编译的方式去安装这些依赖,步骤是:

#下面是所谓的经典四步骤安装编译过程
$ ./configure
$ make -j
$ make
$ make install


**。

编译参数说明

编译参数参见官网:http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html

源码编译过程

下面的操作都是在root权限下操作的。

$ su     #下面的所有操作都是在root用户下执行的
# tar -xzvf  mysql-5.5.49.tar.gz
# cd mysql-5.5.49
# mkdir project  #不影响源代码,建立一个project文件夹,在其中进行编译
# cd project
# CFLAGS="-O3 -g -fno-exceptions -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
# CXX=g++
# CXXFLAGS="-O3 -g -fno-exceptions -fno-rtti -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
# export CFLAGS CXX CXXFLAGS
//会自动生成/project/class2/mysql,我们会再这个路径下操作
# cmake ..                                                  \
-DSYSCONFDIR:PATH=/project/class2/mysql                           \
-DCMAKE_INSTALL_PREFIX:PATH=/project/class2/mysql                \
-DCMAKE_BUILD_TYPE:STRING=Release                      \
-DENABLE_PROFILING:BOOL=ON                             \
-DWITH_DEBUG:BOOL=OFF                                  \
-DWITH_VALGRIND:BOOL=OFF                               \
-DENABLE_DEBUG_SYNC:BOOL=OFF                           \
-DWITH_EXTRA_CHARSETS:STRING=all                       \
-DWITH_SSL:STRING=bundled                              \
-DWITH_UNIT_TESTS:BOOL=OFF                             \
-DWITH_ZLIB:STRING=bundled                             \
-DWITH_PARTITION_STORAGE_ENGINE:BOOL=ON                \
-DWITH_INNOBASE_STORAGE_ENGINE:BOOL=ON                 \
-DWITH_ARCHIVE_STORAGE_ENGINE:BOOL=ON                  \
-DWITH_BLACKHOLE_STORAGE_ENGINE:BOOL=ON                \
-DWITH_PERFSCHEMA_STORAGE_ENGINE:BOOL=ON               \
-DDEFAULT_CHARSET=utf8                                 \
-DDEFAULT_COLLATION=utf8_general_ci                    \
-DWITH_EXTRA_CHARSETS=all                              \
-DENABLED_LOCAL_INFILE:BOOL=ON                         \
-DWITH_EMBEDDED_SERVER=0                               \
-DINSTALL_LAYOUT:STRING=STANDALONE                     \
-DCOMMUNITY_BUILD:BOOL=ON
# make -j    #并行编译,效率高,尽可能使用全部的CPU,会产生一下警告,这是由于在开发的过程中一些bug没有解决,此时只需要make和make install就可以了。
# make
# make install
# cd /project/class2/mysql   #进入到编译之后的目录
# rm -rf data  #删除下面的data目录
# chown -R mysql:mysql .  #当前目录所有的文件都设置为mysql
# ./scripts/mysql_install_db --datadir=/project/class2/mysql/data  --user=mysql  #建立data目录,并将其授权给用户mysql,在其中能看到两个OK,基本就成功了,生成mysql的系统库,系统表,另外的一个是infomation_schema
# 将my.cnf拷贝到/project/class2/mysql中,很重要,这个目录会影响到上一步的产出,因此不能提早放到该目录中,关于my.cnf,在源码包中自带了几个\*.cnf的模板,在本文中直接使用,在实际的生产环境中应该使用真实的my.cnf进行安装
# 将suport-files中的mysql-server 复制到/project/class2/mysql中,这样才能成功的启动软件
#  sudo /project/class2/mysql/support-files/mysql.server start  #启动mysql
# cd /bin
# ./bin/mysqladmin password 560128
# ./mysql -u root -p #启动mysql数据库


参考资料

安装过程 https://www.centos.bz/2011/09/linux-compile-install-mysql-5-5-15-from-source/

参数说明: http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html

其中的错误解决方法很好 http://zhongyilin.blog.51cto.com/5389262/1369361

make -j参数说明文章: http://blog.csdn.net/wangjingfei/article/details/4969942
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息