`

【转】编译安装MySQL

阅读更多

原文地址:http://www.orczhou.com/index.php/2010/06/compile-mysql-from-source/

 

使用rpm包,或者apt-get、yum等方式安装MySQL已经很方便了,不过我还是更喜欢编译安装。编译安装的好处:平台无关、安装的MySQL目录独立(方便清楚),据说有更好的性能和平台耦合。缺点,编译安装较慢(不过现在8核CPU编译起来也很快了)。

 

1. MySQL编译参数

 

常用的参数有:

 

CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors \
-fno-exceptions -fno-rtti" ./configure \
--prefix=/data/mysql --with-extra-charsets=latin1,gbk,utf8 \
--with-plugins=partition,heap,innobase,myisam,myisammrg,csv \
--enable-assembler
make
make install

 

“If you are using a version of gcc recent enough to understand the -fno-exceptions option, it is very important that you use this option. Otherwise, you may compile a binary that crashes randomly. Also use -felide-constructors and -fno-rtti along with -fno-exceptions.”

参考:MySQL Installation Using a Source Distribution

 

2. 多核编译

 

可以通过 -j 参数指定编译使用的CPU数量,之前一直没有注意使用这个选项,以下是对比测试:

 

$date && make > make.log 2>&1 && date
Fri Apr 16 16:32:00 CST 2010
Fri Apr 16 16:39:37 CST 2010

$date && make -j 8 > make.log 2>&1 && date
Fri Apr 16 16:27:10 CST 2010
Fri Apr 16 16:28:30 CST 2010

$date && make -j 15 > make.log 2>&1 && date
Fri Apr 16 16:50:23 CST 2010
Fri Apr 16 16:51:41 CST 2010

 

看到,单核编译花了457秒,八核编译花了80秒,十五核编译花了78秒。

 

3. 目录结构

 

最初安装MySQL,不用RPM包的另一个重要原因就是,编译安装我们可以获得相对独立的MySQL目录,包括Server、Client、Data File等都可以比较好的规划在一个目录中。

 

在编译时,使用--prefix=/data/mysql则可以保证,Server(mysqld_safe)、Client(mysql)等统一 在prefix所制定的目录下;在/etc/my.cnf文件中,我们再继续指定Data File目录、sock文件目录、pid文件目录、日志目录、tmp目录,这样基本上就保证了整个MySQL的独立性。

 

你甚至可以把/etc下的my.cnf文件都转移到prefix指定的目录下,这样你就拥有一个完整而且独立的MySQL目录了。

 

4. 需要注意的问题

 

一般编译安装之后,很多生成的脚本中都会写死目录(prefix指定的目录),这样编译好的脚本(二进制、shell、perl)如果转移到别的目录可能会导致无法运行。

 

例如,编译时指定prefix=/data/ mysql,如果最后你把编译好的文件转移到/opt/ mysql,很多脚本可能会无法运行,甚至会发生很多怪异的现象:-(

 

5. 安装实践 step by step

 

下面是将MySQL安装在/home/mysql目录下的一个实际操作过程,这里的prefix将指定目录/home/mysql/mysql(你可以根据需要修改为自己需要指定的位置)

 

# # # 新建运行MySQL的用户
groupadd dba
useradd -g dba mysql
cp mysql-5.0.86.tar.gz /home/mysql/
chown -R mysql:dba /home/mysql/mysql-5.0.86.tar.gz

# # # 开始编译、安装
su - mysql
tar zxvf /home/mysql/mysql-5.0.86.tar.gz
cd mysql-5.0.86
./configure \
--prefix=/home/mysql/mysql --with-extra-charsets=latin1,gbk,utf8 \
--with-plugins=partition,heap,innobase,myisam,myisammrg,csv
make -j 8 && make install   #-j 表示希望使用cpu核数

# # # 建立配置文件
cd /home/mysql/mysql
su - root
cp mysql/share/mysql/my-medium.cnf /etc/my.cnf
chown -R mysql:dba /etc/my.cnf

# # # 修改配置文件 配置数据文件、日志的路径
su - mysql
vi /etc/my.cnf
basedir = /home/mysql/mysql
datadir = /home/mysql/mysql/data
socket = /home/mysql/mysql/run/mysql.sock
log-error = /home/mysql/mysql/log/alert.log
log_slow_queries = /home/mysql/mysql/log/slow.log

mkdir log run data tmp

# # # 初始MySQL配置表(用户表 权限表等)
./bin/mysql_install_db --basedir=/home/mysql/mysql  --datadir=/home/mysql/mysql/data --user=mysql --force

# # # 启动MySQL
./bin/mysqld_safe &
 
分享到:
评论

相关推荐

    debian编译安装mysql5.7.35.txt

    debian编译安装mysql5.7.35.txt 编译安装更稳定! 每一行复制执行即可完成安装!

    MySQL8.0编译安装_MYSQL_

    以下是对MySQL8.0编译安装过程的详细概述: 一、系统要求与依赖库 在编译安装MySQL 8.0之前,你需要确保你的系统满足以下基本要求: 1. 操作系统:支持多种Linux发行版,如Ubuntu, CentOS, Red Hat等。 2. C++...

    CentOS编译安装MYSQL5.6.17

    - **配置与编译MySQL**:使用`cmake`进行配置并编译安装。 - **初始化MySQL服务**:包括数据目录的创建、权限设置以及启动服务。 - **配置MySQL**:修改配置文件以适应生产环境需求。 - **安全设置**:设置root用户...

    RHEL 7.6 源码编译安装Mysql 8.0.X.docx

    4. **安装MySQL**:使用`make install`命令将编译后的MySQL安装到指定的目录。 5. **初始化数据库**:创建数据目录,初始化MySQL数据库。 6. **配置系统启动脚本和服务**:编写启动脚本,添加到系统服务列表,以便...

    使用cmake编译安装mysql

    6. **安装**:使用`make install`命令将编译好的MySQL安装到系统指定的目录。你可能需要管理员权限。 7. **配置系统**:安装后,可能需要更新系统配置,如启动脚本、系统服务、环境变量等,以便MySQL能够正常运行。...

    mysql-5.7.18源码和connector C++源码在Linux在编译安装

    **MySQL 5.7.18源码编译安装** 1. **环境准备**:确保你是在Ubuntu 16.04环境下,该系统基于Debian,支持大多数开源软件的安装。你需要安装一些基本的开发工具,如`build-essential`,`cmake`,`libssl-dev`,`zlib...

    编译安装mysql-5.7.36.md

    编译安装mysql-5.7.36.md

    linux下编译安装mysql,apache,php文档

    - 进入包含MySQL安装文件的目录,例如`cd /opt`。 - 安装MySQL服务端:`rpm –ivh MySQL-server-5.14.9-l.glibc23.i386.rpm`。 - 启动MySQL服务:`mysqld_safe &`。 - 验证MySQL服务是否成功启动,可以使用以下...

    龙蜥anolis8系统安装mysql5.7

    MySQL安装后,一般需要进行安全设置,如设置root用户的密码,删除匿名用户,禁止root远程登录等。这可以通过执行`mysql_secure_installation`脚本来完成: ``` sudo bin/mysql_secure_installation ``` 9. **...

    Mysql编译安装Mysql编译安装

    首先,确保你的系统满足编译MySQL的基本需求,包括一个合适的C编译器,如GCC,以及其他必要的开发库。在Linux环境下,你可以通过`yum`或`apt-get`来安装这些依赖: ```bash # 对于CentOS/RHEL yum install gcc* # ...

    mysql自动编译安装

    编译成功后,使用`make install`将MySQL安装到指定位置。 5. **权限设置**:MySQL的数据目录通常需要特定的权限,可以使用`chown -R mysql:mysql /usr/local/mysql/data`来更改所有权。同时,设置目录权限,如`...

    RHEL6.2编译安装MySQL 5.6.16过程分享

    在本文中,我们将深入探讨如何在RHEL6.2操作系统上编译安装MySQL 5.6.16。这是一个相对复杂的过程,涉及到多个步骤,包括系统准备、安装依赖、配置环境以及编译和安装MySQL本身。 首先,我们需要确认系统的环境。在...

    编译安装mysql1

    在本文中,我们将深入探讨如何在RHEL5环境下编译安装MySQL 5.5.34,这是一个重要的任务,特别是对于那些需要自定义配置或管理MySQL服务器的IT专业人士。MySQL是一个广泛使用的开源关系型数据库管理系统,而源码编译...

    centos6.3中编译安装mysql.5.5.30.pdf

    3. **解压并编译MySQL源代码**:将MySQL 5.5.30的tar.gz文件解压,并在源代码目录下执行cmake命令来配置编译选项。 ```bash [root@zheng2 ~]# cd /usr/src/mysql-5.5.30/ [root@zheng2 mysql-5.5.30]# cmake . -...

    用cmake方式编译安装mysql5.5(单实例)

    使用 CMake 方式编译安装 MySQL 5.5(单实例) 本文将详细介绍如何使用 CMake 方式编译安装 MySQL 5.5(单实例),并对 MySQL 的基本概念、特点、优缺点和安装方式进行详细的阐述。 MySQL 概念 MySQL 是一种关系...

Global site tag (gtag.js) - Google Analytics