您的位置:首页 > 数据库 > MySQL

源码编译mysql

2014-04-26 17:49 369 查看
-------------------------------------
一、前言
二、环境
三、配置
四、启动
-------------------------------------

一、前言
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的DBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
二、环境
系统:CentOS6.4 32位
源码包:mysql-5.1.73.tar.gz http://dev.mysql.com/downloads/mysql/ 三、配置
主要配置可以参考源码目录下的INSTALL-SOURCE文件提供的方法进行配置,mysql5.5是mysql的一个分水岭,mysql5.6.16的安装和之前的5.5、5.1有些不同,编译的时候不再使用./configure来进行了,而是使用cmake命令来进行编译项目。
INSTALL-SOURCE提供的配置命令,仅供参考。
shell> groupadd mysql
shell> useradd -g mysql mysql
# Beginning of source-build specific instructions
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
# End of source-build specific instructions
# Postinstallation setup
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
# Next command is optional
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server


# yum groupinstall "Development tools"   //安装开发工具
# yum groupinstall "Additional Development"
# rpm -qa |grep mysql                   //建议卸载和mysql相关的包
# yum remove mysql
# tar -zxvf mysql-5.1.73.tar.gz -C /usr/local/src/
# cd /usr/local/src/mysql-5.1.73/
# groupadd mysql
# useradd -g mysql mysql
# ./configure --help
# ./configure --prefix=/usr/local/mysql
--without-debug                         //非debug模式
--enable-thread-safe-client             //允许以客户端线程安全方式编译
--enable-assembler                      //允许使用汇编函数的字符串
--enable-profiling
--with-mysqld-ldflags=-all-static       //静态编译
--with-client-ldflags=-all-static
--with-charsets=latin1                  //字符集
--with-extra-charsets=utf8,gbk
--with-mysqld-user=mysql                //mysql启动用户
--without-embedded-server
--with-plugins=innobase,partition        //存储引擎
# make && make install                   //编译安装(需稍等片刻)
# cd /usr/local/mysql/
# ll
drwxr-xr-x.  2 root root 4096 Apr 26 00:04 bin
drwxr-xr-x.  2 root root 4096 Apr 26 00:04 docs
drwxr-xr-x.  3 root root 4096 Apr 26 00:03 include
drwxr-xr-x.  3 root root 4096 Apr 26 00:04 lib
drwxr-xr-x.  2 root root 4096 Apr 26 00:14 libexec
drwxr-xr-x. 10 root root 4096 Apr 26 00:14 mysql-test
drwxr-xr-x.  5 root root 4096 Apr 26 00:14 share
drwxr-xr-x.  5 root root 4096 Apr 26 00:14 sql-bench
# mkdir data     //创建数据存储目录
# chown mysql.mysql data/ -R
# cp /usr/local/src/mysql-5.1.73/support-files/my-small.cnf my.cnf //创建主配置文件
# vim my.cnf
38 basedir = /usr/local/mysql
39 datadir = /usr/local/mysql/data
# ./bin/mysql_install_db --defaults-file=./my.cnf --user=mysql  //初始化mysql


四、启动
1.以安全模式启动
# ./bin/mysqld_safe --user=mysql &   //后台启动mysql,安全模式
# vim /etc/profile
# . /etc/profile
54 PATH=$PATH:/usr/local/mysql/bin
# mysql   //进入数据库
mysql> show databases;
mysql> select version();
mysql> \q
pkill -9 mysql                       //杀掉mysql进程
2.普通方式启动

# libexec/mysqld --defaults-file=./my.cnf --user=mysql &
# mysql
# mysqladmin shutdown               //停止mysql服务
3.以系统服务启动
# cp /usr/local/src/mysql-5.1.73/support-files/mysql.server /etc/init.d/mysqld
# chmod a+x /etc/init.d/mysqld
# chkconfig --add mysqld        //加入系统服务
# chkconfig  mysqld on          //开机启动
# chkconfig --list |grep  mysqld
mysqld         0:off    1:off   2:on    3:on    4:on    5:on    6:off
# service mysqld start
Starting MySQL SUCCESS!
# netstat -tupln |grep mysql
tcp    0   0 0.0.0.0:3306      0.0.0.0:*    LISTEN      12036/mysqld
# mysql
mysql> \q
4.创建用户
# mysqladmin -u root -p password '123'   //创建用户
Enter password:                          //回车即可
# mysql -u root -p
Enter password:                          //输入密码123
mysql> \q
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 编译 源码