CentOS 7.X 源码编译安装MariaDB-10.2.X

CentOS 7 编译安装MariaDB-10.2.X

CentOS 7下mariadb-10.1.22 源码编译安装过程笔记,希望对大家有帮助。
下载文件https://mariadb.com/

https://downloads.mariadb.org/mariadb/10.2.11/


源码包的下载

下载链接:
https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.2.11/source/mariadb-10.2.11.tar.gz

CentOS 7.X 源码编译安装MariaDB-10.2.X_第1张图片

[root@begin mariaDB]# wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.2.11/source/mariadb-10.2.11.tar.gz
--2018-01-01 23:31:27--  https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.2.11/source/mariadb-10.2.11.tar.gz
Resolving mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)... 101.6.6.178, 2402:f000:1:416:101:6:6:178
Connecting to mirrors.tuna.tsinghua.edu.cn (mirrors.tuna.tsinghua.edu.cn)|101.6.6.178|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 72772830 (69M) [application/octet-stream]
Saving to: ‘mariadb-10.2.11.tar.gz100%[====================================================================================================================>] 72,772,830  22.0MB/s   in 3.2s   

2018-01-01 23:31:31 (22.0 MB/s) - ‘mariadb-10.2.11.tar.gz’ saved [72772830/72772830]

[root@begin mariaDB]# ll -h 
total 70M
-rw-r--r-- 1 root root 70M Nov 27 18:09 mariadb-10.2.11.tar.gz
[root@begin mariaDB]# 
[root@begin mariaDB]# tar -xf mariadb-10.2.11.tar.gz 
[root@begin mariaDB]# ll
total 71072
drwxrwxr-x 33 mysql mysql     4096 Nov 27 18:09 mariadb-10.2.11
-rw-r--r--  1 root  root  72772830 Nov 27 18:09 mariadb-10.2.11.tar.gz
[root@begin mariaDB]# cd mariadb-10.2.11/
[root@begin mariadb-10.2.11]# 

编译安装

1、安装开发环境

[root@haiyuan mariaDB]# yum grouplist | grep Tools
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
   Console Internet Tools
   Development Tools
   Graphical Administration Tools
   Security Tools
   System Administration Tools
[root@haiyuan mariaDB]# yum groupinstall Development Tools -y
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
Warning: group Tools does not exist.
Resolving Dependencies
--> Running transaction check
---> Package autoconf.noarch 0:2.69-11.el7 will be installed
--> Processing Dependency: m4 >= 1.4.14 for package: autoconf-2.69-11.el7.noarch
--> Processing Dependency: perl(Data::Dumper) for package: autoconf-2.69-11.el7.noarch
......
Installed:
  autoconf.noarch 0:2.69-11.el7        automake.noarch 0:1.13.4-3.el7           bison.x86_64 0:3.0.4-1.el7           byacc.x86_64 0:1.9.20130304-3.el7     
  cscope.x86_64 0:15.8-10.el7          ctags.x86_64 0:5.8-13.el7                diffstat.x86_64 0:1.57-4.el7         doxygen.x86_64 1:1.8.5-3.el7          
  flex.x86_64 0:2.5.37-3.el7           gcc-c++.x86_64 0:4.8.5-16.el7_4.1        git.x86_64 0:1.8.3.1-12.el7_4        indent.x86_64 0:2.2.11-13.el7         
  intltool.noarch 0:0.50.2-7.el7       libtool.x86_64 0:2.4.2-22.el7_3          patchutils.x86_64 0:0.3.3-4.el7      rcs.x86_64 0:5.9.0-5.el7              
  rpm-sign.x86_64 0:4.11.3-25.el7      subversion.x86_64 0:1.7.14-11.el7_4      swig.x86_64 0:2.0.10-5.el7           systemtap.x86_64 0:3.1-4.el7_4        

Dependency Installed:
  apr.x86_64 0:1.4.8-3.el7_4.1                           apr-util.x86_64 0:1.5.2-6.el7                       boost-date-time.x86_64 0:1.53.0-27.el7           
  dyninst.x86_64 0:9.3.1-1.el7                           efivar-libs.x86_64 0:31-4.el7                       emacs-filesystem.noarch 1:24.3-20.el7_4          
  gettext-common-devel.noarch 0:0.19.8.1-2.el7           gettext-devel.x86_64 0:0.19.8.1-2.el7               libdwarf.x86_64 0:20130207-4.el7                 
  libgnome-keyring.x86_64 0:3.12.0-1.el7                 libstdc++-devel.x86_64 0:4.8.5-16.el7_4.1           m4.x86_64 0:1.4.16-10.el7                        
  mokutil.x86_64 0:12-1.el7.centos                       neon.x86_64 0:0.30.0-3.el7                          pakchois.x86_64 0:0.4-10.el7                     
  perl-Data-Dumper.x86_64 0:2.145-3.el7                  perl-Error.noarch 1:0.17020-2.el7                   perl-Git.noarch 0:1.8.3.1-12.el7_4               
  perl-TermReadKey.x86_64 0:2.30-20.el7                  perl-Test-Harness.noarch 0:3.28-3.el7               perl-XML-Parser.x86_64 0:2.41-10.el7             
  subversion-libs.x86_64 0:1.7.14-11.el7_4               systemtap-client.x86_64 0:3.1-4.el7_4               systemtap-devel.x86_64 0:3.1-4.el7_4             
  systemtap-runtime.x86_64 0:3.1-4.el7_4                

Dependency Updated:
  cpp.x86_64 0:4.8.5-16.el7_4.1         gcc.x86_64 0:4.8.5-16.el7_4.1               gcc-gfortran.x86_64 0:4.8.5-16.el7_4.1 gettext.x86_64 0:0.19.8.1-2.el7  
  gettext-libs.x86_64 0:0.19.8.1-2.el7  libgcc.x86_64 0:4.8.5-16.el7_4.1            libgfortran.x86_64 0:4.8.5-16.el7_4.1  libgomp.x86_64 0:4.8.5-16.el7_4.1
  libquadmath.x86_64 0:4.8.5-16.el7_4.1 libquadmath-devel.x86_64 0:4.8.5-16.el7_4.1 libstdc++.x86_64 0:4.8.5-16.el7_4.1    rpm.x86_64 0:4.11.3-25.el7       
  rpm-build.x86_64 0:4.11.3-25.el7      rpm-build-libs.x86_64 0:4.11.3-25.el7       rpm-libs.x86_64 0:4.11.3-25.el7        rpm-python.x86_64 0:4.11.3-25.el7

Complete!
[root@haiyuan mariaDB]# yum install -y ncurses-devel openssl-devel openssl

相关命令如下:

yum groupinstall “Development Tools”

yum install -y ncurses-devel openssl-devel openssl

CentOS 7.X 源码编译安装MariaDB-10.2.X_第2张图片

CentOS 7.X 源码编译安装MariaDB-10.2.X_第3张图片

2.安装cmake

可以去cmake 官网进行下载:
https://cmake.org/download/

CentOS 7.X 源码编译安装MariaDB-10.2.X_第4张图片

[root@haiyuan mariaDB]# wget https://cmake.org/files/v3.10/cmake-3.10.1.tar.gz
--2018-01-02 22:06:59--  https://cmake.org/files/v3.10/cmake-3.10.1.tar.gz
Resolving cmake.org (cmake.org)... 66.194.253.19
Connecting to cmake.org (cmake.org)|66.194.253.19|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 7824043 (7.5M) [application/x-gzip]
Saving to: ‘cmake-3.10.1.tar.gz100%[=================================================================================================================>] 7,824,043    118KB/s   in 28s    

2018-01-02 22:07:29 (270 KB/s) - ‘cmake-3.10.1.tar.gz’ saved [7824043/7824043]
[root@haiyuan mariaDB]# ll
total 78716
-rw-r--r--  1 root root  7824043 Dec 14 22:09 cmake-3.10.1.tar.gz
drwxrwxr-x 33 1001 1001     4096 Nov 27 18:09 mariadb-10.2.11
-rw-r--r--  1 root root 72772830 Nov 27 18:09 mariadb-10.2.11.tar.gz
[root@haiyuan mariaDB]# tar -xf cmake-3.10.1.tar.gz 
[root@haiyuan mariaDB]# cd cmake-3.10.1
[root@haiyuan cmake-3.10.1]# ls
Auxiliary                   CMakeGraphVizOptions.cmake  CompileFlags.cmake  CTestConfig.cmake     Help       README.rst  Utilities
bootstrap                   CMakeLists.txt              configure           CTestCustom.cmake.in  Licenses   Source
CMakeCPack.cmake            CMakeLogo.gif               CONTRIBUTING.rst    DartConfig.cmake      Modules    Templates
CMakeCPackOptions.cmake.in  cmake_uninstall.cmake.in    Copyright.txt       doxygen.config        Packaging  Tests
[root@haiyuan cmake-3.10.1]# ./bootstrap 
---------------------------------------------
CMake 3.10.1, Copyright 2000-2017 Kitware, Inc. and Contributors
Found GNU toolchain
C compiler on this system is: gcc  
C++ compiler on this system is: g++  -std=gnu++1y 
Makefile processor on this system is: gmake
[root@haiyuan cmake-3.10.1]# make && make install
Scanning dependencies of target cmsys
[  0%] Building C object Source/kwsys/CMakeFiles/cmsys.dir/ProcessUNIX.c.o
[  0%] Building C object Source/kwsys/CMakeFiles/cmsys.dir/Base64.c.o

================

3.安装前准备


3.1.准备目录

[root@haiyuan cmake-3.10.1]# mkdir -pv /data_linux/mysql/3306/{data,logs/{binlog,relaylog}}
mkdir: created directory ‘/data_linux/mysql’
mkdir: created directory ‘/data_linux/mysql/3306mkdir: created directory ‘/data_linux/mysql/3306/data’
mkdir: created directory ‘/data_linux/mysql/3306/logs’
mkdir: created directory ‘/data_linux/mysql/3306/logs/binlog’
mkdir: created directory ‘/data_linux/mysql/3306/logs/relaylog’
[root@haiyuan cmake-3.10.1]# 

3.2.添加用户

[root@haiyuan cmake-3.10.1]# groupadd mysql
[root@haiyuan cmake-3.10.1]# useradd -s /sbin/nologin -g mysql -M mysql
Group 'mail' not found. Creating the user mailbox file with 0600 mode.
[root@haiyuan cmake-3.10.1]# chown mysql:mysql /data_linux/mysql/3306/ -R
[root@haiyuan cmake-3.10.1]# 


==============

4.编译安装


[root@haiyuan mariadb-10.2.11]# cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/data_linux/mysql/3306/data  -DSYSCONFDIR=/etc  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_ARCHIVE_STORAGE_ENGINE=1  -DWITH_BLACKHOLE_STORAGE_ENGINE=1  -DWITH_READLINE=1  -DWITH_SSL=system  -DWITH_ZLIB=system  -DWITH_LIBWRAP=0  -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_DEBUG=0 -DWITHOUT_MROONGA_STORAGE_ENGINE=1
......
CMake Deprecation Warning at cmake/for_clients.cmake:15 (CMAKE_POLICY):
  The OLD behavior for policy CMP0007 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.
Call Stack (most recent call first):
  CMakeLists.txt:415 (INCLUDE)


-- Configuring done
-- Generating done
-- Build files have been written to: /data_linux/mariaDB/mariadb-10.2.11
[root@haiyuan mariadb-10.2.11]# make
[root@haiyuan mariadb-10.2.11]# make install

CentOS 7.X 源码编译安装MariaDB-10.2.X_第5张图片

CentOS 7.X 源码编译安装MariaDB-10.2.X_第6张图片

CentOS 7.X 源码编译安装MariaDB-10.2.X_第7张图片

如果上面make需要修改参数,重新编译 可以删除原来本目录下的CMakeCache.txt
mv CMakeCache.txt CMakeCache.txt.bak

5.安装完环境准备

[root@haiyuan mariadb-10.2.11]# chmod +w /usr/local/mysql/
[root@haiyuan mariadb-10.2.11]# chown -R mysql:mysql /usr/local/mysql/
[root@haiyuan mariadb-10.2.11]# 

6.拷贝配置文件并修改

[root@haiyuan mariadb-10.2.11]# cp support-files/my-large.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
[root@haiyuan mariadb-10.2.11]# 

vim /etc/my.cnf
增加如下:

datadir = /data_linux/mysql/3306/data
innodb_flush_log_at_trx_commit = 2

innodb_file_per_table = ON 

skip_name_resolve = ON

=======

查看配置文件当前有效配置:

[root@haiyuan mariadb-10.2.11]# sed -e "s/#.*//g" /etc/my.cnf | awk '{if (length !=0) print $0}' 
[client]
port        = 3306
socket      = /tmp/mysql.sock
[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
thread_concurrency = 8
log-bin=mysql-bin
binlog_format=mixed
server-id   = 1
datadir = /data_linux/mysql/3306/data
innodb_data_home_dir = /data_linux/mysql/3306/data 
innodb_data_file_path = ibdata1:10M:autoextend 
innodb_log_group_home_dir = /data_linux/mysql/3306/data 
innodb_buffer_pool_size = 256M 
innodb_log_file_size = 64M 
innodb_log_buffer_size = 8M 
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
innodb_file_per_table = ON 
skip_name_resolve = ON 
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
[root@haiyuan mariadb-10.2.11]# 

7.初始化mysql

[root@haiyuan mariadb-10.2.11]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/data_linux/mysql/3306/data/ --defaults-file=/etc/my.cnf
WARNING: The host 'haiyuan' could not be looked up with /usr/local/mysql//bin/resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MariaDB version. The MariaDB daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MariaDB privileges !
Installing MariaDB/MySQL system tables in '/data_linux/mysql/3306/data/' ...
2018-01-02 23:28:50 140467365218368 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.
2018-01-02 23:28:50 140467365218368 [ERROR] /usr/local/mysql//bin/mysqld: unknown variable 'innodb_additional_mem_pool_size=20M'
2018-01-02 23:28:50 140467365218368 [ERROR] Aborting


Installation of system tables failed!  Examine the logs in
/data_linux/mysql/3306/data/ for more information.

The problem could be conflicting information in an external
my.cnf files. You can ignore these by doing:

    shell> scripts/mysql_install_db --defaults-file=~/.my.cnf

You can also try to start the mysqld daemon with:

    shell> /usr/local/mysql//bin/mysqld --skip-grant --general-log &

and use the command line tool /usr/local/mysql//bin/mysql
to connect to the mysql database and look at the grant tables:

    shell> /usr/local/mysql//bin/mysql -u root mysql
    mysql> show tables;

Try 'mysqld --help' if you have problems with paths.  Using
--general-log gives you a log in /data_linux/mysql/3306/data/ that may be helpful.

The latest information about mysql_install_db is available at
https://mariadb.com/kb/en/installing-system-tables-mysql_install_db
MariaDB is hosted on launchpad; You can find the latest source and
email lists at http://launchpad.net/maria

Please check all of the above before submitting a bug report
at http://mariadb.org/jira

[root@haiyuan mariadb-10.2.11]# 

查看初始化结果:

[root@haiyuan mariadb-10.2.11]# ll /data_linux/mysql/3306/data/
total 206880
-rw-rw---- 1 mysql mysql    16384 Jan  2 23:28 aria_log.00000001
-rw-rw---- 1 mysql mysql       52 Jan  2 23:28 aria_log_control
-rw-rw---- 1 mysql mysql     2717 Jan  2 23:28 ib_buffer_pool
-rw-rw---- 1 mysql mysql 77594624 Jan  2 23:28 ibdata1
-rw-rw---- 1 mysql mysql 67108864 Jan  2 23:28 ib_logfile0
-rw-rw---- 1 mysql mysql 67108864 Jan  2 23:28 ib_logfile1
drwx------ 2 mysql root      4096 Jan  2 23:28 mysql
-rw-rw---- 1 mysql mysql        0 Jan  2 23:28 mysql-bin.index
drwx------ 2 mysql root      4096 Jan  2 23:28 test
[root@haiyuan mariadb-10.2.11]# 

8.启动服务

[root@haiyuan mariadb-10.2.11]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@haiyuan mariadb-10.2.11]# chmod +x /etc/rc.d/init.d/mysqld
[root@haiyuan mariadb-10.2.11]# chkconfig --add mysqld
[root@haiyuan mariadb-10.2.11]# /etc/init.d/mysqld restart
Restarting mysqld (via systemctl):                         [  OK  ]
[root@haiyuan mariadb-10.2.11]# 

####9.添加环境变量


[root@haiyuan mariadb-10.2.11]# vim /etc/profile
##export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
[root@haiyuan mariadb-10.2.11]# source /etc/profile
[root@haiyuan mariadb-10.2.11]# 

10.初始化数据库用户表

[root@haiyuan mariadb-10.2.11]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 10.2.11-MariaDB-log Source distribution

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> use mysql;
Database changed
MariaDB [mysql]> select user,host,password from mysql.user;
+------+-----------+----------+
| user | host      | password |
+------+-----------+----------+
| root | localhost |          |
| root | haiyuan   |          |
| root | 127.0.0.1 |          |
| root | ::1       |          |
|      | localhost |          |
|      | haiyuan   |          |
+------+-----------+----------+
6 rows in set (0.00 sec)

MariaDB [mysql]> update user set password=PASSWORD('newpassword') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

MariaDB [mysql]> delete from user where user='';
Query OK, 2 rows affected (0.00 sec)

MariaDB [mysql]> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | haiyuan   | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | ::1       | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)

MariaDB [mysql]> 

CentOS 7.X 源码编译安装MariaDB-10.2.X_第8张图片

你可能感兴趣的:(云计算,运维,MySQL,Linux)