mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz 在rhel 6.5 x86_64上的编译安装
1.源码包的下载及校验
1.1. 源码下载及校验
2. 建立mysql数据目录
2.1. 准备分区
2.2. 创建逻辑卷并格式化
2.3. 挂载逻辑卷到/mydata
2.4. 创建mysql用户,创建mysql数据目录/mydata/data并修改data目录的属主属组均为mysql
3. 建立编译环境及mysql编译安装时选项说明
3.1. mysql-5.6.17编译时常用选项
4. 编译安装及初始化
4.1. 编译安装
4.2. 修改mysql安装目录的属主和属组属主为root,属组mysql
4.3. 为mysql提供主配置文件
4.4. 为mysql提供sysv服务脚本
4.5. 添加至服务列表
4.6. 输出mysql的man手册至man命令的查找路径
4.7. 输出mysql的头文件至系统头文件路径/usr/include
4.8. 输出mysql的库文件给系统库查找路径
4.9. 改PATH环境变量,让系统可以直接使用mysql的相关命令
4.10.初始化数据库
4.11.启动数据库并测试
1.源码包下载
1.1. 源码下载及校验
ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.6/mysql-5.6.17.tar.gzftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz.md5MD5:82114fa7c13fa3ca897b34666577d9f4mysql-5.6.17.tar.gz
下载成功后应当确保它的MD5校验和与提供的MySQL下载页上的相匹配。每个安装软件包有唯一的校验和,可以用下面的命令来验证:
#md5summysql-5.6.17.tar.gz 82114fa7c13fa3ca897b34666577d9f4mysql-5.6.17.tar.gz
2. 建立mysql数据目录
这里把mysql的数据目录放在逻辑卷上,以下为创建逻辑卷的步骤:
2.1 准备分区
#fdisk/dev/sdb DevicecontainsneitheravalidDOSpartitiontable,norSun,SGIorOSFdisklabel BuildinganewDOSdisklabelwithdiskidentifier0xa17a3b70. Changeswillremaininmemoryonly,untilyoudecidetowritethem. Afterthat,ofcourse,thepreviouscontentwon'tberecoverable. Warning:invalidflag0x0000ofpartitiontable4willbecorrectedbyw(rite) WARNING:DOS-compatiblemodeisdeprecated.It'sstronglyrecommendedto switchoffthemode(command'c')andchangedisplayunitsto sectors(command'u'). Command(mforhelp):n Commandaction eextended pprimarypartition(1-4) p Partitionnumber(1-4):1 Firstcylinder(1-2610,default1): Usingdefaultvalue1 Lastcylinder,+cylindersor+size{K,M,G}(1-2610,default2610):+8G Command(mforhelp):n Commandaction eextended pprimarypartition(1-4) p Partitionnumber(1-4):2 Firstcylinder(1046-2610,default1046): Usingdefaultvalue1046 Lastcylinder,+cylindersor+size{K,M,G}(1046-2610,default2610):+8G Command(mforhelp):p Disk/dev/sdb:21.5GB,21474836480bytes 255heads,63sectors/track,2610cylinders Units=cylindersof16065*512=8225280bytes Sectorsize(logical/physical):512bytes/512bytes I/Osize(minimum/optimal):512bytes/512bytes Diskidentifier:0xa17a3b70 DeviceBootStartEndBlocksIdSystem /dev/sdb111045839393183Linux /dev/sdb2104620908393962+83Linux Command(mforhelp):t Partitionnumber(1-4):1 Hexcode(typeLtolistcodes):8e Changedsystemtypeofpartition1to8e(LinuxLVM) Command(mforhelp):t Partitionnumber(1-4):2 Hexcode(typeLtolistcodes):8e Changedsystemtypeofpartition2to8e(LinuxLVM) Command(mforhelp):p Disk/dev/sdb:21.5GB,21474836480bytes 255heads,63sectors/track,2610cylinders Units=cylindersof16065*512=8225280bytes Sectorsize(logical/physical):512bytes/512bytes I/Osize(minimum/optimal):512bytes/512bytes Diskidentifier:0xa17a3b70 DeviceBootStartEndBlocksIdSystem /dev/sdb11104583939318eLinuxLVM /dev/sdb2104620908393962+8eLinuxLVM Command(mforhelp):w Thepartitiontablehasbeenaltered! Callingioctl()tore-readpartitiontable. Syncingdisks.
2.2 创建逻辑卷并格式化
#pvcreate/dev/sdb{1,2} Physicalvolume"/dev/sdb1"successfullycreated Physicalvolume"/dev/sdb2"successfullycreated #vgcreatemyvg/dev/sdb{1,2} Volumegroup"myvg"successfullycreated #lvcreate-L10G-nmylvmyvg Logicalvolume"mylv"created #lvs LVVGAttrLSizePoolOriginData%MoveLogCpy%SyncConvert lv_homeVolGroup-wi-ao----65.57g lv_rootVolGroup-wi-ao----50.00g lv_swapVolGroup-wi-ao----3.94g mylvmyvg-wi-a-----10.00g #mke2fs-text4-b2049-LMYDATA/dev/myvg/mylv
2.3 挂载逻辑卷到/mydata
#mkdir/mydata #echo'LABEL=MYDATA/mydataext4defaults00'>>/etc/fstab #mount-a
2.4 创建mysql用户,创建mysql数据目录/mydata/data并修改data目录的属主属组均为mysql
#useradd-rmysql #mkdir/mydata/data #chown-Rmysql:mysql/mydata/data #df-lh/mydata/data/ FilesystemSizeUsedAvailUse%Mountedon /dev/mapper/myvg-mylv9.9G77M9.3G1%/mydata
3.建立编译环境及mysql编译安装时选项说明
3.1. mysql-5.6.17编译时常用选项
MySQL自5.5版本以后编译需要使用cmake,cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
下表列出了常用编译工具的调用语法和等效的CMake命令。“.”表示你当前的工作目录路径,请根据你所在的目录,适当的替换掉路径“.”
./configure命令 | CMake命令 | |
./configure | cmake . | |
./configure --help | cmake . -LH or ccmake . | |
在重新配置或重新构建之前,需要先清除旧的对象文件和缓存信息,方法如下: | ||
make命令 | cmake命令 | |
makeclean rmconfig.cache |
makeclean rmCMakeCache.txt |
|
安装参数选项 | ||
在下表中,“CMAKE_INSTALL_PREFIX”的值表示的是安装根目录,其他参数值的路径都是相对于根目录的,当然你也可以直接使用绝对路径,具体如下: | ||
参数值说明 | CMak选项 | |
安装根目录 | -DCMAKE_INSTALL_PREFIX=/usr | |
mysqld目录 | -DINSTALL_SBINDIR=sbin | |
数据存储目录 | -DMYSQL_DATADIR=/mydata/data | |
配置文件(my.cnf)目录 | -DSYSCONFDIR=/etc/mysql | |
插件目录 | -DINSTALL_PLUGINDIR=lib64/mysql/plugin | |
手册文件目录 | -DINSTALL_MANDIR=share/man | |
共享数据目录 | -DINSTALL_SHAREDIR=share | |
Library库目录 | -DINSTALL_LIBDIR=lib64/mysql | |
Header安装目录 | -DINSTALL_INCLUDEDIR=include/mysql | |
信息文档目录 | -DINSTALL_INFODIR=share/info | |
指定安装文件的安装路径时常用的选项: -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等,则可使用类似如下选项来实现编译时使用某库或不使用某库 | ||
readline库 | -DWITH_READLINE=1 | |
SSL库 | -DWITH_SSL=system | |
zlib库 | -DWITH_ZLIB=system | |
libwrap库 | -DWITH_LIBWRAP=0 | |
其它常用的选项: | ||
选项 | 说明 | |
-DMYSQL_TCP_PORT=3306 | ||
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock | ||
-DENABLED_LOCAL_INFILE=1 | ||
-DEXTRA_CHARSETS=all | ||
-DDEFAULT_CHARSET=utf8 | ||
-DDEFAULT_COLLATION=utf8_general_ci | ||
-DWITH_DEBUG=0 | ||
-DENABLE_PROFILING=1 |
3.2 安装编译工具cmake:
#yum-yinstallcmake
4. 编译安装及初始化
4.1. 编译安装:
#tar-xvfmysql-5.6.17.tar.gz&&cdmysql-5.6.17 #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 #make&&makeinstall
4.2. 修改mysql安装目录的属主和属组属主为root,属组mysql
#cd/usr/local/mysql/ #chown-R.mysql.
4.3. 为mysql提供主配置文件
#cpsupport-files/my-default.cnf/etc/my.cnf #vi/etc/my.cnf datadir=/mydata/data#添加
4.4. 为mysql提供sysv服务脚本
#cpsupport-files/mysql.server/etc/rc.d/init.d/mysqld #chmod+x/etc/rc.d/init.d/mysqld
4.5. 添加至服务列表
#chkconfig--addmysqld #chkconfig--listmysqld mysqld0:off1:off2:on3:on4:on5:on6:off
4.6. 输出mysql的man手册至man命令的查找路径
#vim/etc/man.config MANPATH/usr/local/mysql/man#添加
4.7. 输出mysql的头文件至系统头文件路径/usr/include
#ln-sv/usr/local/mysql/include//usr/include/mysql
4.8. 输出mysql的库文件到系统库查找路径
#echo'/usr/local/mysql/lib'>/etc/ld.so.conf.d/mysql.conf #ldconfig-v|grepmysql
4.9. 改PATH环境变量,让系统可以直接使用mysql的相关命令
#echo'exportPATH=/usr/local/mysql/bin:$PATH'>/etc/profile.d/mysqld.sh&&source/etc/profile #echo$PATH
4.10.初始化数据库
#scripts/mysql_install_db--user=mysql--datadir=/mydata/data
4.11.启动数据库并测试
#servicemysqldstart StartingMySQL.....SUCCESS
登录测试:
#mysql-uroot-p-Dmysql#登录数据库 -u:用户名 -p:密码 -D:默认打开的数据库 mysql>SELECThost,user,passwordFROMuser;#查看授权表 +-----------------------+------+----------+ |host|user|password| +-----------------------+------+----------+ |localhost|root|| |localhost.localdomain|root|| |127.0.0.1|root|| |::1|root|| |localhost||| |localhost.localdomain||| +-----------------------+------+----------+ 6rowsinset(0.00sec)