zoukankan      html  css  js  c++  java
  • 源码编译安装MySQL 5.7.9

    安装CentOS 6.3

    配置yum:
    [root@hank-yoon ~]# cd /etc/yum.repos.d/


    [root@hank-yoon yum.repos.d]# mkdir a


    [root@hank-yoon yum.repos.d]# ls
    a  CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo


    [root@hank-yoon yum.repos.d]# mv  CentOS-Base.repo  CentOS-Debuginfo.repo CentOS-Vault.repo a


    [root@hank-yoon yum.repos.d]# ls
    a  CentOS-Media.repo


    [root@hank-yoon yum.repos.d]# vi CentOS-Media.repo 
    # CentOS-Media.repo
    #
    # This repo is used to mount the default locations for a CDROM / DVD on
    #  CentOS-6.  You can use this repo and yum to install items directly off the
    #  DVD ISO that we release.
    #
    # To use this repo, put in your DVD and use it with the other repos too:
    #  yum --enablerepo=c6-media [command]
    #
    # or for ONLY the media repo, do this:
    #
    #  yum --disablerepo=* --enablerepo=c6-media [command]


    [c6-media]
    name=CentOS-$releasever - Media
    baseurl=file:///media/CentOS/
    #        file:///media/cdrom/
    #        file:///media/cdrecorder/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


    安装依赖的包:
    [root@hank-yoon yum.repos.d]# yum install -y ncurses-devel glibc gcc gcc-c++ libstdc++*  libtool cmake lrzsz libaio-devel


    上传源码安装包mysql-5.7.9.tar.gz和cmake-2.8.3.tar.gz:
    [root@hank-yoon yum.repos.d]# cd /export/servers/


    [root@hank-yoon servers]# ls
    cmake-2.8.3.tar.gz  mysql-5.7.9.tar.gz


    [root@hank-yoon servers]# tar -xvf cmake-2.8.3.tar.gz


    [root@hank-yoon servers]# tar -xvf mysql-5.7.9.tar.gz


    [root@hank-yoon servers]# ls
    cmake-2.8.3  cmake-2.8.3.tar.gz  mysql-5.7.9  mysql-5.7.9.tar.gz


    [root@hank-yoon servers]# cd cmake-2.8.3


    [root@hank-yoon cmake-2.8.3]# ls
    bootstrap         CMakeCPack.cmake            CMakeLogo.gif             Copyright.txt         DartConfig.cmake   Example     Templates
    ChangeLog.manual  CMakeCPackOptions.cmake.in  cmake_uninstall.cmake.in  CTestConfig.cmake     DartLocal.conf.in  Modules     Tests
    ChangeLog.txt     CMakeGraphVizOptions.cmake  CompileFlags.cmake        CTestCustom.cmake.in  Docs               Readme.txt  Utilities
    cmake.1           CMakeLists.txt              configure                 CTestCustom.ctest.in  doxygen.config     Source


    [root@hank-yoon cmake-2.8.3]# ./configure 


    [root@hank-yoon cmake-2.8.3]# make && make install


    [root@hank-yoon mysql]# groupadd mysql


    [root@hank-yoon mysql]# useradd -r -g mysql mysql


    [root@hank-yoon export]# chown -R mysql.mysql /export/


    [root@hank-yoon export]# mkdir -p data/mysql/data log tmp log dumps


    编译MySQL安装包报错:
    CMake Error at cmake/boost.cmake:76 (MESSAGE):
      You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>


      This CMake script will look for boost in <directory>.  If it is not there,
      it will download and unpack it (in that directory) for you.


      If you are inside a firewall, you may need to use an http proxy:


      export http_proxy=http://example.com:80


    Call Stack (most recent call first):
      cmake/boost.cmake:228 (COULD_NOT_FIND_BOOST)
      CMakeLists.txt:435 (INCLUDE)




    -- Configuring incomplete, errors occurred!


    下载安装:wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
    [root@hank-yoon export]# tar -xvf  boost_1_59_0.tar.gz


    [root@hank-yoon boost_1_59_0]# ls
    boost            boostcpp.jam  boost.png      bootstrap.sh  index.htm   INSTALL  libs             more     status
    boost-build.jam  boost.css     bootstrap.bat  doc           index.html  Jamroot  LICENSE_1_0.txt  rst.css  tools


    [root@hank-yoon mysql-5.7.9]# pwd
    /export/mysql-5.7.9


    [root@hank-yoon mysql-5.7.9]# cmake . -DCMAKE_INSTALL_PREFIX=/export/servers/mysql/ -DMYSQL_DATADIR=/export/data/mysql/data -DSYSCONFDIR=/export/servers/mysql/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/export/data/mysql/tmp/mysql.sock -DENABLED_LOCAL_INFILE=ON -DENABLED_PROFILING=ON -DWITH_DEBUG=0 -DENABLE_DTRACE=OFF -DMYSQL_TCP_PORT=3306 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/export/boost_1_59_0


    -DCMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
    -DMYSQL_DATADIR:数据文件目录
    -DSYSCONFDIR:初始化参数文件目录
    -DWITH_INNOBASE_STORAGE_ENGINE:指定静态编译到MySQL存储引擎
    -DDEFAULT_CHARSET:默认字符集
    -DMYSQL_TCP_PORT:默认端口


    [root@hank-yoon mysql-5.7.9]# make && make install


    [root@hank-yoon bin]# pwd
    /export/servers/mysql/bin


    初始化数据库:
    [root@hank-yoon bin]# ./mysqld --initialize-insecure --user=mysql --basedir=/export/servers/mysql --datadir=/export/data/mysql/data


    删除默认的my.cnf文件:
    [root@hank-yoon bin]# rm -rf /etc/my.cnf

    [root@hank-yoon bin]# ./mysqld_safe --defaults-file=/export/servers/mysql/etc/my.cnf &

    新建配置文件my.cnf内容:
    [root@hank-yoon etc]# cat my.cnf
    [client]
    port            = 3358
    socket          = /export/data/mysql/tmp/mysql.sock


    [mysqld]
    port            = 3358
    socket          = /export/data/mysql/tmp/mysql.sock
    datadir         = /export/data/mysql/data/




    #--- GLOBAL ---#
    character-set-server    = utf8
    lower_case_table_names  = 1
    log-output              = FILE
    log-error               = /export/data/mysql/log/error.log


    general_log = 0


    general_log_file        = /export/data/mysql/log/mysql.log
    pid-file                = /export/data/mysql/mysql.pid
    slow-query-log
    slow_query_log_file     = /export/data/mysql/log/slow.log
    tmpdir                  = /export/data/mysql/tmp
    long_query_time         = 1


    #--------------#


    #thread_concurrency      = 16
    thread_cache_size       = 512
    table_open_cache        = 16384
    table_definition_cache  = 16384
    sort_buffer_size        = 2M
    join_buffer_size        = 2M
    read_buffer_size        = 4M
    read_rnd_buffer_size    = 4M
    key_buffer_size         = 8M
    myisam_sort_buffer_size = 8M
    tmp_table_size          = 64M
    max_heap_table_size     = 64M
    open_files_limit        = 65535
    query_cache_size       = 0


    #add z #################
    innodb_undo_directory = /export/data/mysql/undo
    innodb_undo_tablespaces = 4
    explicit_defaults_for_timestamp = 1


    #--- NETWORK ---#
    back_log                = 1024
    max_allowed_packet      = 16M
    interactive_timeout     = 28800
    wait_timeout            = 28800
    skip-external-locking
    max-connections         = 1000
    skip-name-resolve
    #read_only               = 1
    #--- REPL ---#
    server-id               = 360360
    log-bin                 = mysql-bin
    binlog_format           = mixed
    expire_logs_days        = 7
    relay-log               = relay-log




    replicate-ignore-db     = mysql.slave_master_info
    replicate-ignore-db     = mysql.slave_relay_log_info
    replicate-ignore-db     = mysql.slave_worker_info
    replicate-ignore-db     = test
    replicate-ignore-db     = information_schema
    replicate-ignore-db     = performance_schema




    log_slave_updates
    skip-slave-start
    slave-parallel-workers= 4
    sync_master_info = 1
    sync_relay_log = 1
    sync_relay_log_info = 1
    relay_log_info_repository = TABLE
    master_info_repository = TABLE
    #rpl_semi_sync_master_enabled = 1
    #rpl_semi_sync_slave_enabled = 1
    #rpl_semi_sync_master_timeout = 1000


    #--- INNODB ---#
    default-storage-engine          = INNODB
    innodb_data_home_dir            = /export/data/mysql/data
    innodb_file_per_table
    innodb_log_group_home_dir       = /export/data/mysql/data
    innodb_log_files_in_group       = 3
    innodb_log_file_size            = 512M
    innodb_log_buffer_size          = 16M
    innodb_flush_log_at_trx_commit  = 1
    innodb_lock_wait_timeout        = 120
    innodb_flush_method             = O_DIRECT
    innodb_max_dirty_pages_pct      = 75


    #change z #####
    sync_binlog = 1
    innodb_buffer_pool_size         = 1G
    innodb_data_file_path           = ibdata1:2G;ibdata2:2G:autoextend
    innodb_autoextend_increment     = 500
    innodb_thread_concurrency       = 32
    innodb_open_files               = 65535
    innodb_write_io_threads = 20
    innodb_read_io_threads = 20
    innodb_spin_wait_delay = 10
    innodb_flush_neighbors = 1
    innodb_use_native_aio = 1
    innodb_io_capacity              = 2000
    innodb_io_capacity_max          = 6000
    relay_log_recovery = 1
    #innodb_additional_mem_pool_size = 128M


    #change h #####


    #innodb_numa_interleave=ON
    innodb_lru_scan_depth=512
    innodb_checksum_algorithm=crc32
    innodb_purge_threads=4




    [mysqldump]
    quick
    max_allowed_packet = 16M


    [mysql]
    # auto-rehash
    # Remove the next comment character if you are not familiar with SQL
    # safe-updates
    default-character-set=utf8


    [myisamchk]
    key_buffer_size = 128M
    sort_buffer_size = 128M
    read_buffer = 2M
    write_buffer = 2M


    [mysqlhotcopy]
    interactive-timeout


    [root@hank-yoon log]# ps -ef | grep mysql
    root     26374 10192  0 16:53 pts/1    00:00:00 /bin/sh ./mysqld_safe --defaults-file=/export/servers/mysql/etc/my.cnf
    mysql    27460 26374  0 16:53 pts/1    00:00:04 /export/servers/mysql/bin/mysqld --defaults-file=/export/servers/mysql/etc/my.cnf --basedir=/export/servers/mysql --datadir=/export/data/mysql/data/ --plugin-dir=/export/servers/mysql/lib/plugin --user=mysql --log-error=/export/data/mysql/log/error.log --open-files-limit=65535 --pid-file=/export/data/mysql/mysql.pid --socket=/export/data/mysql/tmp/mysql.sock --port=3358


    通过新配置文件重新初始化,不需要新的密码:(默认生成一个随机密码(~/.mysql_secret)
    [root@hank-yoon bin]# ./mysql
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 4
    Server version: 5.7.9-log Source distribution


    Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.


    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.


    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.


    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.00 sec)


    添加变量位置,在任意目录下执行mysql命令:
    [root@hank-yoon ~]# vi .bash_profile
    PATH=$PATH:$HOME/bin:/export/servers/mysql/bin:/export/servers/mysql/bin


    export PATH
    export LANG=en_US.UTF-8


    [root@hank-yoon ~]# source .bash_profile


    [root@hank-yoon ~]# mysql
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 6
    Server version: 5.7.9-log Source distribution


    Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.


    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.


    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.


    mysql> 




    配置通过service启动mysql命令脚本:
    [root@hank-yoon support-files]# pwd
    /export/mysql-5.7.9/support-files


    [root@hank-yoon support-files]# cp  mysql.server  /etc/init.d/mysqld


    [root@hank-yoon init.d]# chmod 755 mysqld


    [root@hank-yoon init.d]# service mysqld start
    Starting MySQL.. SUCCESS! 


    [root@hank-yoon init.d]# service mysqld stop
    Shutting down MySQL.. SUCCESS! 


    在自启动项中添加mysqld服务器:
    [root@hank-yoon ~]# chkconfig --list mysqld
    service mysqld supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add mysqld')


    [root@hank-yoon ~]# chkconfig --add mysqld


    [root@hank-yoon ~]# chkconfig --level 345 mysqld on

  • 相关阅读:
    NHibernate之(12):初探延迟加载机制
    NHibernate之(11):探索多对多关系及其关联查询
    NHibernate之(10):探索父子(一对多)关联查询
    NHibernate之(9):探索父子关系(一对多关系)
    NHibernate之(8):巧用组件之依赖对象
    NHibernate之(7):初探NHibernate中的并发控制
    NHibernate之(5):探索Insert, Update, Delete操作
    NHibernate之(6):探索NHibernate中的事务
    NHibernate之(4):探索查询之条件查询(Criteria Query)
    读写文件
  • 原文地址:https://www.cnblogs.com/hankyoon/p/5169819.html
Copyright © 2011-2022 走看看