编译安装mysql(Ubuntu10 64位)

选用较好的编译器和较好的编译器选项,这样应用可提高性能10-30%,这个对大多数程序都非常重要

Mysql的编译,不同的版本具体的配置方式是有差别的

旧版的配置形式参考

这个形式主要是使用configure,具体参考

http://www.cnblogs.com/hemhem/archive/2011/03/14/2087481.html 

http://blog.csdn.net/bing19880122/article/details/5830650 

http://flyingdutchman.iteye.com/blog/1901149 

 MySQL cMake 新老参数对比及 cMake 配置及安装方法详解 http://waynerqiu.com/7/153.html  

新版Cmake形式的配置

http://www.cmake.org/

http://www.cnblogs.com/2018/p/3091616.html

 

mysql配置

http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html

http://dev.mysql.com/doc/refman/5.6/en/environment-variables.html

环境变量和CMAKE配置结合可以进行配置

如下是一个实例

#CMAKE_BUILD_TYPE Debug:-g Release:-O2 RelWithDebInfo:-O2 -g MinSizeRel:-Os

#WITH_EMBEDDED_SERVER  Whether to build the libmysqld embedded server library.

#WITH_PARTITION_STORAGE_ENGINE 表分区

#-DWITH_ASAN=1 \ #must gcc > 4.5 参考4.8.2

#DENABLE_DOWNLOADS google MOCK test

cmake . \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DCMAKE_BUILD_TYPE=Release \

-DSYSCONFDIR=/etc \

-DINSTALL_SBINDIR=/usr/local/mysql/bin \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_TCP_PORT=3306 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EMBEDDED_SERVER=0 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=0 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=0 \

-DWITH_MEMORY_STORAGE_ENGINE=0 \

-DWITH_PERFSCHEMA_STORAGE_ENGINE=0 \

-DWITH_EXTRA_CHARSETS=none \

-DWITH_DEBUG=0 \

# -DWITH_ASAN=1 \

# -DENABLE_DOWNLOADS=0 \

  

#end of cmake

注意-DWITH_ASAN=1这个选项需要GCC的版本在4.5以上,而Ubuntu10上默认的GCC是4.4

 

GCC编译升级过程

http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.gz 从这下载GCC

使用如下的脚本可以进行升级

 

#!/bin/bash

# gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) 

:<<EOF

ftp://gcc.gnu.org/pub/gcc/infrastructure/

GNU Multiple Precision Library (GMP) version 4.3.2 (or later)

MPFR Library version 2.4.2 (or later)

MPC Library version 0.8.1 (or later)

EOF

 

gccver=4.8.2

gmpver=4.3.2

mpfrver=2.4.2

mpcver=0.8.1

# where you put the downloaded source packages

pkgdir=.

 

# where you will build gcc

rootdir=gcc-${gccver}

# where you want to install gcc

prefix=/opt/gcc-${gccver}

# the languages you want gcc to support

langs=c,c++

 

#0 unpack file

:<<EOF

#Create a new directory on a disk with plenty of space and unpack the sources there:

mkdir -p ${rootdir}

tar xzf ${pkgdir}/gcc-${gccver}.tar.gz

tar xjf ${pkgdir}/gmp-${gmpver}.tar.bz2

tar xjf ${pkgdir}/mpfr-${mpfrver}.tar.bz2

tar xzf ${pkgdir}/mpc-${mpcver}.tar.gz

#Next, move the prerequisite sources into the gcc source directory:

mv gmp-${gmpver}   ${rootdir}/gmp

mv mpfr-${mpfrver} ${rootdir}/mpfr

mv mpc-${mpcver}   ${rootdir}/mpc

EOF

 

#两种方式的编译和安装

#1.1 build on source  dir

pushd ${rootdir}

#make clean

#默认的gcc支持32/64的双编译 gcc.gnu.org/wiki/FAQ#gnu_stubs-32.h  glibc-devel-32bit 或 --disable-multilib

./configure --prefix=${prefix} --enable-languages=${langs} --disable-multilib

 

make

make install

 

popd

 

#1.2 build on other dir

:<<EOF

#Now create a build directory and change to it

mkdir -p objdir

cd objdir

 

#Now configure gcc:

mkdir -p ${prefix} 

../${rootdir}/configure --prefix=${prefix} --enable-languages=${langs} --disable-multilib

#configure --prefix=/opt/gcc-4.8.2 --enable-languages=c,c++

 

#Now build gcc:

make

 

#Finally, install gcc:

 make install

#fixincludes 目录没有拷贝的问题,估计是--disable-multilib

cd ..

EOF

 

###代码+编译文件 2.6G

 

#2 更改当前的默认 #具体可检索"更改Ubuntu gcc、g++默认编译器版本"

#修改默认gcc和g++为4.4的版本

sudo update-alternatives --remove-all gcc

sudo update-alternatives --remove-all g++

sudo update-alternatives --install /usr/bin/gcc gcc /opt/gcc-4.8.2/bin/gcc 40

sudo update-alternatives --install /usr/bin/g++ g++ /opt/gcc-4.8.2/bin/g++ 40

#配置默认的gcc和g++

sudo update-alternatives --config gcc

sudo update-alternatives --config g++

 

#3 系统的C++库覆盖

rm -f /usr/lib/libstdc++*

cp -f /opt/gcc-4.8.2/lib64/libstdc++.so.6.0.18 /usr/lib/.

cp -f /opt/gcc-4.8.2/lib64/libstdc++.so.6 /usr/lib/.

 

注意其中的--disable-multilib这个选项需要加上,因此默认的gcc是可以在64为平台上编译出32,64两种程序,因此编译版的gcc升级时就需要32位的头文件,如果没有安装的话,这个是无法编译的。

 

当然也有一些简化的方式,需要联网升级,如下的这个说明

http://www.qtcn.org/bbs/apps.php?q=diary&a=detail&did=1456&uid=139371

编译安装

此时就可以加上 -DWITH_ASAN=1 \ 进行编译了

 

注意:为了提高性能,我们只需要编译需要的功能即可

 

成功后的安装,就非常简单了,类似如下的脚本过程

make install

#sudo cp -f my.cnf /etc/my.cnf

#sudo chmod 0444 /etc/my.cnf

sudo sh -c 'groupadd mysql'

sudo sh -c 'useradd -r -g mysql mysql'

sudo chown -R mysql /usr/local/mysql/data

sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

#sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

/usr/local/mysql/support-files/mysql.server start

login="/usr/local/mysql/bin/mysql -uroot -D mysql -e"

pass="/usr/local/mysql/bin/mysql -uroot -p123456 -D mysql -e"

${login} "update mysql.user set password=PASSWORD('123456') where user='root';"

${login} "flush privileges;"

 

 

详细的资料和脚本参考  http://pan.baidu.com/s/1Cc7cr 

Gcc版本切换的脚本

由于新版的gcc的支持了C++11标准,默认要求差别较大,如果现有的工程需要低的版本的话,可以使用如下的形式对系统的gcc进行自动切换

#!/bin/bash

 

if [ $# = 1 ] ; then

#4.4 目前的Ubuntu10都是gcc 4.4

#修改默认gcc和g++

sudo update-alternatives --remove-all gcc

sudo update-alternatives --remove-all g++

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 40

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.4 40

#配置默认的gcc和g++

sudo update-alternatives --config gcc

sudo update-alternatives --config g++

 

#系统的C++库覆盖 gcc 4.4

# rm -f /usr/lib/libstdc++*

# cp -f gcc4.4/libstdc++.so.6.0.13 /usr/lib/.

# ln -s /usr/lib/libstdc++.so.6.0.13 /usr/lib/libstdc++.so.6 

else

#4.8

#gcc-4.8.2.tar.gz 安装到/opt

if [ -d /opt/gcc-4.8.2 ]; then

echo "gcc 4.8.2 installed"

else

tar xzf gcc-4.8.2.tar.gz -C /opt

fi

#修改默认gcc和g++

sudo update-alternatives --remove-all gcc

sudo update-alternatives --remove-all g++

sudo update-alternatives --install /usr/bin/gcc gcc /opt/gcc-4.8.2/bin/gcc 40

sudo update-alternatives --install /usr/bin/g++ g++ /opt/gcc-4.8.2/bin/g++ 40

#配置默认的gcc和g++

sudo update-alternatives --config gcc

sudo update-alternatives --config g++

 

#系统的C++库覆盖

# rm -f /usr/lib/libstdc++*

# cp -f /opt/gcc-4.8.2/lib64/libstdc++.so.6.0.18 /usr/lib/.

# cp -f /opt/gcc-4.8.2/lib64/libstdc++.so.6 /usr/lib/.

fi

 

#libstdc++.so.6 经试验选用高的libstdc++.so.6.0.18版本可以运行,具体都我们的应用有没有问题待验证

 

gcc -v

参考资料

这里有如上的相关资料和内容 http://pan.baidu.com/s/1Cc7cr

 

http://www.cnblogs.com/2018/p/3482263.html

http://www.cnblogs.com/2018/p/3464638.html

这两篇已经介绍了clang的安装和编译c++库的过程,下面会再讲讲mysql的clang编译安装过程

时间: 2024-10-30 02:53:56

编译安装mysql(Ubuntu10 64位)的相关文章

clang LLVM 介绍和安装(Ubuntu10 64位)

http://www.csdn.net/article/2013-11-27/2817632 的对Stanley B.Lippman采访提到clang的一些优点,以前程序员杂志也写过,为了提高系统的性能决定试试. clang的优点有很多的资料介绍,经过试用简要总结几点 1 速度开 2 C++11支持好 3 编译严格,出错信息比gcc明确 ... C++11http://product.china-pub.com/3801275 深入理解C++11:C++11新特性解析与应用https://www

clang编译mysql(Ubuntu10 64位)

编译安装mysql(Ubuntu10 64位) http://www.cnblogs.com/2018/p/3482259.html 这个介绍了gcc形式编译安装mysql 那我们使用clang进行编译一下看看具体的效果 编译安装mysql(Ubuntu10 64位) 已经描述了mysql的编译安装情况,由于clang的性能比较高,现在实验一下mysql的clang编译 经试验,主要解决如下的问题即可 v ABI_CHECK n 这个问题表现是配置完成后,编译时会出现ABI的报错,google了

环境-有关于openkinect的驱动安装到win7 64位系统上的问题

问题描述 有关于openkinect的驱动安装到win7 64位系统上的问题 由于openframeworks有关于ofxkinect的部分调用的驱动并不是openni而且openkinect,而openkinect则是在linux下应用比较多,在win7下应用比较少,但也并未说明不可以在64的系统上使用. 在下载后,试了下环境的配置,发现文件中提供的Xbox_nui_motor.inf并不是一个有效的驱动程序. 想知道这个问题如何解决 解决方案 这种的驱动都是向下兼容的,你说的问题没碰见过,可

源码编译安装 MySQL 5.5.x 实践(转)

1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz # tar zxvf cmake-2.8.4.tar.gz # cd cmake-2.8.4 # ./configure# make# make install 2.确保以下所需系统软件包已经被安装通过

CentOS 6.0中编译安装MySQL v5.1.59步骤详解

以下内容基于CentOS 6.0操作系统,MySQL安装版本为v5.1.59,下面我们详细的通过命令形式来说明如何进行编译与安装MySQL. 编译安装mysql cd /usr/local/src tar zxvf mysql-5.1.59.tar.gz cd mysql-5.1.59 ./configure --prefix=/usr/local/mysql&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;--lo

Centos6.5编译安装mysql 5.7.14 详细教程_Mysql

本文实例为大家分享了CENTOS6.5 编译mysql 5.7.14安装配置方法,供大家参考,具体内容如下 mysql5.7.14 编译安装在自定义文件路径下 下载安装包 配置安装环境 编译安装 cmake\ -DCMAKE_INSTALL_PREFIX=/data/db5714 \ -DMYSQL_DATADIR=/data/db5714/var \ -DMYSQL_UNIX_ADDR=/data/db5714/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \

centos下编译安装mysql报错解决方案_java

今天在centos6.2下面源码编译安装mysql的时,在编译mysql的时候报了一个蛋蛋的错误: 复制代码 代码如下: [root@vps870 mysql-5.5.28]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ > -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ > -DDEFAULT_CHARSET=gbk \ > -DDEFAULT_COLLATION=gbk_chinese_ci \ > -

Ubuntu16.04 通过源码编译安装 MySQL 5.7.17

参考: ubuntu16.04 编译安装mysql5.7.x,以及配置使用 http://www.cnblogs.com/xz1024/p/5802637.html MySQL root密码重置报错:mysqladmin: connect to server at 'localhost' failed的解决方案! http://blog.csdn.net/mchdba/article/details/10630701 http://www.2cto.com/database/201309/240

Centos6.5 编译安装mysql 5.6.16 详细教程_Mysql

一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从http://www.cmake.org下载源码并编译安装 wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz tar -xzvf cmake-2.8.10.2.tar.gz cd cmake-2.8.10.2 ./bootstrap ; make ; make i

Linux系统下自行编译安装MySQL及基础配置全过程解析_Mysql

安装依赖: CentOS: # yum -y install wget gcc-c++ cmake make bison ncurses-devel perl unzip Ubuntu:(使用ubuntu下面有不少需要root权限,请注意) 复制代码 代码如下: # sudo apt-get install -y g++ gcc make libpcre3 zlib1g libbz2-dev automake cmake perl libncurses5-dev bison 添加MySQL系统用