开源服务专题之--------mysql的编译安装

时间:2023-02-19 12:03:55

为什么选择MySQL

1:mysql性能卓越,服务稳定,很少出现异常宕机

2:mysql开源免费,无版权制约,自主性及使用成本低

3:产品耦合度,mysql支持多种操作系统,支持多开发语言,特别是php

4:技术积累,庞大的活跃的社区,

5:软件体积小,安装简单,易于维护

MySQL数据库分类与版本升级

MySQL官网http://www.mysql.com/,MySQL版本采用双授权政策,和大多数开源产品路线一样,分为社区版和商业版,并且这两个版本又分别分成四个版本依次发布,Alpha版、Beta版、RC版和GA版

GA版即为正式版

1:社区版和企业版的区别

1) 首先价格上,社区版完全免费,企业版需要高额的费用

2) 技术上,企业版具有MySQL企业级服务器、MySQL企业级系统监控工具。企业版经过严格的测试认证,相对企业版,社区版的开发测试环境没有那么严格

3)服务方面,社区版mysql官方不提供任何技术支持,使用过程出现任何意外不负任何责任,企业版与之相反

4)商业版不支持GPL协议

2:MySQL产品路线

三条产品线

1)5.0.XX到5.1.XX产品系列

这条产品线继续完善改进用户体验和性能,同时增加新功能,是mysql早期产品的延续,如rhel6自带的mysql

2)5.4.XX开始到5.7.XX产品系列

mysql社区和第三方公司percona整合的,吸收新的算法和存储引擎,现在已经到了5.6.26

3)6.0.XX到7.X.XX产品系列

主要是为了更好的推广MySQL Cluster版本,提供Cluster版本的性能和稳定性,这个版本比较少公司用,原因是出来太晚了

MySQL安装

生产环境怎么选择MySQL版本

1:选择稳定版 选择社区的GA版

2:产品线,主要是5.1和5.5 ,多数5.5

3:选择MySQL GA版发布6个月以上的版本

4:最好向后较长时间没有更新发布的版本

5:与开发人员使用版本的兼容

6:测试环境跑3-6个月

7:到生产环境非核心业务跑几个月

MySQL安装方法

1:使用二进制方式安装,rpm/yum

2: 源码编译,产品线路1用普通编译安装,线路2用cmake编译安装5.5/6/7

3:批量部署,src.rpm  通过spec文件

环境:CentOS6.5x86-64(此为本文环境,但实际上包括但不限于),提前配置好本地和在线yum源,准备好mysql的源码包(本文mysql-5.5.32)

源码编译安装普通的编译安装,在nginx中已经给出了详细的过程,本文将重点讲述mysql的cmake的编译安装,以mysql-5.5.32为例。

1.安装cmake编译工具

[root@xiaolyu76 ~]# yum install cmake -y

开源服务专题之--------mysql的编译安装

2.下载MySQL

[root@xiaolyu76 ~]# wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.5/mysql-5.5.32.tar.gz

3. 安装依赖包

[root@xiaolyu76 ~]# yum install ncurses-devel –y    //用于终端操作的开发包

4. 添加用户

[root@xiaolyu76 ~]# useradd -u  -s /sbin/nologin mysql

开源服务专题之--------mysql的编译安装

5. 创建数据库存放目录

[root@xiaolyu76 ~]# mkdir /data
[root@xiaolyu76 ~]# tar zxf mysql-5.5..tar.gz
[root@xiaolyu76 ~]# cd mysql-5.5.
[root@xiaolyu76 mysql-5.5.]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci-DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE= -DWITH_INNOBASE_STORAGE_ENGINE=-DWITH_MEMORY_STORAGE_ENGINE= -DWITH_READLINE= -DENABLED_LOCAL_INFILE=-DMYSQL_DATADIR=/data -DMYSQL_USER=mysql
utf8 -DDEFAULT_COLLATION=utf8_general_ci-DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE= -DWITH_INNOBASE_STORAGE_ENGINE=-DWITH_MEMORY_STORAGE_ENGINE= -DWITH_READLINE= -DENABLED_LOCAL_INFILE=-DMYSQL_DATADIR=/data -DMYSQL_USER=mysql
[root@xiaolyu76 mysql-5.5.]# make -j  && make install -j  
//指使用4个cpu核心数,如我们的双核四线程,就可以写4

参数说明:

-DCMAKE_INSTALL_PREFIX           数据文件存放目录

-DMYSQL_UNIX_ADDR                sock文件路径

-DDEFAULT_CHARSET                默认字符集

-DDEFAULT_COLLATION           默认字符校对

-DWITH_EXTRA_CHARSETS           扩展字符支持  默认all

-DWITH_storage_STORAGE_ENGINE    存储引擎的支持,默认支持MyISAM,MERGE,MEMORY,CVS存储引擎

-DENABLED_LOCAL_INFILE=1         启用加载本地数据

-DMYSQL_DATADIR                  数据存放目录

-DMYSQL_USER                     mysql运行用户

扩展:

-DWITH_PARTITION_STORAGE_ENGINE=1   支持分区表

-DINSTALL_LIBDIR=dir_name

-DSYSCONFDIR=dir_name    The default my.cnf option file directory

开源服务专题之--------mysql的编译安装

开源服务专题之--------mysql的编译安装

开源服务专题之--------mysql的编译安装

7. 授权用户

[root@xiaolyu76 mysql-5.5.]# chown -R mysql:mysql /usr/local/mysql/
[root@xiaolyu76 mysql-5.5.]# chown -R mysql:mysql /data
[root@xiaolyu76 mysql-5.5.]# chmod /tmp

开源服务专题之--------mysql的编译安装

8. 创建配置文件

[root@xiaolyu76 mysql-5.5.]# cp support-files/my-large.cnf /etc/my.cnf

开源服务专题之--------mysql的编译安装

9. 设置环境变量

[root@xiaolyu76 mysql-5.5.]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
[root@xiaolyu76 mysql-5.5.]# source !$

开源服务专题之--------mysql的编译安装

10. 创建服务启动脚本,添加开机启动

[root@xiaolyu76 mysql-5.5.]# cp support-files/mysql.server/etc/init.d/mysqld
[root@xiaolyu76 mysql-5.5.]# chmod +x /etc/init.d/mysqld //给脚本添加执行权限
[root@xiaolyu76 mysql-5.5.]# vim /etc/init.d/mysqld //服务启动脚本要修改以下两个参数
basedir=/usr/local/mysql //MySQL安装目录
datadir= /data //数据存放目录 [root@xiaolyu76 mysql-5.5.]# chkconfig mysqld on //添加开机启动

开源服务专题之--------mysql的编译安装

开源服务专题之--------mysql的编译安装

11. 初始化数据库

[root@xiaolyu76 mysql-5.5.]# chmod +x scripts/mysql_install_db 
[root@xiaolyu76 mysql-5.5.]# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data--user=mysql //看到两个ok就成功

开源服务专题之--------mysql的编译安装

开源服务专题之--------mysql的编译安装

12. 初始化安全配置

[root@xiaolyu76 mysql-5.5.]#  service mysqld start  //启动mysql服务。
[root@xiaolyu76 mysql-5.5.]# service mysqld status //察看mysql服务的状态
[root@xiaolyu76 mysql-5.5.]# mysql_secure_installation 安全初始化配置 //注意: 初始化安全配置之前,一定要启动mysql服务

开源服务专题之--------mysql的编译安装

开源服务专题之--------mysql的编译安装

开源服务专题之--------mysql的编译安装

开源服务专题之--------mysql的编译安装

开源服务专题之--------mysql的编译安装

开源服务专题之--------mysql的编译安装

13. 创建用户和数据库

[root@xiaolyu76 mysql-5.5.32]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.5.-log Source distribution Copyright (c) , , 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> grant all privileges on *.* to system@'%' identified by '123456' with grant option;
//创建system用户赋予它在任何服务器上登录的权限。 %代表任意的server。localhost只能在本机上登录。

开源服务专题之--------mysql的编译安装

14. 测试mysql是否安装成功

创建game数据库,并用system用户在宿主机上用第三方工具登录

create database game;

开源服务专题之--------mysql的编译安装

开源服务专题之--------mysql的编译安装

开源服务专题之--------mysql的编译安装

ok, 测试成功,表明我前面的mysql数据库cmake编译安装成功。

开源服务专题之--------mysql的编译安装的更多相关文章

  1. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  2. 开源服务专题之------sshd服务安装管理及配置文件理解和安全调优

    本专题我将讨论一下开源服务,随着开源社区的日趋丰富,开源软件.开源服务,已经成为人类的一种公共资源,发展势头可谓一日千里,所以不可不知.SSHD服务,在我们的linux服务器上经常用到,很重要,涉及到 ...

  3. 开源服务专题之------ssh防止暴力破解及fail2ban的使用方法

    15年出现的JAVA反序列化漏洞,另一个是redis配置不当导致机器入侵.只要redis是用root启动的并且未授权的话,就可以通过set方式直接写入一个authorized_keys到系统的/roo ...

  4. 【MySQL】编译安装

    安装所需环境: yum install cmake make glibc gcc gcc-c++ libstdc++* sysstat lrzsz libtool libxml* libtool-lt ...

  5. MySql的编译安装

    一 前期准备 1 cmake包,要求2.8以上版本 https://cmake.org/download/ 2 boost库包 boost Boost库是一个可移植.提供源代码的C++库,作为标准库的 ...

  6. 开源服务专题之-------rsync数据备份

    RSYNC是Remote Sync 远程同步的简称,与SCP的比较,SCP= 无法备份大量数据,类似windows的复制,而rsync=边复制 ,边统计,边比较,可以备份大量数据.可以镜像保存整个目录 ...

  7. linux服务基础(一)之CentOS6编译安装httpd2.4

    安装http-2.4 Http依赖于apr-1.4+,apr-util-1.4+ CentOS6上默认是apr-1.3,apr-util1.3 先编译安装apr-1.5,apr-util-1.5 开始 ...

  8. openssl,db,mysql,sasl编译安装

    yum -y install nfs-utils nfs4-acl-tools nfs-utils-libyum -y install gcc gcc* libtool libtools-ltdl l ...

  9. shell脚本专题之-----------全自动编译安装mysql

    mysql的编译安装,在博客 开源服务专题之--------mysql的编译安装 中已经说明了,但是还是比较麻烦,尤其是一大堆命令,来手动执行,稍有不慎,就会出错.生产上一般都是先在本地测试环境进行自 ...

随机推荐

  1. C# 中反射获取某类的子类和根据类型名动态创建对象

    有时候,为了快速批量处理已经实现某个基类或者某个接口的子类,需要通过反射的方式获取到他们的类类型(Type),然后再通过 1 Activator.CreateInstance(objType); 或者 ...

  2. php header头信息 举例

    发布:sunday01   来源:Net     [大 中 小] 转自:http://www.jbxue.com/article/6915.html 用于演示PHP header()函数用法的代码,介 ...

  3. network: Android 网络判断(wifi、3G与其他)

    package mark.zeng; import Java.util.List; import Android.content.Context; import android.location.Lo ...

  4. mysqlbinlog查看 binlog日志报错mysqlbinlog: unknown variable 'default-character-set=utf8mb4'

    今天,查看mysql slave节点 binlog日志信息时,执行mysqlbinlog命令报错mysqlbinlog: unknown variable 'default-character-set ...

  5. Python+Django+SAE系列教程14-----使表单更安全

    还记得我们上一章提到过的加入页面吗? watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVtZW5nMTk4MA==/font/5a6L5L2T/fonts ...

  6. 【我的书】Unity Shader的书 — 文件夹(2015.12.21更新)

    写在前面 感谢全部点进来看的朋友.没错.我眼下打算写一本关于Unity Shader的书. 出书的目的有以下几个: 总结我接触Unity Shader以来的历程,给其它人一个借鉴.我非常明确学Shad ...

  7. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(7)-DBSession的封装

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(7)-DBSession的封装 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)   (1):框架搭建    ...

  8. phpcms如何做企业站--> 替换首页最初操作

    首先用一个静态首页的模板,通过cms进行替换做成一个有后台的 首页的替换流程首先要先把静态网页做出来,拿这个页面去替换 页面所有的文件都在这,做静态页面的文件 现在要做的是把这些文件复制一下拿到php ...

  9. 【子非鱼】插入排序过程呈现之java内置GUI表示

    先给代码,再给过程视频: package com.dyi.wyb.sort; import java.awt.Color; import java.awt.Graphics; import java. ...

  10. Python中的__init__()和__call__()函数

    Python中的__init__()和__call__()函数 在Python的class中有一些函数往往具有特殊的意义.__init__()和__call__()就是class很有用的两类特殊的函数 ...