前言:从mysql 5.5版本开始,mysql源码安装开始使用cmake了,编译安装跟以前的版本有点不一样了。

一,安装步骤:

1.安装前准备工作

a.下载mysql源代码包,到mysql下载页面选择MYSQL Community Serve Source Code 版本

注意:不要选择Linux-Generic版本,此版本为已经编译好的二进制版本

b.检查本机Linux是否已安装好make,bison,cmake,gcc-c++,ncurses,如果尚未安装,先安装以上包,安装方法如下:

注意:一般系统都会默认安装有make,gcc-c++.

1.安装make编译器

下载地址:http://www.gnu.org/software/make/

  1. # tar zxvf make-3.82.tar.gz
  2. # cd make-3.82
  3. # ./configure
  4. # make
  5. # make install

也可用:yum install make.i686 安装此包

2.安装bison

下载地址:http://www.gnu.org/software/bison/

  1. <span style="font-size:13px;"># tar zxvf bison-2.5.tar.gz
  2. # cd bison-2.5
  3. # ./configure
  4. # make
  5. # make install </span>

也可用:yum install bison.i686 安装此包

3.安装gcc-c++

下载地址:http://www.gnu.org/software/gcc

  1. # tar zxvf gcc-c++-4.4.4.tar.gz
  2. # cd gcc-c++-4.4.4
  3. # ./configure
  4. # make
  5. # make install

也可用:yum install gcc-c++.i686 安装此包

4.安装cmake

下载地址:http://www.cmake.org/

  1. # tar zxvf cmake-2.8.4.tar.gz
  2. # cd cmake-2.8.4
  3. # ./configure
  4. # make
  5. # make install

也可用:yum install  cmake.i686 安装此包

5.安装ncurses

下载地址:http://www.gnu.org/software/ncurses/

  1. # tar zxvf ncurses-5.8.tar.gz
  2. # cd ncurses-5.8
  3. # ./configure
  4. # make
  5. # make install

也可用:yum install ncurses.i686 安装此包

2.添加mysql用户与组

  1. #groupadd mysql
  2. #useradd -g mysql -s /sbin/nologin -M mysql

3.mysql的源码编译

  1. #tar zxvf mysql-5.5.13.tar.gz
  2. #cd mysql-5.5.13
  3. #rm CMakeCache.txt
  4. #cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55/  -DMYSQL_DATADIR=/usr/local/mysql55/data  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DMYSQL_TCP_PORT=3306  -DMYSQL_UNIX_ADDR=/usr/local/mysql55/data/mysql.sock  -DMYSQL_USER=mysql  -DWITH_DEBUG=0
  5. #make
  6. #make install

4.编译完成后,安装数据库

  1. # cd /usr/local/mysql
  2. # chown -R mysql .
  3. # chgrp -R mysql .
  4. # scripts/mysql_install_db --user=mysql  --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
  5. # chown -R root .
  6. # chown -R mysql ./data

某次安装完数据库完后,启动不了数据库,查看日志显示:Can't open the mysql.plugin table...2009-06-01 00:52Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

解决方法:重新执行数据库安装过程,并带上

  1. --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

于是搞定

5.下面的命令是可选的,将mysql的配置文件拷贝到/etc

cp support-files/my-medium.cnf /etc/my.cnf

如果原来的/etc目录下有my.cnf文件,则一定要用编译安装的my.cnf替换掉系统默认的my..cnf,否则会报如下错误:

  1. /usr/local/mysql/bin/mysqld: Table 'mysql.plugin' doesn't exist
  2. 120406 23:57:45 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
  3. 120406 23:57:45 InnoDB: The InnoDB memory heap is disabled
  4. 120406 23:57:45 InnoDB: Mutexes and rw_locks use GCC atomic builtins
  5. 120406 23:57:45 InnoDB: Compressed tables use zlib 1.2.3
  6. 120406 23:57:45 InnoDB: Initializing buffer pool, size = 128.0M
  7. 120406 23:57:45 InnoDB: Completed initialization of buffer pool
  8. InnoDB: The first specified data file ./ibdata1 did not exist:
  9. InnoDB: a new database to be created!
  10. 120406 23:57:45  InnoDB: Setting file ./ibdata1 size to 10 MB
  11. InnoDB: Database physically writes the file full: wait...
  12. 120406 23:57:45  InnoDB: Log file ./ib_logfile0 did not exist: new to be created
  13. InnoDB: Setting log file ./ib_logfile0 size to 5 MB
  14. InnoDB: Database physically writes the file full: wait...
  15. 120406 23:57:45  InnoDB: Log file ./ib_logfile1 did not exist: new to be created
  16. InnoDB: Setting log file ./ib_logfile1 size to 5 MB
  17. InnoDB: Database physically writes the file full: wait...
  18. InnoDB: Doublewrite buffer not found: creating new
  19. InnoDB: Doublewrite buffer created
  20. InnoDB: 127 rollback segment(s) active.
  21. InnoDB: Creating foreign key constraint system tables
  22. InnoDB: Foreign key constraint system tables created
  23. 120406 23:57:46  InnoDB: Waiting for the background threads to start
  24. 120406 23:57:47 InnoDB: 1.1.8 started; log sequence number 0
  25. 120406 23:57:47 [ERROR] /usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2)
  26. 120406 23:57:47 [ERROR] Can't start server: can't create PID file: No such file or directory
  27. 120406 23:57:47 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

6.启动mysql:

  1. # bin/mysqld_safe --user=mysql &
  2. # #启动mysql,看是否成功
  3. # netstat -tnl|grep 3306
  4. # 或者
  5. # ps -aux|grep 'mysql'

可选步骤:设置root 密码:

/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

此步骤需要在数据库启动之后才能执行成功

7.配置自启动

  1. # cp support-files/mysql.server /etc/init.d/mysqld
  2. # chmod +x /etc/init.d/mysqld
  3. # chkconfig –add mysqld

或者这样启动:

  1. # #将mysql的启动服务添加到系统服务中
  2. # cp support-files/mysql.server /etc/init.d/mysql.server
  3. # #现在可以使用下面的命令启动mysql
  4. # service mysql.server start
  5. # #停止mysql服务
  6. # service mysql.server stop
  7. # #重启mysql服务
  8. # service mysql.server restart

8

  1. 为了方便,将mysql bin目录加到PATH
  2. export PATH=/usr/local/mysql/bin:$PATH

附:

关于重新编译问题:

Dealing with Problems Compiling MySQL

The solution to many problems involves reconfiguring. If you do reconfigure, take note of the following:

  • If CMake is run after it has previously been run,it may use information that was gathered during its previousinvocation. This information is stored inCMakeCache.txt. WhenCMakestarts up, it looks for that file and reads its contents if it exists,on the assumption that the information is still correct. Thatassumption is invalid when you reconfigure.
  • Each time you run CMake, you must run makeagain to recompile. However, you may want to remove old object filesfrom previous builds first because they were compiled using differentconfiguration options.

To prevent old object files or configuration information from being used, run these commands on Unix before re-runningCMake:

  1. shell> make clean
  2. shell> rm CMakeCache.txt
  3.  
  4. 转自:http://blog.csdn.net/aidenliu/article/details/6586610

源码编译mysql 5.5+ 安装过程全记录的更多相关文章

  1. SAP S4HANA1610/Fiori安装过程全记录

    经历各种坑,从硬件到文件,终于安装成功. 有需要安装或使用S4HANA(含Fiori)的同学可以参考. 安装文件分享给大家 链接:http://pan.baidu.com/s/1mi7LfIS 密码: ...

  2. [nghttp2]压测工具,源码编译并进行deb打包过程

    编译环境:deepin 15.11桌面版 nghttp2下载地址:https://github.com/nghttp2/nghttp2 环境要求 emm只能在类Linux环境才能完整编译,想在Wind ...

  3. python在windows(双版本)及linux(源码编译)环境下安装

    python下载 下载地址:https://www.python.org/downloads/ 可以下载需要的版本,这里选择2.7.12和3.6.2 下面第一个是linux版本,第二个是windows ...

  4. git在windows及linux(源码编译)环境下安装

    git在windows下安装 下载地址:https://git-scm.com/ 默认安装即可 验证 git --version git在linux下安装 下载地址:https://mirrors.e ...

  5. 在CentOS6上编译安装实现LAMP(php-modules)+phpMyAdmin安装过程全记录

    php与apache协作有三种模式:CGI.modules.FastCGI. 在CGI模式下,用户请求php文件时,apache会启动响应进程,调用php处理器处理请求,然后将结果返回给客户端.用户响 ...

  6. centos7源码编译安装lamp/lnmp

    centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...

  7. hadoop-1.2.0源码编译

    以下为在CentOS-6.4下hadoop-1.2.0源码编译步骤. 1. 安装并且配置ant 下载ant,将ant目录下的bin文件夹加入到PATH变量中. 2. 安装git,安装autoconf, ...

  8. Win下Jenkins-2.138源码编译及填坑笔记

    源码编译篇 1.  安装JDK1.8-181,操作系统添加JDK环境变量.Java -version验证一下. 注:Jenkins2.138版本,JDK必须jkd1.8.0-101以上,不支持Java ...

  9. MySQL 源码编译安装

    脚本须知: 1. 该脚本目前只测试过mysql版本为5.6.x的源码,其他源码可以对本脚本稍作修改即可 2. 本脚本也可以使用wget mysql源码的方式进行,但考虑到后期提供源码的地址不可用,所以 ...

随机推荐

  1. MySQL自增锁模式innodb_autoinc_lock_mode参数理解调优

    前段时间某数据表运行过程中,出现自增字段突然跳跃式增长的问题,潜心研究发现,问题导致原因可能是因为并发写入导致 于是通过各种途径查阅是因为innodb_autoinc_lock_mode参数设置的不同 ...

  2. js坑 把数字型的字符串默认为数字 把前面的0给去掉了("001")

    <script> b("); function b(id) { console.log("b函数的id:"+id); //var history = &quo ...

  3. POJ 2411 Mondriaan's Dream [经典状态压缩dp]

    题意:略. 思路:这一题开始做的时候完全没有思路,便去看了别人的题解. 首先,对于这个题目解法想有一个初步的了解,请看这里:http://www.2cto.com/kf/201208/146894.h ...

  4. noip2017集训测试赛(四)Problem A: fibonacci

    题目大意 给你一个序列\(a_1, a_2, ..., a_n\). 我们令函数\(f(n)\)表示斐波那契数列第\(n\)项的值. 总共\(m\)个操作, 分为以下两种: 将\(x \in [L, ...

  5. mysql共享锁与排它锁

    共享锁shared lock(也叫读锁read lock)又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁.这保证了其 ...

  6. IOS 暂停和恢复CALayer上的动画(转)

    coreAnimation的动画是存在于CALayer上面的,有些时候需要突然暂停某个组件的动画效果,同时保留当前动画的状态, 如果是用removeAnimation会显得很突兀,不够平滑,所以可以利 ...

  7. 矩阵快速幂计算hdu1575

    矩阵快速幂计算和整数快速幂计算相同.在计算A^7时,7的二进制为111,从而A^7=A^(1+2+4)=A*A^2*A^4.而A^2可以由A*A得到,A^4可以由A^2*A^2得到.计算两个n阶方阵的 ...

  8. python 浮点数保留小数

    http://www.cnblogs.com/Raymon-Geng/p/5784290.html 这里有三种方法, round(a,2) '%.2f' % a Decimal('5.000').qu ...

  9. IntelliJ IDEA 识别一个类所属的jar包package

    IntelliJ IDEA 识别一个类所属的jar包package 按住ctrl,鼠标移动上去,不要点击: 有木有快捷键? ctrl+alt+B直接就过去了:需要再跳回来:

  10. ubuntu更改mysql的编码配置

    1.Ctrl+t打开终端 2.输入mysql -u root -p 命令,进入MySQL 输入 SHOW VARIABLES LIKE 'char%'; 查看MySQL编码,有两个不是utf8 3.在 ...