• CentOS 7运维管理笔记(10)----MySQL源码安装


      MySQL可以支持多种平台,如Windows,UNIX,FreeBSD或其他Linux系统。本篇随笔记录在CentOS 7 上使用源码安装MySQL的过程。

    1.下载源码

      选择使用北理工的镜像文件:

    在CentOS 7 中输入如下命令:

    [root@javis:~/Downloads] # wget http://mirror.bit.edu.cn/mysql/Downloads/MySQL-5.6/mysql-5.6.31.tar.gz

    2.解压mysql源码压缩文件,并更新软件源

     3.安装编译所需软件包

    yum install -y  make   gcc-c++   cmake   bison-devel  ncurses-devel   gcc   autoconf   automake   zlib*   fiex*   libxml*   libmcrypt*  libtool-ltdl-devel*

    结果显示如下错误:

    网上查找应对 [Errno 256] 的办法,使用如下命令:

    yum clean all
    yum makecache

    输入这两个命令后,重新下载那些编译MySQL依赖的软件包,这次一个一个安装,不要所有软件包都输入在同一个命令行里:

    yum install -y make
    yum install -y gcc-c++
    yum install -y cmake
    ......

    这次libxml* 安装正常了,但是好像fiex* 的安装还是存在问题,且不管了,继续进行。

    4. 使用cmake命令生成MakeFile

    先生成/var/mysql/data 目录:

    mkdir  -p  /var/mysql/data

    关于CMake的介绍见百度:http://baike.baidu.com/link?url=N-Yk2wK5C807vyXsK58_93dRocV_NIitJKug8925aUovJrKNQ2roUOuCxK2m1xC9u2Vpz6WjHG18bwQtZrhH4a

    输入如下命令:

    [root@localhost:~/Downloads/mysql-5.7.13] # cmake 
    > -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    > -DMYSQL_DATADIR=/var/mysql/data 
    > -DSYSCONFDIR=/etc 
    > -DWITH_MYISAM_STORAGE_ENGINE=1 
    > -DWITH_INNOBASE_STORAGE_ENGINE=1 
    > -DMYSQL_UNIX_ADDR=/tmp/mysql.sock 
    > -DMYSQL_TCP_PORT=3306 
    > -DENABLED_LOCAL_INFILE=1 
    > -DEXTRA_CHARSETS=all 
    > -DDEFAULT_CHARSET=utf8 
    > -DDEFAULT_COLLATION=utf8_general_ci 

    结果出现如下错误:

    百度搜索 CMake Error at cmake/boost.cmake:81 (MESSAGE),找到这么一个网页:http://www.cnblogs.com/chunguang/p/5553301.html

    看到方法一太凌乱,就没好好看,直接选择了方法二----然而并没有效果;

    再仔细看刚才cmake的错误提示:

    对比搜到的那个网页的方法一,原来方法一跟cmake提示的一样,就是多加上一句cmake条件而已:-DDOWNLOAD_BOOST=1  -DWITH_BOOST=/usr/local/boost

    [root@localhost:~/Downloads/mysql-5.7.13] # cmake 
    > -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    > -DMYSQL_DATADIR=/var/mysql/data 
    > -DSYSCONFDIR=/etc 
    > -DWITH_MYISAM_STORAGE_ENGINE=1 
    > -DWITH_INNOBASE_STORAGE_ENGINE=1 
    > -DMYSQL_UNIX_ADDR=/tmp/mysql.sock 
    > -DMYSQL_TCP_PORT=3306 
    > -DENABLED_LOCAL_INFILE=1 
    > -DEXTRA_CHARSETS=all 
    > -DDEFAULT_CHARSET=utf8 
    > -DDEFAULT_COLLATION=utf8_general_ci 
    > -DDOWNLOAD_BOOST=1 
    > -DWITH_BOOST=/usr/local/boost

    CMake之,过程中出现如下画面:

    这回CMake成功:

    5.编译

    该过程会花费大约30分钟~~~~

    [root@localhost:~/Downloads/mysql-5.6.31] # make

    6.安装

    [root@localhost:~/Downloads/mysql-5.6.31] # make install

     安装过程大约5分钟搞定吧。

    7.添加用户并设置权限

    [root@localhost:~/Downloads/mysql-5.6.31 ]# cd /usr/local/mysql
    #添加用户
    [root@localhost:/usr/local/mysql ]# groupadd mysql
    [root@localhost:/usr/local/mysql ]# useradd -r -g mysql mysql
    #设置权限以便mysql能修改文件
    [root@localhost:/usr/local/mysql ]# chown -R mysql.mysql ./
    [root@localhost:/usr/local/mysql ]# chown -R mysql.mysql /var/mysql/data
    
    #初始化数据库
    #需要注意,此处设置的数据目录应该与之前MYSQL_DATADIR 指定的目录相同
    [root@localhost:/usr/local/mysql ]# scripts/mysql_install_db --usr=mysql   -ldata=/var/mysql/data

    执行结果:

    使用 ll 命令可以看到新生成了my.cnf 文件

     

    将my.cnf 备份

    cp  my.cnf   my.cnf.backup

    然后修改相应的目录的权限以便mysql修改:

    [root@localhost: /usr/local/mysql]# chown -R root ./
    [root@localhost: /usr/local/mysql]# chown -R mysql data

    关于编译MySQL时的参数,这个网页有详细的说明:http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html

    8. 配置MySQL的配置文件,如下所示:

    9. 设置MySQL为系统服务

    (i)将启动脚本放到 /etc/init.d 目录中

    (ii)将 mysqld 添加为系统服务

    (iii)启动MySQL服务

     

    出现如上所示错误

    网上搜寻答案,http://blog.sina.com.cn/s/blog_637e04c9010117ri.htmlhttp://www.jb51.net/article/48625.htm,想到可能是因为刚才设置了

    [root@localhost: /usr/local/mysql]# chown -R  mysql.mysql ./
    
    #后来又设置了
    [root@localhost: /usr/local/mysql]# chown -R root ./

    而 my.cnf 配置文件没有做正确的修改,按照刚才的错误提示,(The server quit without updating PID file (/var/mysql/data/javis)),修改my.cnf文件如下:

    再次启动

    成功!

     (iv) 为 root 用户设置密码

    在第一个红色方框处提示要输入密码,因为此时还没有为root 用户设置密码,所以什么都不用输入,直接按下回车键。

    设置密码要按照第二个红色方框处的格式来进行设置,密码放在 password()的括号里,而且要用单引号包围起来。

    显示正确后,输入quit退出。

    谨记 2016-07-04-Mon 20:11

  • 相关阅读:
    Spring+SpringMVC+MyBatis+easyUI整合
    @RequestMapping 用法详解之地址映射(转)
    Servlet的5种方式实现表单提交
    activiti 快速入门--组任务(candidate users)分配(6)
    activiti数据库表结构剖析
    Java程序如何生成Jar、exe及安装文件
    StringEscapeUtils对字符串进行各种转义与反转义
    30分钟学会如何使用Shiro
    Java基础恶补——内存泄露、内存溢出
    ashx文件结合ajax使用(返回json数据)
  • 原文地址:https://www.cnblogs.com/dongling/p/5637768.html
Copyright © 2020-2023  润新知