MySQL 5.6.37源码编译安装

MySQL 5.6.37 编译安装

什么是数据库?

简单的说,数据库(database)就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据提供的多种方法来管理数据库里的数据。

数据库的种类

按照早起的数据库理论,比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库,而在当今的互联网中,最常用的数据库模型主要是两种,即关系型数据库和非关系型数据库。

什么是关系型数据库?

关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。例如老男孩教育某一期的学生关系就是一个二元关系。在关系数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关系的表格分类、合并、连接或选取等运算来实现数据的管理。
关系型数据库诞生距今已有40多年了,从理论产生发展到显示产品,例如:大家最常见的mysql和oracle数据库,oracle在数据库领域里上升到了霸主地位,形成每年高达数百亿美元的庞大产业市场,而mysql也是不容忽视的数据库,以至于被oracle重金收购。

- 二维表格
  - 市场占有量较大的为MySQL、oracle数据库,互联网运维最常用的就是MySQL。
  - 通过SQL结构化查询语言来存取、管理数据。
  - 在保持数据一致性方面很强。ACID理论。

- 关系型数据库的关系有:一对多,一对一,多对多。

什么是非关系型数据库?

非关系型数据库也被称为nosql数据库,请注意,nosql的本意是"not only sql",指的是非关系型数据库,而不是"NO SQL"的意思(没有sql语句?),因此,nosql的产生并不是要彻底的否定关系型数据库,而是作为传统关系型数据库的一个有效补充。Nosql数据库在特定的场景下可以发挥出难以想象的高效率和高性能。

- nosql不是否定关系数据库,而是作为关系数据库的一个重要补充。
  - nosql为了高性能、高并发而生,忽略影响高性能、高并发的功能。
  - nosql典型产品memcached(纯内存)、rcdis(持久化缓存),mongodb

非关系型数据库的分类:

- 键值存储数据库,典型的数据库有:memcached、redis等
  - 列存储数据库,典型的数据库有:cassandra、hbase等
  - 面向文档数据库,典型的数据库有:mongodb等

选择MySQL数据库的原因

  - MySQL性能卓越,服务稳定。很少出现异常宕机。
  - MySQL开放源代码且无版权制约,自主性及使用成本低。
  - MySQL历史悠久,社区及用户非常活跃,遇到问题,可以寻求帮助。
  - MySQL软件体积小,安装使用简单,并且易于文虎,安装及维护成本低。
  - MySQL品牌效应,使得企业无需考虑就直接用之,LAMP,LEMP流行架构
  - MySQL支持多种操作系统,提供多种API接口,支持多种开发语言,特别对流行的PHP语言有很好的的支持。

企业使用MySQL数据库的一些建议:

  - 稳定版:选择开源的社区版的稳定版GA版本。
  - 产品线:可以选择5.1或5.5.互联网公司主流5.5,其次是5.1和5.6
  - 选择MySQL数据库GA版发布后6个月以上的GA版本。
  - 要选择前后几个月没有大的bug修复的版本,而不是大量修复bug的集中版本。
  - 最好 较长时间没有更新发布的版本。
  - 要考虑开发人员开发程序使用的版本是否兼容你选的版本。
  - 作为内部开发测试数据库环境,跑大概3-6个月的时间。
  - 优先企业非核心业务采用新版本的数据库GA版本软件。
  - 向DBA高手请教,或者在及技术氛围好的群里和大家一起交流,使用真正的高手们用过的GA版本产品。
  - 经过上述工序之后,若没有重要的功能BUG或性能瓶颈,则可以开始考虑作为任何业务数据服务的后端数据库软件。

安装环境准备

主机名 IP z主机说明
docker-1 192.168.56.11 MySQL主服务器
docker-2 192.168.56.12 MySQL从服务器

实验环境检查

[[email protected] src]# ip a   #查看IP地址
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:dd:9e:d9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.11/24 brd 192.168.56.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fedd:9ed9/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:dd:9e:e3 brd ff:ff:ff:ff:ff:ff
[[email protected] src]#
[[email protected] src]# cat /etc/redhat-release    #查看系统版本
CentOS Linux release 7.3.1611 (Core)
[[email protected] src]#
[[email protected] src]# hostname   #查看主机名
docker-1
[[email protected] src]#
[[email protected] ~]# ntpdate time1.alyun.com  #同步时间、docker-2也需要同步

软件准备

[[email protected] etc]# cd /usr/local/
[[email protected] src]# wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37.tar.gz  #下载MySQL的源码包
[[email protected] src]# tar xf mysql-5.6.37.tar.gz #将下载的源码包解压到本地
[[email protected] src]# ll
total 31452
drwxr-xr-x 34 7161 31415     4096 Sep 16 11:38 mysql-5.6.37
-rw-r--r--  1 root root  32200158 Jun  2 23:54 mysql-5.6.37.tar.gz
[[email protected] mysql-5.6.37]# id mysql  #检查系统是否存在mysql用户
id: mysql: no such user     #如果不存在则创建mysql用户
[[email protected] mysql-5.6.37]# groupadd -g 550 mysql
[[email protected] mysql-5.6.37]# useradd -g mysql -u 550 mysql
[[email protected] mysql-5.6.37]# id mysql
uid=550(mysql) gid=550(mysql) groups=550(mysql)

安装编译前的依赖

[[email protected] mysql-5.6.37]# yum install cmake autoconf wget gcc-c++ gcc ncurses-devel -y
[[email protected] src]# cd mysql-5.6.37/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1  -DMYSQL_UNIX_ADDR=/var/run/mysql/mysqld.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci

执行完cmake之后、执行make和make install 整个过程时间较长、请稍等!

编译参数详解

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   #安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data \     #数据文件存放地
-DSYSCONFDIR=/etc \         #配置文件my.cnf存放地
-DWITH_MYISAM_STORAGE_ENGINE=1 \    #支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \  #支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1  \   #支持Memory引擎
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysqld.sock \  #连接数据库socket路径
-DMYSQL_TCP_PORT=3306 \     #数据库端口号
-DENABLED_LOCAL_INFILE=1 \  #允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE=1 \ #安装支持数据库分区
-DEXTRA_CHARSETS=all  \     #安装所有的字符集
-DDEFAULT_CHARSET=utf8  \   #默认字符
-DDEFAULT_COLLATION=utf8_general_ci  
[[email protected] local]# cd /usr/local/mysql
[[email protected] mysql]# ll   #编译后的文件
total 48
drwxr-xr-x  2 root root  4096 Sep 16 12:17 bin
-rw-r--r--  1 root root 17987 Jun  3 01:42 COPYING
drwxr-xr-x  3 root root    17 Sep 16 12:17 data
drwxr-xr-x  2 root root    52 Sep 16 12:17 docs
drwxr-xr-x  3 root root  4096 Sep 16 12:17 include
drwxr-xr-x  3 root root  4096 Sep 16 12:17 lib
drwxr-xr-x  4 root root    28 Sep 16 12:17 man
drwxr-xr-x 10 root root  4096 Sep 16 12:17 mysql-test
-rw-r--r--  1 root root  2496 Jun  3 01:42 README
drwxr-xr-x  2 root root    29 Sep 16 12:17 scripts
drwxr-xr-x 28 root root  4096 Sep 16 12:17 share
drwxr-xr-x  4 root root  4096 Sep 16 12:17 sql-bench
drwxr-xr-x  2 root root   130 Sep 16 12:17 support-files
[[email protected] mysql]# chown -R mysql.mysql *   #对当前目录授权

数据库初始化

初始化之前需要修改my.cnf文件、内容如下:
[[email protected] src]# less /etc/my.cnf
[mysql]
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld]
skip-grant-tables
explicit_defaults_for_timestamp=true
skip-name-resolve
port = 3306
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
max_connections = 200
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
!includedir /etc/my.cnf.d
[[email protected] mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data --no-defaults   #开始初始化

此时MySQL还是启动不了、还需要做些后续操作
[[email protected] mysql]# cp ./support-files/mysql.server /etc/init.d/mysql #拷贝启动文件
[[email protected] mysql]# chmod +x /etc/init.d/mysql
[[email protected] mysql]# /etc/init.d/mysql start  #启动报错了
Starting MySQL.Logging to ‘/var/log/mysql/mysql.log‘.
170916 12:28:00 mysqld_safe Directory ‘/var/lib/mysql‘ for UNIX socket file don‘t exists.
 ERROR! The server quit without updating PID file (/var/run/mysql/mysql.pid).
[[email protected] mysql]# mkdir /var/lib/mysql
[[email protected] mysql]# mkdir /var/log/mysql/ -p
[[email protected] mysql]# chown -R mysql.mysql /var/log/mysql
[[email protected] mysql]# mkdir /var/run/mysql
[[email protected] mysql]# chown mysql /var/run/mysql
[[email protected] mysql]# chown -R mysql.mysql /var/lib/mysql/
[[email protected] mysql]# /etc/init.d/mysql start  #再次启动
Starting MySQL. SUCCESS!    #成功
[[email protected] mysql]#
[[email protected] mysql]# ps aux|grep mysql    #查看mysql进程
root      49621  0.0  0.0 107904   660 pts/1    S+   12:30   0:00 tailf /var/log/mysql/mysql.log
root      50215  0.0  0.0 113268  1588 pts/0    S    12:31   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/var/run/mysql/mysql.pid
mysql     50464  1.5 11.8 1307016 457068 pts/0  Sl   12:31   0:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysql/mysql.log --pid-file=/var/run/mysql/mysql.pid --socket=/var/lib/mysql/mysql.sock --port=3306
root      50489  0.0  0.0 112660   964 pts/0    R+   12:32   0:00 grep --color=auto mysql
[[email protected] bin]# vim /etc/profile.d/mysql.sh    #设置mysql环境变量
export PATH=/usr/local/mysql/bin:$PATH
[[email protected] bin]# source /etc/profile
 #修改数据库密码
/usr/local/mysql/bin/mysqladmin -u root password ‘new-password‘
/usr/local/mysql/bin/mysqladmin -u root -h 192.168.56.11 password ‘new-password‘
#登录数据库
[[email protected] ~]# mysql -uroot -p -h127.0.0.1
Enter password:     #输入设置的密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.37 Source distribution

Copyright (c) 2000, 2017, 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>
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)

希望本文能够帮助到你 ^_^

原文地址:https://www.cnblogs.com/jianlin/p/9127302.html

时间: 2024-10-07 21:11:52

MySQL 5.6.37源码编译安装的相关文章

MySQL 5.7.9源码编译安装说明

一.环境说明 1.操作系统 系统版本:RHEL 6.3 X64 操作系统安装类型:Basic 系统安装包:gcc gcc-c++ bzip2(default) bzip2-devel bzip2-libs(default) python-devel ncurses-devel bison 1)gcc gcc-c++ [[email protected] Packages]# rpm -ivh kernel-headers-2.6.32-279.el6.x86_64.rpm warning: ke

MySQL 源码编译安装

脚本须知: 1. 该脚本目前只测试过mysql版本为5.6.x的源码,其他源码可以对本脚本稍作修改即可 2. 本脚本也可以使用wget mysql源码的方式进行,但考虑到后期提供源码的地址不可用,所以需要手动下载mysql 5.6.x的源码包并放入到/usr/local/src 3. 此脚本在编译安装过程中禁用了iptables和SElinux策略,如果你在使用iptalbes相关功能请先完成相关配置. 4. 该脚本主要是对此前尚未装过mysql的linux系统环境而写的,如果此前装过mysql

mysql-5.7.23源码编译安装

mysql-5.7.23源码编译安装 1.下载源码 # wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.23.tar.gz # tar xf mysql-5.7.23.tar.gz 2.隐藏版本信息 隐藏版本信息是XX电信运营商提出的变态要求,经测试版本信息不能直接删除,否则编译出错,暂时修改为100.100.100 # cd mysql-5.7.23 # vim VERSION MYSQL_VERSION_MAJOR=100

linux学习笔记——源码编译安装Mysql

#######Redhat6.5源码编译安装Mysql########实验环境:1.IP:172.25.8.32.磁盘要大于20G先添加一块大于20G的磁盘fdisk /dev/vdb        ##得到/dev/vdb1 8e linuxpvcreate /dev/vdb1    ##把物理分区做成物理卷vgextend vg_server1 /dev/vdb1    ##把新建立的/dev/vdb1添加到vg_server1中lvextend -L 20G /dev/vg_server1

CentOS源码编译安装MySQL 5.5.15

CentOS源码编译安装MySQL 5.5.15 文章目录 [隐藏] 安装编译工具 下载源码 安装cmake和bison 编译安装MySQL 一些相关设置 安装编译工具 yum install gcc gcc-c++ yum install ncurses-devel 下载源码 mkdir -p /tmp cd /tmp wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.15.tar.gz/from/http://mysql.

MySQL源码编译安装(CentOS-6.6+MySQL-5.6)

MySQL源码编译安装(CentOS-6.6+MySQL-5.6) 部署环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso MySQL版本:mysql-5.6.26.tar.gz 操作用户:root 系统IP:192.168.1.205 主机名:edu-mysql-01 配置:4核.4G内存 一.服务器配置: 1.配置网络 # vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=stati

CentOS 6.6 下源码编译安装MySQL 5.7.5

版权声明:转自:http://www.linuxidc.com/Linux/2015-08/121667.htm 说明:CentOS 6.6 下源码编译安装MySQL 5.7.5 1. 安装相关工具# yum -y install gcc-c++ ncurses-devel cmake make perl \ gcc autoconf automake zlib libxml libgcrypt libtool bison2. 清理环境检查boost版本: # rpm -qa boost*卸载b

源码编译安装 MySQL 5.5.x 实践(转)

1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz # tar zxvf cmake-2.8.4.tar.gz # cd cmake-2.8.4 # ./configure# make# make install 2.确保以下所需系统软件包已经被安装通过

源码编译安装 MySQL 5.5.x 实践

1.安装cmakeMySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具.因此,我们首先要在系统中源码编译安装cmake工具. # wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz # tar zxvf cmake-2.8.4.tar.gz # cd cmake-2.8.4 # ./configure# make# make install 2.确保以下所需系统软件包已经被安装通过