zoukankan      html  css  js  c++  java
  • 【转】Ubuntu 16.04下 Mysql 5.7.17源码编译与安装

    Ubuntu 16.04下 Mysql5.7.17源码编译与安装

    系统环境

    ubuntu 16.04 64位 
    官方文档说明:http://dev.mysql.com/doc/refman/5.7/en/source-installation.html

    一、 系统安装条件

    1.cmake

    MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数。

    sudo apt-get install cmake
    • 1

    2.bison

    Linux下C/C++语法分析器

    sudo apt-get install bison
    • 1

    3.ncurses

    字符终端处理库

    sudo apt-get install libncurses5-dev
    • 1

    4. gcc

    GCC是Linux下的C语言编译工具,mysql源码编译完全由C和C++编写。Ubuntu默认已装。

    5. Boost 1.59.0

    mysql源码中用到了C++的Boost库,要求必须安装boost1.59.0 
    下载Boost1.59.0源代码,并解压到/usr/local/目录下:

    wget -O https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
    tar -zxvf boost_1_59_0.tar.gz -C /usr/local/
    • 1
    • 2

    二、 下载MySQL源码

    从github上下载mysql的源码 
    https://github.com/mysql/mysql-server.git

    三、 编译MySQL源码

    1. 添加Mysql用户

    groupadd mysql
    useradd -r -g mysql mysql
    • 1
    • 2

    2. 创建Mysql安装程序的目录和数据文件的目录

    mkdir /usr/local/mysql
    mkdir /home/MysqlData
    chown -R mysql.mysql /user/local/mysql
    chown -R mysql.mysql /home/MysqlData
    • 1
    • 2
    • 3
    • 4

    3. 解压缩Mysql5.7源码,并编译

    tar -zxvf mysql-server-5.7.zip
    cd mysql-server-5.7
    • 1
    • 2

    用cmake配置mysql预编译参数: 
    -DCMAKE_INSTALL_PREFIX:安装路径 
    -DMYSQL_DATADIR:数据存放目录 
    -DWITH_BOOST:boost源码路径 
    -DSYSCONFDIR:my.cnf配置文件目录 
    -DEFAULT_CHARSET:数据库默认字符编码 
    -DDEFAULT_COLLATION:默认排序规则 
    -DENABLED_LOCAL_INFILE:允许从本文件导入数据 
    -DEXTRA_CHARSETS:安装所有字符集 
    更多预编译配置参数请参考mysql官方文档说明:http://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html#cmake-general-options

    cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    -DMYSQL_DATADIR=/home/MysqlData 
    -DWITH_BOOST=/usr/local/boost_1_59_0 
    -DSYSCONFDIR=/etc 
    -DEXTRA_CHARSETS=all
    • 1
    • 2
    • 3
    • 4
    • 5

    编译并安装(两个命令分开进行):

    sudo make
    sudo make install
    • 1
    • 2

    三、 安装配置MySQL

    1. 初始化Mysql数据库

    cd /usr/local/mysql
    ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/MysqlData
    # 5.7.6之后版本初始系统数据库脚本(本文使用上种方式)
    ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/home/MysqlData
    ./bin/mysql_ssl_rsa_setup
    • 1
    • 2
    • 3
    • 4
    • 5

    注意:如果使用–initialize参数初始化系统数据库之后,会在~/.mysql_secret文件中生成root用户的一个临时密码,同时也在初始化日志中打印出来了

    2.配置文件

    cp support-files/my-default.cnf /etc/my.cnf
    vim /etc/my.cnf
    
    [client]
    port=3306
    socket=/usr/local/mysql/mysql.sock
    [mysqld]
    port=3306
    basedir=/usr/local/mysql
    datadir=/home/MysqlData
    socket=/usr/local/mysql/mysql.sock
    pid-file=/usr/local/mysql/mysql.pid
    max_connections=500
    default-storage-engine=MYISAM
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3.配置Mysql服务

    由于Ubuntu没有chkconfig命令,用update-rc.d命令将Mysql服务加入到系统服务中。

    cp support-files/mysql.server /etc/init.d/mysql
    update-rc.d mysql defaults
    update-rc.d mysql start 2 3 4 5 . stop 0 1 6
    • 1
    • 2
    • 3

    4.启动Mysql服务

    shell> service mysqld start       # 启动mysql服务
    shell> service mysqld stop        # 停止mysql服务
    shell> service mysqld restart     # 重新启动mysql服务
    • 1
    • 2
    • 3

    5.设置数据库密码

    my.cnf中加上一行skip-grant-tables 
    免密登录后修改user表 
    再去掉skip-grant-tables,重启Mysql

    6.配置mysql环境变量

    shell> vim /etc/profile
    shell> export PATH=/usr/local/mysql/bin:$PATH
    shell> source /etc/profile
    • 1
    • 2
    • 3

    四、其它注意事项

    如果中途编译失败了,需要删除cmake生成的预编译配置参数的缓存文件和make编译后生成的文件,再重新编译。

    shell> cd mysql-server-5.7
    shell> rm -f CMakeCache.txt
    shell> make clean
  • 相关阅读:
    利用相关的Aware接口
    java 值传递和引用传递。
    权限控制框架Spring Security 和Shiro 的总结
    优秀代码养成
    Servlet 基础知识
    leetcode 501. Find Mode in Binary Search Tree
    leetcode 530. Minimum Absolute Difference in BST
    leetcode 543. Diameter of Binary Tree
    leetcode 551. Student Attendance Record I
    leetcode 563. Binary Tree Tilt
  • 原文地址:https://www.cnblogs.com/xiangcaizhen/p/8465883.html
Copyright © 2011-2022 走看看