前言:21世纪,人类迈入了“信息爆炸时代”,大量的数据、信息在不断产生,伴随而来的就是如何安全、有效地存储、检索和管理它们。对数据的有效存储、高效访问、方便共享和安全控制已经成为信息时代有待解决的问题。
使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速、方便地管理数据。数据库具有以下特点:
数据库技术是计算机科学的核心技术之一,具有完备的理论基础。对数据库基本概念的掌握,将有助于对数据库的理解。
自20世纪60年代起,第一代数据库系统问世。它们是层次模型与网状模型的数据库系统,为统一管理和共享数据提供了有力的支撑。
20世纪70年代初,第二代数据库—关系数据库开始出现
20世纪80年代初,旧BM公司的关系数据库系统DB2问世,作为第二代数据库系统的关系数据库,开始逐步取代层次与网状模型的数据库,成为占主导地位的数据库,成为行业主流。到目前为止,关系数据库系统仍占领数据库应用的主要地位
自20世纪80年代开始,各种适应不同领域的新型数据库系统不断涌现,如工程数据库、多媒体数据库、图形数据库、智能数据库、分布式数据库及面向对象数据库等,特别是面向对象数据库系统,由于其实用性强、适应面广而受到人们的青睐
20世纪90年代后期,形成了多种数据库系统共同支撑应用的局面。当然,在商务应用方面,依然还是关系数据库占主流,不过,已经有一些新的元素被添加进主流商务数据库系统中。例如, Oracle支持的“关系-对象”数据库模型
■ SQL Server(微软公司产品)
■ Oracle(甲骨文公司产品)
■DB2(BM公司产品)
■ MySQL(甲骨文公司收购)
所有实体及实体之间联系的集合构成一个关系数据库
—— 关系型书数据库
—— 关系型数据库应用举例
[root@localhost ~]# mkdir /abc
[root@localhost ~]# mount.cifs //192.168.10.38/bao /abc
Password for root@//192.168.10.38/bao:
[root@localhost all]# ls //将所需要的包挂载过来
awstats-7.6.tar.gz boost_1_59_0.tar.gz LNMP-C7.rar navicatformysql.rar
boost_1_59_0.tar (1).gz LAMP-C7.rar mysql-5.7.17.tar.gz shells.rar
[root@localhost all]# tar zxvf boost_1_59_0.tar.gz -C /usr/local
[root@localhost all]# tar zxvf mysql-5.7.17.tar.gz -C /opt //解压
[root@localhost ~]# yum install gcc gcc-c++ ncurses ncurses-devel cmake bison -y //安装所需要的环境包
[root@localhost all]# useradd -s /sbin/nologin mysql //给予权限
[root@localhost all]# cd /usr/local
[root@localhost local]# mv boost_1_59_0/ boost //重改个名字方便使用
[root@localhost local]# ls
bin boost etc games
[root@localhost local]# cd /opt/mysql-5.7.17/
[root@localhost mysql-5.7.17]# cmake \ //手工编译
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ //sock;通讯文件,连接数据库,通讯协议的载体
-DSYSCONFDIR=/etc \ //配置目录指向etc
-DSYSTEMD_PID_DIR=/usr/local/mysql \ //pid文件位置
-DDEFAULT_CHARSET=utf8 \ //此行和下一行为字符集相关
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //此行和下三行为存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \ //指定数据存放位置
-DWITH_BOOST=/usr/localboost \ //指定boost位置
-DWITH_SYSTEMD=1 //守护进程
[root@localhost mysql-5.7.17]# make && make install
[root@localhost mysql-5.7.17]# chown -R mysql.mysql /usr/local/mysql/ //定义mysql服务用户权限
[root@localhost mysql-5.7.17]# vim /etc/my.cnf //给与相关定义
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
[root@localhost mysql-5.7.17]# chown mysql.mysql /etc/my.cnf //赋予权限
[root@localhost mysql-5.7.17]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile //让系统能够识别mysql相关命令以及数据库
[root@localhost mysql-5.7.17]# echo 'export PATH' >> /etc/profile
[root@localhost mysql-5.7.17]# source /etc/profile //执行
[root@localhost mysql-5.7.17]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld \ //初始化数据库
> --initialize-insecure \
> --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data
[root@localhost mysql]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system //让系统能够管理service启动脚本
[root@localhost mysql]# systemctl daemon-reload //重载服务
[root@localhost mysql]# systemctl start mysqld //启动服务
[root@localhost mysql]# netstat -ntap|grep 3306 //查看端口是否开启
tcp6 0 0 :::3306 :::* LISTEN 53253/mysqld
[root@localhost mysql]# systemctl enable mysqld //开机自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
[root@localhost mysql]# mysqladmin -u root -p password "1234" //创建密码
Enter password:
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
[root@localhost mysql]# mysql -uroot -p //进入数据库
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.17 Source distribution
Copyright (c) 2000, 2016, 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 'root '@'%' identified by '1234' with grant option;
Query OK, 0 rows affected, 1 warning (0.01 sec) //提供所有权限给所有数据库中得所有表让root用户能够从任意终端通过密码登录
mysql> quit //退出
Bye
[root@localhost abc]# systemctl stop firewalld.service //关闭防火墙
[root@localhost abc]# setenforce 0
使用navicat软件
链接安装MySQL数据库的虚拟机
在图形化界面上已经登录所部署好的数据库,可以进入字符界面验证
[root@localhost abc]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.17 Source distribution
Copyright (c) 2000, 2016, 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> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>