源码编译MySQL5.6.24
2015-07-28 12:59
716 查看
首先准备编译环境
一、编译安装cmake,先同步一下时间在解压安装
![](https://img-blog.csdn.net/20150728122309445)
![](https://img-blog.csdn.net/20150728122258380)
![](https://img-blog.csdn.net/20150728122309222)
![](https://img-blog.csdn.net/20150728122517178)
![](https://img-blog.csdn.net/20150728122558873)
cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
二、编译安装mysql-5.6.24
1、使用cmake编译mysql-5.6.24
cmake指定编译选项的方式不同于make,下表列出了常用编译工具的调用语法和等效的CMake命令;“.”表示你当前的工作目录路径,一般切换到源码目录下执行。
![](https://img-blog.csdn.net/20150728122705922)
指定安装文件的安装路径时常用的选项:“CMAKE_INSTALL_PREFIX”的值表示的是安装根目录,其他参数值的路径都是相对于根目录的,当然也可以直接使用绝对路径
![](https://img-blog.csdn.net/20150728123112964)
默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:1可以使用on代替
若要明确指定不编译某存储引擎,可以使用类似如下的选项:
如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
其它常用的选项:
如果想清理此前的编译所生成的对象文件和缓存信息文件,则需要使用如下命令:
安装前的系统设置:准备mysql数据存放目录
![](https://img-blog.csdn.net/20150728123813946)
![](https://img-blog.csdn.net/20150728123822417)
![](https://img-blog.csdn.net/20150728123947769)
![](https://img-blog.csdn.net/20150728123957878)
创建用户和组,赋予数据存放目录权限
![](https://img-blog.csdn.net/20150728123915441)
解压mysql编译安装
![](https://img-blog.csdn.net/20150728124118151)
![](https://img-blog.csdn.net/20150728124357276)
![](https://img-blog.csdn.net/20150728124405403)
![](https://img-blog.csdn.net/20150728124413094)
![](https://img-blog.csdn.net/20150728124429771)
修改/usr/local/mysql属组为mysql
![](https://img-blog.csdn.net/20150728124507616)
进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表
注:在CentOS 6.5版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
在使用”yum update”更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。
拷贝配置文件和启动脚本,设置开机自动启动
![](https://img-blog.csdn.net/20150728124626490)
![](https://img-blog.csdn.net/20150728130529769)
![](https://img-blog.csdn.net/20150728124758651)
MySQL启动成功后,需要先设置PATH环境变量,否则不能直接调用mysql
保存配置文件,运行下面的命令,让配置立即生效
![](https://img-blog.csdn.net/20150728124932890)
![](https://img-blog.csdn.net/20150728125022405)
Mysql默认安装完成后会生成5个用户,4个root@localhost/@hostname/@127.0.0.1
::1为ipv6 以及2个匿名用户@localhost/@hostname
匿名用户是系统不安全的因素,应当删除,并为root用户设定连接mysql的密码
![](https://img-blog.csdn.net/20150728125213435)
![](https://img-blog.csdn.net/20150728125222717)
Update执行结束后需要使用flush privileges重读授权表
![](https://img-blog.csdn.net/20150728125136848)
说明: MySQL的 系统在实现上比较简单,相关的权限信息主要存储在几个被称为grant tables的系统表中,即mysql.user,mysql.db,mysql.host,mysql.table_priv,mysql_priv;
由于权限信息的数据量比较小,访问又非常频繁,所以MySQL在启动的时候就会将所有的权限信息都加载到内存中,并保存在几个特定的结构中;这就使得每次手动修改了相关权限表之后,都必须要执行flush privileges,通知MySQL重新加载权限信息;当然如果通过grant,revoke,drop user命令来修改相关权限,则不需要手动执行flush privileges命令
确定开启每表一个独立的表空间文件;
![](https://img-blog.csdn.net/20150728125554456)
如果不想每次从本地登录mysql都要手动输入密码,可以在用户家目录下编译一个隐藏配置文件存放用户密码,即可直接使用mysql连接数据库,要确保其他人没有任何权限
![](https://img-blog.csdn.net/20150728130749245)
MyISAM每表三个文件:
.frm: 表结构
.MYD:表数据
.MYI:表索引
![](https://img-blog.csdn.net/20150728125226550)
InnoDB:默认所有表共享一个表空间文件;
.frm: 表结构
.ibd: 表空间(表数据和表索引)
.opt:定义默认字符集和排序规则
[root@DQ ~]# yum groupinstall "Server Platform Development" [root@DQ ~]# yum groupinstall "Development tools"
一、编译安装cmake,先同步一下时间在解压安装
cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
二、编译安装mysql-5.6.24
1、使用cmake编译mysql-5.6.24
cmake指定编译选项的方式不同于make,下表列出了常用编译工具的调用语法和等效的CMake命令;“.”表示你当前的工作目录路径,一般切换到源码目录下执行。
指定安装文件的安装路径时常用的选项:“CMAKE_INSTALL_PREFIX”的值表示的是安装根目录,其他参数值的路径都是相对于根目录的,当然也可以直接使用绝对路径
默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:1可以使用on代替
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_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 -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
安装前的系统设置:准备mysql数据存放目录
[root@DQ ~]# fdisk /dev/sda
创建用户和组,赋予数据存放目录权限
解压mysql编译安装
修改/usr/local/mysql属组为mysql
进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表
[root@DQ mysql]# scripts/mysql_install_db --user=mysql --datadir=/mnt/SQLData/
注:在CentOS 6.5版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
在使用”yum update”更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。
拷贝配置文件和启动脚本,设置开机自动启动
[root@DQ mysql]# vim /etc/my.cnf
MySQL启动成功后,需要先设置PATH环境变量,否则不能直接调用mysql
[root@DQ mysql]# cd /etc/profile.d/ [root@DQ profile.d]# vim mysql.sh export PATH=$PATH:/usr/local/mysql/bin
保存配置文件,运行下面的命令,让配置立即生效
Mysql默认安装完成后会生成5个用户,4个root@localhost/@hostname/@127.0.0.1
::1为ipv6 以及2个匿名用户@localhost/@hostname
匿名用户是系统不安全的因素,应当删除,并为root用户设定连接mysql的密码
Update执行结束后需要使用flush privileges重读授权表
说明: MySQL的 系统在实现上比较简单,相关的权限信息主要存储在几个被称为grant tables的系统表中,即mysql.user,mysql.db,mysql.host,mysql.table_priv,mysql_priv;
由于权限信息的数据量比较小,访问又非常频繁,所以MySQL在启动的时候就会将所有的权限信息都加载到内存中,并保存在几个特定的结构中;这就使得每次手动修改了相关权限表之后,都必须要执行flush privileges,通知MySQL重新加载权限信息;当然如果通过grant,revoke,drop user命令来修改相关权限,则不需要手动执行flush privileges命令
确定开启每表一个独立的表空间文件;
如果不想每次从本地登录mysql都要手动输入密码,可以在用户家目录下编译一个隐藏配置文件存放用户密码,即可直接使用mysql连接数据库,要确保其他人没有任何权限
[client] user=root password=mysql host=localhost
MyISAM每表三个文件:
.frm: 表结构
.MYD:表数据
.MYI:表索引
InnoDB:默认所有表共享一个表空间文件;
.frm: 表结构
.ibd: 表空间(表数据和表索引)
.opt:定义默认字符集和排序规则
相关文章推荐
- 从源码安装Mysql/Percona 5.5
- 使用 Syncthing 在多个设备间同步文件
- 在 AppImage、Flathub 和 Snapcraft 平台上搜索 Linux 应用
- 解决vc中unable to connect to the MKS:Internal error问题
- 杰奇一些安装详细说明文件,比官方更细
- Aut2Exe编译au3脚本为可执行文件
- 无线网卡安装DIY
- 网卡安装常见问题精解
- DB2数据库的安装
- CentOS下DB2数据库安装过程详解
- C#实现多线程的同步方法实例分析
- ghost安装系统软件硬盘安装器 安装ghost图文教程
- CentOS 6.3下编译安装Ruby 2.0笔记
- FREEBSD安装POSTGRESQL笔记
- Redis总结笔记(一):安装和常用命令
- FreeBSD 6.2 安装全程图解教程
- 把Lua编译进nginx步骤方法
- 安装Apache和PHP的一些补充