mysql 5.7.9 编译安装教程_源码编译安装MySQL 5.7.9

配置yum:

[root@linuxidc ~]# cd /etc/yum.repos.d/

[root@linuxidc yum.repos.d]# mkdir a

[root@linuxidc yum.repos.d]# ls

a  CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo

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

[root@linuxidc yum.repos.d]# ls

a  CentOS-Media.repo

[root@linuxidc 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@linuxidc 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@linuxidc yum.repos.d]# cd /export/servers/

[root@linuxidc servers]# ls

cmake-2.8.3.tar.gz  mysql-5.7.9.tar.gz

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

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

[root@linuxidc servers]# ls

cmake-2.8.3  cmake-2.8.3.tar.gz  mysql-5.7.9  mysql-5.7.9.tar.gz

[root@linuxidc servers]# cd cmake-2.8.3

[root@linuxidc 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@linuxidc cmake-2.8.3]# ./configure

[root@linuxidc cmake-2.8.3]# make && make install

[root@linuxidc mysql]# groupadd mysql

[root@linuxidc mysql]# useradd -r -g mysql mysql

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

[root@linuxidc 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=

This CMake script will look for boost in .  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@linuxidc export]# tar -xvf  boost_1_59_0.tar.gz

[root@linuxidc 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@linuxidc mysql-5.7.9]# pwd

/export/mysql-5.7.9

[root@linuxidc 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@linuxidc mysql-5.7.9]# make && make install

[root@linuxidc bin]# pwd

/export/servers/mysql/bin

初始化数据库:

[root@linuxidc bin]# ./mysqld --initialize-insecure --user=mysql --basedir=/export/servers/mysql --datadir=/export/data/mysql/data

删除默认的my.cnf文件:

[root@linuxidc bin]# rm -rf /etc/my.cnf

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

新建配置文件my.cnf内容:

[root@linuxidc 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@linuxidc 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@linuxidc 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@linuxidc ~]# vi .bash_profile

PATH=$PATH:$HOME/bin:/export/servers/mysql/bin:/export/servers/mysql/bin

export PATH

export LANG=en_US.UTF-8

[root@linuxidc ~]# source .bash_profile

[root@linuxidc ~]# 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@linuxidc support-files]# pwd

/export/mysql-5.7.9/support-files

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

[root@linuxidc init.d]# chmod 755 mysqld

[root@linuxidc init.d]# service mysqld start

Starting MySQL.. SUCCESS!

[root@linuxidc init.d]# service mysqld stop

Shutting down MySQL.. SUCCESS!

在自启动项中添加mysqld服务器:

[root@linuxidc ~]# chkconfig --list mysqld

service mysqld supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add mysqld')

[root@linuxidc ~]# chkconfig --add mysqld

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

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值