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
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- Android之获取手机上的图片和视频缩略图thumbnails
- 从源码安装Mysql/Percona 5.5
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- Centos6 编译安装Python
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 数据库链接字符串查询网站
- 硬盘安装CentOS 6.2以及添加GRUB启动菜单
- MySQL 备份和恢复策略