热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql5.5重新编译_mysql5.5编译详解

说明:蓝色命令名称浅绿命令参数浅蓝选项紫色目录系统环境:CentOS5.7x86_64一、安装简介用户名:mysql安装目录:

说明:蓝色=命令名称

浅绿=命令参数

浅蓝=选项

紫色=目录

系统环境:CentOS  5.7 x86_64

一、安装简介

用户名:mysql安装目录:/usr/local/mysql-5.5.20数据库目录:/data/mysql/data源码包:mysql-5.5.21.tar.gz

二、安装准备

添加用户

useradd -s/sbin/nologin mysql

建立所需目录

mkdir-p/data/mysql/datachown -R mysql:mysql/data/mysql

安装编译所需文件或程序

yuminstallgcc gcc-c++ cmake  ncurses-devel bison

三、编译安装

cd/usr/local/srctarxvf mysql-5.5.21.tar.gzcdmysql-5.5.21

CFLAGS="-O3" CXX=gccCXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti"cmake-DMYSQL_USER=mysql \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.21 \

-DMYSQL_DATADIR=/data/mysql/data \

-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \

-DEXTRA_CHARSETS=all \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EMBEDDED_SERVER=1  \

-DWITH_DEBUG=0注:详细参数见下文补充内容。

make-j2 && make install注:-j 用来指定CPU核心数,可加快编译速度,不加也可以。

chown-R mysql:mysql/usr/local/mysql-5.5.21/

mv/usr/local/src/mysql-5.5.21/support-files/my-large.cnf /etc/my.cnf注:在/usr/local/src/mysql-5.5.21/support-files/文件夹中有多个my-****.cnf 配置文件,具体用那一个配置文件根据自己实际情况。可以通过查看配置文件的头部信息来了解配置问价适合的配置。例如[root@localhost support-files]# head /usr/local/src/mysql-5.5.21/support-files/my-huge.cnf

# Example MySQL config file for very large systems.

#

# This is for a large system with memory of 1G-2G where the system runs mainly

# MySQL.

mv/usr/local/src/mysql-5.5.21/support-files/mysql.server /etc/init.d/mysqldchmod+x/etc/init.d/mysqldchkconfig--level 345mysqldon

/usr/local/mysql-5.5.21/scripts/mysql_install_db--user=mysql \

--defaults-file=/etc/my.cnf \

--basedir=/usr/local/mysql-5.5.21/ \

--datadir=/data/mysql/data/

echo"export PATH=/usr/local/mysql-5.5.21/bin:$PATH">>/etc/profilesource/etc/profile

补充:

从mysql5.5起,mysql源码安装开始使用cmake。下面是 mysql 5.5 与以前的参数对照:configure Command

CMake Command

./configure

cmake .

./configure --help

cmake . -LH or ccmake .

Parameter

configure Option

CMake Option

CMake Notes

Installation base directory

--prefix=/usr

-DCMAKE_INSTALL_PREFIX=/usr

mysqld directory

--libexecdir=/usr/sbin

-DINSTALL_SBINDIR=sbin

interpreted relative to prefix

Data directory

--localstatedir=/var/lib/mysql

-DMYSQL_DATADIR=/var/lib/mysql

Config directory (for my.cnf)

--sysconfdir=/etc/mysql

-DSYSCONFDIR=/etc/mysql

Plugin directory

--with-plugindir=/usr/lib64/mysql/plugin

-DINSTALL_PLUGINDIR=lib64/mysql/plugin

interpreted relative to prefix

Man page directory

--mandir=/usr/share/man

-DINSTALL_MANDIR=share/man

interpreted relative to prefix

Shared-data directory

--sharedstatedir=/usr/share/mysql

-DINSTALL_SHAREDIR=share

this is where aclocal/mysql.m4 should be installed

Library installation directory

--libdir=/usr/lib64/mysql

-DINSTALL_LIBDIR=lib64/mysql

interpreted relative to prefix

Header installation directory

--includedir=/usr/include/mysql

-DINSTALL_INCLUDEDIR=include/mysql

interpreted relative to prefix

Info doc directory

--infodir=/usr/share/info

-DINSTALL_INFODIR=share/info

interpreted relative to prefix

Parameter

configure Option

CMake Option

CMake Notes

readline library

--with-readline

-DWITH_READLINE=1

SSL library

--with-ssl=/usr

-DWITH_SSL=system

zlib library

--with-zlib-dir=/usr

-DWITH_ZLIB=system

libwrap library

--without-libwrap

-DWITH_LIBWRAP=0

Parameter

configure Option

CMake Option

CMake Notes

TCP/IP port number

--with-tcp-port-=3306

-DMYSQL_TCP_PORT=3306

UNIX socket file

--with-unix-socket-path=/tmp/mysqld.sock

-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock

Enable LOCAL for LOAD DATA

--enable-local-infile

-DENABLED_LOCAL_INFILE=1

Extra charsets

--with-extra-charsets=all

-DEXTRA_CHARSETS=all

default is "all"

Default charset

--with-charset=utf8

-DDEFAULT_CHARSET=utf8

Default collation

--with-collation=utf8_general_ci

-DDEFAULT_COLLATION=utf8_general_ci

Build the server

--with-server

none

Build the embedded server

--with-embedded-server

-DWITH_EMBEDDED_SERVER=1

libmysqld privilege control

--with-embedded-privilege-control

none

always enabled?

Install the documentation

--without-docs

none

Big tables

--with-big-tables, --without-big-tables

none

tables are big by default

mysqld user

--with-mysqld-user=mysql

-DMYSQL_USER=mysql

mysql is the default

Debugging

--without-debug

-DWITH_DEBUG=0

default is debugging disabled

GIS support

--with-geometry

none

always enabled?

Community features

--enable-community-features

none

always enabled

Profiling

--disable-profiling

-DENABLE_PROFILING=0

enabled by default

pstack

--without-pstack

none

pstack is removed

Assembler string functions

--enable-assembler

none

Build type

--build=x86_64-pc-linux-gnu

no equivalent

unneeded?

Cross-compile host

--host=x86_64-pc-linux-gnu

no equivalent

unneeded?

Client flag

--with-client-ldflags=-lstdc++

none

unneeded

Client flag

--enable-thread-safe-client

none

unneeded, clients are always thread safe

Comment

--with-comment='string'

-DWITH_COMMENT='string'

Shared/static binaries

--enable-shared --enable-static

none

there is only DISABLE_SHARED

Memory use

--with-low-memory

none

unneeded

1. 命令语法:

重新编译时,需要清除旧的对象文件和缓存信息

# make clean

# rm -f  CMakeCache.txt

2.安装选项

CMAKE_INSTALL_PREFIX值是安装的基本目录,其他cmake选项值是不包括前缀,是相对路径名,绝对路径包括CMAKE_INSTALL_PREFIX路径。如-DINSTALL_SBINDIR=sbin的绝对路径是/usr/local/mysql/sbin

3.存储引擎选项

mysql存储引擎是插件式的,因此插件控制选项可以指定那个存储引擎安装。

configure编译插件选项--with-plugins=csv,myisam,myisammrg,heap,innobase,

archive,blackhole在cmake中没有直接对应的相同选项。对于csv,myisam,myisammrg,heap在cmake中是不需要明确指定存储引擎的名称,因为它们是强制性安装。

可以使用以下选择来安装innodb,archive,blackhole存储引擎

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

(1可以使用on代替)

如果既不是-DWITH__STORAGE_ENGINE 也不是 -DWITHOUT__STORAGE_ENGINE 来指定存储引擎,该存储引擎将安装成共享模块式的。如果不是共享模块式的将排除在外。共享模块安装时必须使用INSTALL PLUGIN语句或--plugin-load才可以使用。

4.其他选项

之前MySQL的编译选项大多数都支持。新旧版本之间的安装选项映射成大写字母,删除选项前面破折号,中间字符间的破折号替换成下划线。如:

--with-debug => WITH_DEBUG=1

--with-embedded-server => WITH_EMBEDDED_SERVER

5.调试配置过程

使用configure编译完将生成config.log和config.status文件。

使用cmake编译完在CMakeFiles目录下生成CMakeError.log 和CMakeOutput.log文件。

编译参数参考:

BUILD_CONFIG   采用官方发行版一致的编译参数

CMAKE_BUILD_TYPE 指定产品编译说明信息   RelWithDebInf

CMAKE_INSTALL_PREFIX 指定MySQL安装路径  /usr/local/mysql

CPACK_MONOLITHIC_INSTALL是否建立单个安装包文件 OFF   5.5.7

DEFAULT_CHARSET  MYSQL 默认字符集  latin1   5.5.7

DEFAULT_COLLATION MYSQL 默认排序字符集  latin1_swedish_ci 5.5.7

ENABLE_DEBUG_SYNC 是否启用同步调试功能  ON   5.5.7

ENABLE_DOWNLOADS 是否下载可选文件  OFF   5.5.7

ENABLE_DTRACE  是否包含 DTrace 支持     5.5.7

ENABLE_GCOV  是否包含 Gcov 支持     5.5.14

ENABLED_LOCAL_INFILE 是否启用本地 LOAD DATA INFILE OFF   5.5.7

ENABLED_PROFILING 是否启用代码查询分析  ON   5.5.7

INSTALL_BINDIR  MySQL 主执行文件目录  PREFIX/bin  5.5.7

INSTALL_DOCDIR  文档安装路径   PREFIX/docs  5.5.7

INSTALL_DOCREADMEDIR 自述文件目录   PREFIX   5.5.7

INSTALL_INCLUDEDIR 头文件目录   PREFIX/include  5.5.7

INSTALL_INFODIR  关于信息文件目录  PREFIX/docs  5.5.7

INSTALL_LAYOUT  选择预定义的安装  STANDALONE  5.5.7

INSTALL_LIBDIR  库文件目录   PREFIX/lib  5.5.7

INSTALL_MANDIR  手册页面目录   PREFIX/man  5.5.7

INSTALL_MYSQLSHAREDIR 共享数据目录   PREFIX/share  5.5.7

INSTALL_MYSQLTESTDIR mysql-test 目录   PREFIX/mysql-test 5.5.7

INSTALL_PLUGINDIR 插件目录   PREFIX/lib/plugin 5.5.7

INSTALL_SBINDIR  服务器超级用户执行文件目录 PREFIX/bin  5.5.7

INSTALL_SCRIPTDIR 脚本目录   PREFIX/scripts  5.5.7

INSTALL_SHAREDIR aclocal/mysql.m4 安装目录 PREFIX/share  5.5.7

INSTALL_SQLBENCHDIR sql-bench 性能测试工具目录 PREFIX   5.5.7

INSTALL_SUPPORTFILESDIR 扩展支持文件目录  PREFIX/support-files 5.5.7

MYSQL_DATADIR  数据库存放目录      5.5.7

MYSQL_MAINTAINER_MODE 是否启用MySQL的维护环境  OFF   5.5.7

MYSQL_TCP_PORT  TCP/IP 端口号   3306   5.5.7

MYSQL_UNIX_ADDR  Unix Socket 套接字文件  /tmp/mysql.sock  5.5.7

SYSCONFDIR  选项配置文件目录     5.5.7

WITH_COMMENT  编译环境发表评论     5.5.7

WITH_DEBUG  是否包括调试支持  OFF   5.5.7

WITH_EMBEDDED_SERVER 是否要建立嵌入式服务器  OFF   5.5.7

WITH_xxx_STORAGE_ENGINE 静态编译xxx 存储引擎到服务器    5.5.7

WITH_EXTRA_CHARSETS 额外的字符集,包括  all   5.5.7

WITH_LIBWRAP  是否包括支持libwrap(TCP包装) OFF   5.5.7

WITH_READLINE  使用捆绑的readline  OFF   5.5.7

WITH_SSL  是否支持SSL  no   5.5.7

WITH_ZLIB  是否支持Zlib  system   5.5.7

WITHOUT_xxx_



推荐阅读
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 本文介绍了GTK+中的GObject对象系统,该系统是基于GLib和C语言完成的面向对象的框架,提供了灵活、可扩展且易于映射到其他语言的特性。其中最重要的是GType,它是GLib运行时类型认证和管理系统的基础,通过注册和管理基本数据类型、用户定义对象和界面类型来实现对象的继承。文章详细解释了GObject系统中对象的三个部分:唯一的ID标识、类结构和实例结构。 ... [详细]
  • PG12新增的VACUUM命令的SKIP_LOCKED选项
    PG12版本的VACUUM命令新增了SKIP_LOCKED选项,该选项使得vacuum命令在遇到被lock住的table时可以跳过并被视为成功执行。之前的版本中,vacuum命令会一直处于等待状态。本文还提到了PostgreSQL 12.1版本的相关信息。 ... [详细]
  • 本文介绍了解决二叉树层序创建问题的方法。通过使用队列结构体和二叉树结构体,实现了入队和出队操作,并提供了判断队列是否为空的函数。详细介绍了解决该问题的步骤和流程。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • PeopleSoft安装镜像版本及导入语言包的方法
    本文介绍了PeopleSoft安装镜像的两个版本,分别是VirtualBox虚拟机版本和NativeOS版本,并详细说明了导入语言包的方法。对于Windows版本,可以通过psdmt.exe登录进入,并使用datamover脚本导入语言包。对于Linux版本,同样可以使用命令行方式执行datamover脚本导入语言包。导入语言包后,可以实现多种语言的登录。参考文献提供了相关链接以供深入了解。 ... [详细]
  • PatchODAX8: ... [详细]
author-avatar
choojo深呼吸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有