首页 > 数据库技术 > 详细

【MySQL】无基础学习和入门

时间:2016-02-03 12:37:34      阅读:362      评论:0      收藏:0      [点我收藏+]

概述
  大部分互联网公司都选择MySQL作为业务数据存储数据库,除了MySQL目前还有很多公司使用Oracle(甲骨文)、SQLserver(微软)、MongoDB等。
从使用成本来区分可以将数据库分为企业版数据库(商业化)及社区版开源数据库:企业版数据库属于收费型软件,需要购买License或者Key,否则会在使用中受限于用户或数据大小的控制;开源数据库属于免费公开的类型,使用者不用花钱购买许可就可以使用。
  像Oracle(甲骨文)企业版、SQL server(微软)、MySQL(甲骨文)企业版、DB2(IBM)属于企业版,MySQL社区版为开源版本。通常商业版本拥有更多的功能,同时拥有软件供应商的技术支持(但是通常技术支持很昂贵),所以银行以及垄断行业国企(电信行业)一般使用企业版数据库。互联网行业兴起后,对于数据的使用量需求增大,同时由于很多社区版数据库功能逐步丰富和性能的提高,互联网公司逐步从优先选择企业版数据库的思路转换尝试免费的社区版本,这样能够降低可观的使用成本(像一般中大型互联网公司的数据需求量,如果使用企业版本数据库则需要花费千万甚至上亿的资金购买企业正版认证和服务),相比较一个数据库工程师或者一个数据库工程师团队的人力成本要低很多。
  前面大部分说的都是传统关系型数据库,关系型数据库的官方定义为:“建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据”。其中重点在于“建立在关系模型基础上的数据库”,后面会形象解释区别;针对关系型数据库还有非关系型数据库,非关系型数据库被人们统称NoSQL,像常用的Redis、MongoDB、Memcached等。关系型和非关系型数据库在数据存储是都是遵循Key-Value对应的,例如“用户名=张三,性别=男,年龄=20”,其中用户名、性别、年龄就是Key,对应的张三、男和20就是Value,这样就可以利用对应条件例如“用户名”是“张三”找到对应的“张三”的属性“性别=男,年龄=20”。
通常可以把关系型数据库中的Table(表)想象成一个标准的Excel文件中的sheet(页下签),在页面的第一行中是各个列的属性(列属性实际是表结构定义好的,列属性不单有列名,还包含其他属性,且在真正使用中列属性通常是隐式的),例如上面说的用户名、性别、年龄,列属性下面的所有内容就是所有数据,每一行的内容都是按照列属性定义好的,例如第一行是“张三,男,20”,第二行是“李四,男,21”。
  非关系型数据库其实也是遵循Key-Value的,利用MongoDB举例(MongoDB是文档型数据库,其中的文档可以理解为数据行,数据表叫作集合),在MongoDB的集合中不规定你必须存储什么样的数据,既可以存储文档为“用户名=张三,性别=男,年龄=20”,也可以存储文档为“国家=中国,城市=北京”,列属性和列数量没有关系型数据库的表结构定义限制。关系型数据库与非关系型数据库没有好与坏的区分,他们需要根据不同业务场景和业务功能需要来使用。(简单了解即可)
  MySQL的社区版又有很多分支,例如官方MySQL社区版、Percona社区版、MariaDB版本等,虽然他们软件提供方不一样,但实际都是在MySQL主要代码基础上封装了一些特有功能特点,例如MySQL 5.5版本、Percona 5.5版本和MariaDB 5.5版本基本功能是一样的。在实际工作中需要每个公司出的小版本都有哪些特性和新功能。
  数据库工程师英文全称是Database Administator,简称DBA,根据不同的数据库可以分为Oracle DBA、SQL Server DBA、MySQL DBA等。
  MySQL 5.5官网功能说明索引:http://dev.mysql.com/doc/refman/5.5/en/
  目前MySQL官方大版本为5.7。

 

1、安装
源码、分发包、rpm安装的区别和适用场景
源码包:
  源码包就是程序源代码包,其中包含程序代码文件,这些代码文件是文本型,可以直接通过编辑器打开阅读内容,这里的程序还不能直接使用,因为操作系统和电脑无法直接调用文本代码,需要语言编译器将文本代码编译成二进制文件,编译完成的输出就是分发包。Windows系统安装软件时经常会出现一个自定义安装的选项,用户可以自主选择软件部分功能安装,取消安装不需要的组件,增加安装默认组件外的可选功能,在Linux系统上是通过编译参数控制软件自带功能的安装,稍后在编译安装MySQL时会举例说明。
分发包:
  分发包是通过源码包编译完成的软件,可以直接使用。由于在公司生产环境中可能会出现Linux服务器版本不同、底层c和c++等语言库版本不同,可以根据系统环境版本及稳定性的需要选择源码包编译安装,或直接使用分发包。源码包编译安装可以根据自己需要选择开启或关闭一些功能,分发包由于是已经编译好的,无法再进行选择和调整,除非重新修改编译参数再编译。
rpm安装:
  Linux系统提供yum命令的简单快捷软件安装方式,当Linux系统联网且yum源配置完成后,使用“yum install”加软件包名就可以安装该软件以及相关所需要的环境。
  如果Linux系统主机未联网也可以在其他主机上登录软件官网下载rpm包,然后上传到该主机上使用rpm命令进行安装,但是系统会校验所需要的环境。

 

熟悉MySQL的三种安装方式:源码、分发包、rpm
MySQL官方下载地址:http://dev.mysql.com/downloads/mysql/
在下载页面中“Select Platform”的“Source Code”是源码包,“Linux - Generic”是官方分发包,“Red Hat EnterPrise Linux/Oracle Linux”中下载rpm包。
源码包安装:

#需要安装cmake,如果没有配置yum源可以编译安装
yum -y install cmake.x86_64
#解压源码包
tar -zxvf mysql-5.5.40.tar.gz
#进入源码包目录
cd mysql-5.5.40
#cmake源码参数
#注意参数“-DCMAKE_INSTALL_PREFIX=”控制MySQL源码编译完软件放置的路径,通常情况用户自主安装的软件放置在“/usr/local/”下
#参数“-DWITH_INNOBASE_STORAGE_ENGINE=1”说明开启InnoDB引擎
#参数“-DDEFAULT_CHARSET=utf8”说明默认使用的字符集为utf8(字符集后面解释)
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
#编译
make && make install
#编译完成后可以查看安装完成的软件
[root@test1 ~]# cd /usr/local/mysql
[root@test1 mysql]# ll
total 200
drwxr-xr-x 2 root root 4096 Oct 21 15:19 bin
-rw-r--r-- 1 root root 17987 Mar 15 2014 COPYING
drwxr-xr-x 3 root root 4096 Sep 6 09:32 data
drwxr-xr-x 2 root root 4096 Sep 6 09:32 docs
drwxr-xr-x 3 root root 4096 Sep 6 09:32 include
-rw-r--r-- 1 root root 133770 Mar 15 2014 INSTALL-BINARY
drwxr-xr-x 3 root root 4096 Sep 6 09:32 lib
drwxr-xr-x 4 root root 4096 Sep 6 09:32 man
drwxr-xr-x 10 root root 4096 Sep 6 09:32 mysql-test
-rw-r--r-- 1 root root 2496 Mar 15 2014 README
drwxr-xr-x 2 root root 4096 Oct 22 17:57 scripts
drwxr-xr-x 27 root root 4096 Sep 6 09:32 share
drwxr-xr-x 4 root root 4096 Sep 6 09:32 sql-bench
drwxr-xr-x 3 root root 4096 Sep 6 09:32 support-files
#bin路径下都是MySQL的命令,包含MySQL启动、停止、备份等命令
#include、lib等路径下都是MySQL底层编译完成的类库文件
#scripts下面有初始化MySQL的脚本,每个MySQL都需要初始化建立最基础的系统表及用户表(也可以使用相同版本的初始化文件在其他未初始化实例中使用,就可以省略执行初始化脚本)

分发包安装:

#解压分发包
tar -zxvf mysql-5.5.41-linux-x86_64.tar.gz
#解压完成以后就会像上面编译安装完后的样子

yum/rpm包安装:

#如果系统可以联网且配置yum源可以直接yum安装
yum install -y mysql*
#如果未联网的系统可以下载好rpm包上传,然后使用rpm -ivh安装

 

安装完成后生成的文件
编译完成后生成的文件及文件夹如上面编译示例,分发包解压完成后也大致相同。但是编译安装后MySQL的路径是由编译前cmake参数控制的,编译完成MySQL文件会拷贝至该路径下。
分发包解压就可以使用。
yum和rpm安装会将MySQL命令安装到系统默认安装路径下。

 

【MySQL】无基础学习和入门

原文:http://www.cnblogs.com/jiangxu67/p/5179342.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!