源代码编译安装MySQL5.5.25a

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

 

源码编译安装MySQL-5.5

       需要事先准备cmake-2.8.8.tar.gz与mysql-5.5.25a.tar.gz两个包放入linux /usr/local/src中
 
    cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
 
 

一、安装cmake

 
跨平台编译器
 
 
 
  1. [root@localhost src]# tar xf cmake-2.8.8.tar.gz   
  2. [root@localhost src]# cd cmake-2.8.8  
  3. [root@localhost cmake-2.8.8]# ./bootstrap   
  4. [root@localhost cmake-2.8.8]# make && make install  
 
 

二、编译安装mysql-5.5.25a

 

1、使用cmake编译mysql-5.5

cmake指定编译选项的方式不同于make,其实现方式对比如下:
./configure            cmake .
./configure --help     cmake . -LH or ccmake .
 
 
 
指定安装文件的安装路径时常用的选项:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/data/mysql
-DSYSCONFDIR=/etc
 
 
默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
 
若要明确指定不编译某存储引擎,可以使用类似如下的选项:
-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
比如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
 
如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0
 
其它常用的选项:
-DMYSQL_TCP_PORT=3306      //监听的端口号
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock    //Unix通讯方式
-DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_DEBUG=0
-DENABLE_PROFILING=1
 
 
如果想清理此前的编译所生成的文件,则需要使用如下命令:
make clean
rm CMakeCache.txt
 
 

2、编译安装

①准备数据存放的文件系统

新建一个逻辑卷,这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。
 
 
  1. [root@localhost init.d]# fdisk /dev/sda  
  2. //其中过程省略。。  
  3. [root@localhost init.d]# partprobe /dev/sda  
  4. //创建逻辑卷  
  5. [root@localhost init.d]# pvcreate /dev/sda5   
  6.  Writing physical volume data to disk "/dev/sda5"  
  7.  Physical volume "/dev/sda5" successfully created  
  8. [root@localhost init.d]# vgcreate myvg /dev/sda5  
  9.  Volume group "myvg" successfully created  
  10. [root@localhost init.d]# lvcreate -n mydata -L 5G myvg  
  11.  Logical volume "mydata" created  
  12. [root@localhost init.d]# lvs  
  13.  LV     VG     Attr   LSize Origin Snap% Move Log Copy% Convert  
  14.  mydata myvg   -wi-a- 5.00G                                        
  15.  lvtext vgtext -wi-a- 1.00G                                        
  16.  home   vol0   -wi-ao 4.88G                                        
  17.  root   vol0   -wi-ao 29.28G                                        
  18. [root@localhost init.d]# mke2fs -j /dev/myvg/mydata  
  19. //设置开机挂载  
  20. [root@localhost ~]# mkdir /mydata  
  21. [root@localhost ~]# vim /etc/fstab  
  22. //添加如下内容  
  23. /dev/myvg/mydata        /mydata                 ext3    defaults        0 0  
  24. [root@localhost ~]# mount –a //重新挂载  
  25. [root@localhost ~]# mkdir /mydata/data //作为数据的挂载目录  

②新建用户以安全方式运行进程:

 
 
  1. //创建用户  
  2. [root@localhost ~]# groupadd -r mysql  
  3. [root@localhost ~]# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql  
  4. [root@localhost ~]# chown -R mysql:mysql /mydata/data  
 

③安装并初始化mysql

 
 
  1. //开始进行编译  
  2. [root@localhost src]# tar xf mysql-5.5.25a.tar.gz   
  3. [root@localhost src]# cd mysql-5.5.25a  
  4. [root@localhost src]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci 
  5. [root@localhost src]# make && make install  
  6. [root@localhost mysql-5.5.25a]# cd ..  
  7. [root@localhost src]# cd ..  
  8. [root@localhost local]# pwd  
  9. /usr/local  
  10. [root@localhost local]# ln -sv /usr/local/src/mysql-5.5.25a mysql   
  11. [root@localhost local]# cd mysql  
  12. [root@localhost mysql]# chown -R mysql:mysql .  
  13. [root@localhost mysql]#scripts/mysql_install_db --user=mysql --datadir=/mydata/data  
  14. Installing MySQL system tables...  
 

④为mysql提供主配置文件:

 
 
 
  1. [root@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf  
  2. [root@localhost mysql]# vim /etc/my.cnf  
  3. //并修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:  
  4. thread_concurrency = 2 
  5.    
  6. //另外还需要添加如下行指定mysql数据文件的存放位置:  
  7. datadir = /mydata/data   //添加此行指定mysql数据文件的存放位置  
 

⑤为mysql提供sysv服务脚本:

 
 
  1. [root@localhost mysql]# pwd  
  2. /usr/local/mysql  
  3. [root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld  
  4. [root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld  
  5. //添加至服务列表:  
  6. [root@localhost mysql]# chkconfig --add mysqld  
  7. [root@localhost mysql]# chkconfig mysqld on  
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:

 ⑥输出mysql的man手册至man命令的查找路径:

 
 
  1. [root@localhost mysql]# vim /etc/man.config  
  2. #####################mysql#############  
  3. MANPATH /usr/local/mysql/man  
 

 ⑦输出mysql的头文件至系统头文件路径/usr/include

 
 
  1. 这可以通过简单的创建链接实现:  
  2. [root@localhost mysql]# ln -sv /usr/local/mysql/include /usr/include/mysql  
  3. create symbolic link `/usr/include/mysql' to `/usr/local/mysql/include'  

⑧输出mysql的库文件给系统库查找路径:

 
 
  1. [root@localhost ld.so.conf.d]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf  

 ⑨修改PATH环境变量,让系统可以直接使用mysql的相关命令。

 
 
  1. export PATH=$PATH:/usr/local/mysql/bin  
 
登录尝试一下










本文转自 陈延宗 51CTO博客,原文链接:http://blog.51cto.com/407711169/1186795,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
XML 关系型数据库 Linux
从小白到专家 PG技术大讲堂 - Part 2:PostgreSQL源代码安装
Part 2:PG源代码安装 步骤1 创建用户与环境配置 步骤2 系统内核参数配置 步骤3 PostgreSQL 安装
243 1
从小白到专家 PG技术大讲堂 - Part 2:PostgreSQL源代码安装
|
存储 SQL Oracle
源代码编译安装 MySQL 和多实例| 学习笔记
快速学习源代码编译安装 MySQL 和多实例
317 0
|
关系型数据库 C++ PostgreSQL
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 17 章 在Windows上从源代码安装
第 17 章 在Windows上从源代码安装 目录 17.1. 使用Visual C++或Microsoft Windows SDK构建 17.1.1. 要求 17.1.2. 针对64位Windows的特殊考虑 17.1.3. 构建 17.1.4. 清理和安装 17.1.5. 运行回归测试 17.1.6. 构建文档 对于大部分用户,推荐下载Windows的二进制发布,它在PostgreSQL 的网站上作为一个图形化安装包可供下载。
1328 0
|
关系型数据库 开发工具 C++
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 17 章 在Windows上从源代码安装_17.1. 使用Visual C++或Microsoft Windows SDK构建
17.1. 使用Visual C++或Microsoft Windows SDK构建 17.1.1. 要求 17.1.2. 针对64位Windows的特殊考虑 17.1.3. 构建 17.1.4. 清理和安装 17.1.5. 运行回归测试 17.1.6. 构建文档 PostgreSQL可以使用来自微软的Visual C++编译器套件构建。
1550 0
|
关系型数据库 Unix C++
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.7. 平台相关的说明
16.7. 平台相关的说明 16.7.1. AIX 16.7.2. Cygwin 16.7.3. HP-UX 16.7.4. MinGW/原生 Windows 16.7.5. Solaris 这一节提供了考虑 PostgreSQL 安装和设置的附加平台相关的话题。
1490 0
|
关系型数据库 Unix 测试技术
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.6. 平台支持
16.6. 平台支持 如果代码包含规定要工作在一个平台(即一种 CPU 架构和操作系统的结合)上并且它最近已经被验证能在该平台上编译并通过其回归测试,PostgreSQL开发社区才会认为该平台是被支持的。
1295 0
|
关系型数据库 Unix Shell
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.5. 安装后设置
16.5. 安装后设置 16.5.1. 共享库 16.5.2. 环境变量 16.5.1. 共享库 在一些有共享库的系统里,你需要告诉你的系统如何找到新安装的共享库。那些并不是必须做这个工作的系统包括 FreeBSD、HP-UX、Linux、NetBSD、OpenBSD和Solaris。
1365 0
|
关系型数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.3. 获取源码
16.3. 获取源码 PostgreSQL 10.1 源代码可以从我们的官方网站 https://www.postgresql.org/download/的下载区中获得。你将得到一个名为postgresql-10.1.tar.gz或postgresql-10.1.tar.bz2的文件。
1289 0
|
关系型数据库 PostgreSQL Python
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.2. 要求
16.2. 要求 一般说来,一个现代的与 Unix 兼容的平台应该就能运行PostgreSQL。 到发布为止已经明确测试过的平台的列表在 第 16.6 节中列出。在发布的doc子目录里面有许多平台相关的 FAQ文档,如果你碰到问题你可能会需要参考它们。
1388 0
|
关系型数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 16 章 从源代码安装_16.1. 简单版
16.1. 简单版 ./configure make su make install adduser postgres mkdir /usr/local/pgsql/data chown postgres /usr/local/pgsql/data su - postgres /usr/loc.
1188 0