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
  • 相关阅读:
    numpy函数:[6]arange()详解
    python中的list和array的不同之处
    python 矩阵转置transpose
    PowerDesigner(一)-PowerDesigner概述(系统分析与建模)
    MDX中Filter 与Exist的区别
    SQL Server 2016 —— 聚集列存储索引的功能增强
    SQL Server 2016:内存列存储索引
    PXE
    setjmp
    skb head/data/tail/end/介绍
  • 原文地址:https://www.cnblogs.com/xiangcaizhen/p/8465883.html
Copyright © 2011-2022 走看看