环境:CentOS7,MySQL5.5

1.MySQL5.5源码下载

Oracle的网站打开较慢,http://mirrors.sohu.com/mysql/这里提供了MySQL的镜像。一般的,Linux的程序安装有两种方式:A利用RPM,YUM等工具 B手动安装。其中手动安装又有两种方式,一种是直接下载已经编译好的二进制文件,另一种是下载源码手动编译。我们这里尝试下载源码手动编译的方式。

如何区分下载文件列表的文件是已编译好的二进制文件,还是源码文件:

A.文件大小。由于从源码编译为二进制文件,会利用到一些静态链库。因此一般的源码文件比编译好二进制文件要小。

B.文件名。因为不同的平台编译出的二进制文件不一样,因此一般的编译好的二进制文件的包名里会明确写出该包适用的平台。例如mysql-5.5.40-linux2.6-x86_64.tar.gz。而源码一般不会这样写。

C.将下载的文件解包后,如果有bin文件夹,一般可以说明该文件包是编译好的二进制文件。

2.编译源码

  • MySQL从5.5开始使用cmake 编译工具。首先安装cmake:yum install cmake
  • 创建一个MySQL用户
  •  #groupadd mysql
    #useradd -g mysql mysql
  • 解包:在/usr/local/src下将tarball解开
  •  #tar -zxvf mysql-5.5..tar.gz 
  • 构建Makefile文件
  •  #cd mysql-5.5./
    #cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5. \
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
    -DWITH_MYISAM_STORAGE_ENGINE= \
    -DWITH_INNOBASE_STORAGE_ENGINE= \
    -DWITH_MEMORY_STORAGE_ENGINE= \
    -DWITH_READLINE= \
    -DENABLED_LOCAL_INFILE= \
    -DMYSQL_DATADIR=/var/mysql/data \
    -DMYSQL_USER=mysql
    -DSYSCONFDIR=/etc # mysql配置文件 my.cnf的存放地址,默认为/etc下
    -DMYSQL_TCP_PORT= # 数据库服务器监听端口,默认为3306
    -DWITH_SSL=yes # 支持 SSL
    -DMYSQL_USER=mysql # 默认为mysql //下面3个是数据库编码设置
    -DEXTRA_CHARSETS=all # 安装所有扩展字符集,默认为all
    -DDEFAULT_CHARSET=utf8 # 使用 utf8 字符
    -DDEFAULT_COLLATION=utf8_general_ci # 校验字符 //下面5个是数据库存储引擎设在
    -DWITH_MYISAM_STORAGE_ENGINE= # 安装 myisam 存储引擎
    -DWITH_INNOBASE_STORAGE_ENGINE= # 安装 innodb 存储引擎
    -DWITH_ARCHIVE_STORAGE_ENGINE= # 安装 archive 存储引擎
    -DWITH_BLACKHOLE_STORAGE_ENGINE= # 安装 blackhole 存储引擎
    -DWITH_PARTITION_STORAGE_ENGINE= # 安装数据库分区
    //在这个过程中,可能会因为缺少某些包而报错,参照报错信息用YUM安装相关的包,然后删除Makefile.txt,重新构建。这个步骤在错误信息中有详细说明
  • 执行安装

  •  #make
    #make install

3.创建数据库

  • 设置配置文件
  •   #cp support-files/my-medium.ini  /etc/my.cnf
    //MySQL提供了my-small.ini、my-medium.ini、my-large.ini、my-huge.ini几个文件,根据实际环境选择合适的文件作为参考 // Uncomment the following if you are using InnoDB tables
    5 #innodb_data_home_dir = /var/mysql5./data
    #innodb_data_file_path = ibdata1:10M:autoextend
    #innodb_log_group_home_dir = /var/mysql5./data # default-storage-engine=InnoDB
    # user = mysql

    其他的配置根据实际情况调整,在重启MySQL后生效

  • 创建数据库

  •  # ./scripts/mysql_install_db --basedir=/usr/local/mysql5. --datadir=/var/mysql5./data 
    2 # export PATH=/usr/local/mysql5.5/bin:$PATH
  • 启动/关闭数据库

     # ./bin/mysqld_safe &
    
    //说明
    A.数据库在启动的时候,会打出这样一个信息:mysqld_safe Logging to '/usr/local/mysql5.5/data/localhost.err
    如果数据库启动不成功,可以参照这个Log的信息查找具体原因,例如:
    /usr/local/mysql5.5/bin/mysqld: File './mysql-bin.000004' not found (Errcode: 13)
    这个问题是由文件权限引起的,我们在安装过程中由于在root和mysql及其它用户间切来切去,导致mysql用户没有正确的权限访问文件解决方法
    #chown -R mysql:mysql /usr/local/mysql5.5 //注意-R的参数
    B.即使数据库正常启动,A中所说的Log中的某些警告信息同样具有参考价值
    2 # ./bin/mysqladmin -u root -p shutdown    
  • 连接数据库

  •  #mysql  -h localhost -u root -p
  • 编辑PATH。将MySQL的 PATH编辑进系统配置文件
  •  //对系统的所有用户都生效
    #/vi /etc/profile
    PATH=/usr/local/mysql5./bin:$PATH //只对当前用户生效
    $cd
    $vi bash_profile
    PATH=/usr/local/mysql5./bin:$PATH
  • 发生的一些错误

        1. 'Access denied for user 'root'@'localhost' (using password: YES)':

发生原因,没有正确设置root的密码,如果直接连接数据库 mysql -u root,并执行select password from user where user='root',

会发现查到的password都为空。在这种情况下,如果不重新设置password,那么可以执行#mysql -h localhost -u root -p,然后在需要输入密码的时候,直接回车就可以Login了,因为root的密码本来就为空。当然,最好还是重新设置一下root密码。

Linux MySQL5.5源码安装的更多相关文章

  1. Linux平台下源码安装mysql多实例数据库

    Linux平台下源码安装mysql多实例数据库[root@linux-node1 ~]# netstat -tlunp | grep 330tcp6 0 0 :::3306 :::* LISTEN 6 ...

  2. mysql5.6源码安装(转)

    mysql5.6源码安装 转自 jabbok博客园 https://www.cnblogs.com/jabbok/p/9418344.html 1 编译安装 1 2 3 4 5 6 groupadd ...

  3. MYSQL5.5源码安装 linux下

    /* 首先安装必要的库 */ yum -y install gcc* ###### 安装 MYSQL ###### 首先安装camke 一.支持YUM,则 yum install -y cmake 二 ...

  4. Mysql5.5源码安装步骤笔记记录

    1.cmake软件的安装wget https://cmake.org/files/v3.5/cmake-3.5.0-rc3.tar.gztar xf cmake-3.5.0.tar.gzcd cmak ...

  5. Linux 6.8 源码安装MySQL8.0

    搭建环境说明: 系统版本:Red Hat Enterprise Linux Server release 6.8 (Santiago) 内核版本:Linux 2.6.32-642.el6.x86_64 ...

  6. ubuntu mysql5.7源码安装

    本系列的lnmp的大框架基本上是按照http://www.linuxzen.com/lnmphuan-jing-da-jian-wan-quan-shou-ce-si-lnmpda-jian-yuan ...

  7. linux中的源码安装

    前两天自己在笔记本上装了CentOs版本的虚拟机,接着要装Python3,是源码安装的挺费劲,个人总结了一些源码安装的经验,今天在这里给大家分享一下. 1. 首先准备环境,安装必要的编译工具gcc g ...

  8. Linux+Apache2.4+PHP5.6+MySQL5.6源码安装步骤

    一.安装Apache 若要安装apache服务器软件,需要安装以下几个依赖软件 apr-1.4.6.tar.gz 下载地址:http://apr.apache.org/ apr-util-1.4.1. ...

  9. MySQL5.7源码安装

    一.获取MySQL5.7.20源码安装包,并上传至服务器   MySQL官网下载地址:https://dev.mysql.com/downloads/mysql/ 下载版本:mysql-boost-5 ...

随机推荐

  1. 如何使用开源库,吐在VS2013发布之前,顺便介绍下V2013的新特性"Bootstrap"

    如何使用开源库,吐在VS2013发布之前,顺便介绍下VS2013的新特性"Bootstrap" 刚看到Visual Studio 2013 Preview - ASP.NET, M ...

  2. TOGAF架构内容框架之架构制品(上)

    TOGAF架构内容框架之架构制品(上) 4. 架构制品(Architectural Artifacts) 架构制品是针对某个系统或解决方案的模型描述,与架构交付物和构建块相比,架构制品既不是架构开发方 ...

  3. [置顶] javascript-基于对象or面向对象?

    最近完成了javascript的初级学习,在这个学习的视频中,我特别注意了两个词,解释性语言和对象,javascript按照我的理解,应该是种解释性语言,他有关于面向对象的思想的体现,但是,他和vb一 ...

  4. oracle报表开发方案

    PL/SQL也是一门语言,后台开发经常会用到. 目前做要到一个功能,关于"报表任务调度",说明白了就是做几张报表,每天统计一次新数据,用于在PC页面上显示,我苦思冥想了几天,总结出 ...

  5. MySQL5.7解压版详细安装教程,在最后一步需要随机密码

    这里为百度经验 http://jingyan.baidu.com/article/ff42efa93580c4c19e2202b6.html 然而在最后一步,回车不能够越过密码. 需要在解压的mysq ...

  6. android 蓝牙连接与通讯(Bluetooth)

    最近做了一个小项目,关于蓝牙的一个智能硬件.其中涉及到了蓝牙模块的操作.特记下蓝牙模块的操作过程.只记录下关于蓝牙部分的操作,具体业务逻辑不涉及其中.重点是记录下蓝牙的扫描.链接.通讯. 在使用蓝牙模 ...

  7. [SOJ] 简单哈希

    Description 使用链地址法(又称拉链法)可以解决Hash中的冲突问题.其基本思想是:将具有相同哈希地址的记录链成一个单链表,m个哈希地址就设m个单链表,然后用一个数组将m个单链表的表头指针存 ...

  8. Python网络编程学习_Day10

    一.进程与线程 1.区别 进程:一个程序要运行时所需要的所有资源的集合,进程是资源的集合. 一个进程至少需要一个线程,这个线程称为主线程 一个进程里面可以有多个线程 两个进程之间的数据是完全独立,不能 ...

  9. CentOS 手动增加、删除swap区

    SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的.它类似于Windows中的虚拟内存.在Windows中,只可以使用文件来当作虚拟内存.而linux可以文件或者分区来当作 ...

  10. 使用Gradle创建java web项目

    什么是Gradle? Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具. 它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML ...