数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。
所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。
非关系型数据库
NoSQL:非关系型数据库(NotonlySQL)
关系型数据库
关系型数据库的特点
二维表典型产品Oracle传统企业,MySQL是互联网企业数据存取是通过SQL(结构化查询语句)最大特点,数据安全性方面强(ACID)1.1.3NoSQL特性总览l不是否定关系型数据库,而是作为补充,现在也有部分替代的趋势。
l现在也在提升安全性和使用功能。
l典型产品:Redis(持久化缓存,两个半天)、MongoDB(最接近关系型数据的NoSQL)、Memcached。
l管理不适用SQL管理,而是用一些特殊的API或数据接口。
键值(KV)存储:Memcached、Redis
列存储(column-oriented):HBASE(新浪,360)、Cassandra(200台服务器集群)
文档数据库(document-oriented):MongoDB(最接近关系型数据库的NoSQL)
图形存储(Graph):Neo4j
Oracle数据库版本介绍
7--8i--9i--10g—11g--12c--18c()
Oracle的市场应用
a)市场份额第一,趋势递减
b)市场空间,传统企业
c)传统企业也在互联网化
MySQL数据库版本介绍
5.0--5.1--5.5--5.6--5.7--8.0
MySQL的市场应用
a)中、大型互联网公司
b)市场空间:互联网领域第一
c)趋势明显
d)同源产品:MariaDB、perconaDB
微软:SQLServer
微软和sysbase合作开发的产品,后来自己开发,windows平台3,4线小公司,传统行业在用IBM:DB2数据库
市场占有量小
目前只有:国有银行(人行、中国银行、工商银行等)、中国移动应用。
下面三者广泛应用在大型互联网公司
mysql产品线(主线)
3.26--5.2版本
–正宗后代
–Centos5、6中默认有5.1版本
–Centos7中默认是MariaDB
5.4--5.7,8.0版本
–借鉴社区好的贡献,进一步开发的版本
–主流版本:5.55.65.7
MySQLCluster6.0版本&更高
–类似于OracleRAC,硬件要求高。
–一般各大网站没有人用
mysql产品线(派生产品)
派生版本有Drizzle、MariaDB、PerconaServer及OurDelta等。
yuminstall-yncurses-devellibaio-devel安装cmake编译工具
cmake
定制功能:存储引擎、字符集、压缩等
定制安装位置、数据存储位置、文件位置(socket)
yuminstallcmake-y创建mysql管理用户
useradd-s/sbin/nologin-Mmysql-u1000idmysql下载mysql软件包,解压
cdmysql-5.6.36cmake.-DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36\-DMYSQL_DATADIR=/application/mysql-5.6.36/data\-DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock\-DDEFAULT_CHARSET=utf8\-DDEFAULT_COLLATION=utf8_general_ci\-DWITH_EXTRA_CHARSETS=all\-DWITH_INNOBASE_STORAGE_ENGINE=1\-DWITH_FEDERATED_STORAGE_ENGINE=1\-DWITH_BLACKHOLE_STORAGE_ENGINE=1\-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1\-DWITH_ZLIB=bundled\-DWITH_SSL=bundled\-DENABLED_LOCAL_INFILE=1\-DWITH_EMBEDDED_SERVER=1\-DENABLE_DOWNLOADS=1\-DWITH_DEBUG=0make&&makeinstallln-s/application/mysql-5.6.36//application/mysql1.4.3数据库安装后的操作复制配置文件
\cp/application/mysql/support-files/my-default.cnf/etc/my.cnf编译的MySQL可以暂时不需要设置配置文件。
注意:如果以前操作系统中安装过rpm格式的mysql,系统中可能会遗留/etc/my.cnf文件,我们需要将它删除掉
初始化数据库
/application/mysql/scripts/mysql_install_db--basedir=/application/mysql/--datadir=/application/mysql/data--user=mysql防止报错:数据库启动会提示,找不到xx/tmp/mysql.sock,原因是5.6.36版本不会自动创建tmp目录,需要我们手工创建。
mkdir/application/mysql/tmp修改程序目录的属主,属组
chown-Rmysql.mysql/application/mysql/复制启动脚本,并修改权限
cpsupport-files/mysql.server/etc/init.d/mysqldchmod700/etc/init.d/mysqld添加环境变量,使用mysql命令
echo'PATH=/application/mysql/bin/:$PATH'>>/etc/profiletail-1/etc/profilesource/etc/profileecho$PATHmysql1.4.4数据库安全设置设置root用户密码
mysqladmin-urootpassword'123456'mysql-uroot-p123456优化数据库(清理用户及无用数据库)
selectuser,hostfrommysql.user;dropuser''@'db02';dropuser''@'localhost';dropuser'root'@'db02';dropuser'root'@'::1';selectuser,hostfrommysql.user;dropdatabasetest;showdatabases;1.5mysql5.7版本安装说明主机系统环境说明
[root@db13~]#cat/etc/redhat-releaseCentOSrelease6.9(Final)[root@db13~]#uname-r2.6.32-696.el6.x86_64[root@db13~]#getenforceDisabled[root@db13~]#/etc/init.d/iptablesstatusiptables:Firewallisnotrunning.[root@db13~]#hostname-I10.0.0.153172.16.1.153获取软件(采用二进制包方式进行安装)
tarxfmysql-5.7.17-linux-glibc2.5-x86_64.tar.gz将软件移动到程序目录,创建软连接
useradd-M-s/sbin/nologin-u1000mysqlchown-Rmysql.mysql/application/mysql-5.7.17初始化数据库
/application/mysql-5.7.17/bin/mysqld--initialize--user=mysql--basedir=/application/mysql-5.7.17--datadir=/application/mysql-5.7.17/data初始化时注意最后一行输出root密码
2017-12-13T08:40:31.760309Z1[Note]Atemporarypasswordisgeneratedforroot@localhost:)*1E7=fYd&>i拷贝配置文件和启动文件
\cp/application/mysql-5.7.17/support-files/my-default.cnf/etc/my.cn\cp\application/mysql-5.7.17/support-files/mysql.server/etc/init.d/mysqld#修改启动文件内容(配置目录)
将程序安装到/usr/local/下可以省略这步操作
sed's#/usr/local#/application#g'/application/mysql-5.7.17/bin/mysqld_safe/etc/init.d/mysqld-i启动mysql
[root@db13tools]#/etc/init.d/mysqldstartStartingMySQL.Loggingto'/application/mysql/data/db13.err'.SUCCESS![root@db13tools]#/etc/init.d/mysqldstatusSUCCESS!MySQLrunning(1509)添加环境变量
echo'PATH=/application/mysql/bin/:$PATH'>>/etc/profiletail-1/etc/profilesource/etc/profileecho$PATH