MySQL数据库的优势及安装方法
下面一起来了解下MySQL数据库的优势及安装方法,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL数据库的优势及安装方法这篇短内容是你想要的。
创新互联建站是一家集网站建设,扎赉诺尔企业网站建设,扎赉诺尔品牌网站建设,网站定制,扎赉诺尔网站建设报价,网络营销,网络优化,扎赉诺尔网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
数据库的基本概念
数据
- 描述事物的符号记录称为数据(Data)
- 包括数字、文字、图形、图像、声音、档案记录等
- 以“记录”形式按统一的格式进行存储
表
- 将不同的记录组织在一起,就形成了“表”
- 是用来存储具体数据的
数据库
- 数据库就是表的集合,是存储数据的仓库
- 以一定的组织方式存储的相互有关的数据
数据库系统发展史
第一代数据库
- 自20世纪60年代起,第一代数据库系统问世。它们是层次模型与网状模型的数据库系统,为统一管理和共享数据提供了有力的支撑
第二代数据库
- 20世纪70年代初,第二代数据库——关系数据库开始出现
- 20世纪80年代初,IBM公司的关系数据库系统DB2问世,作为第二代数据库系统的关系数据库,开始逐步取代层次与网状模型的数据库,成为占主导地位的数据库,成为行业主流。到目前为止,关系数据库系统仍占领数据库应用的主要地位
第三代数据库
- 自20世纪80年代起,各种适应不同领域的新型数据库系统不断涌现,如工程数据库、多媒体数据库、图形数据库、智能数据库、分布式数据库及面向对象数据库等,特别是面向对象数据库系统,由于其实用性强、适应面广而受到人们的青睐
- 20世纪90年代后期,形成了多种数据库系统共同支撑应用的局面。当然,在商务应用方面,依然还是关系数据库占主流,不过,已经有一些新的元素被添加进主流商务数据库系统中。例如,Oracle支持的"关系—对象”数据库模型
当今主流数据库介绍
SQL Server (微软公司产品)
- 面向Windows操作系统
- 简单、易用
Oracle (甲骨文公司产品)
- 面向所有主流平台
- 安全、完善,操作复杂
DB2 (IBM公司产品)
- 面向所有主流平台
- 大型、安全、完善
MySQL (甲骨文公司收购)
- 免费、开源、体积小
关系数据库
- 关系数据库系统是基于关系模型的数据库系统,它的基本概念来自于关系模型
- 关系模型建立在关系代数的理论基础上,数据结构使用简单易懂的二维数据表,可以用简单的“实体—关系”图来直接 表示
- 下面E-R图中包含了实体(数据对象)、关系和属性三要素
实体
- 也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”,如银行客户、银行账户等
属性
- 实体所具有的某一特性,一个实体可以有多个属性。例如,"银行客户”实体集中的每个实体均具有姓名、住址、电话等属性
联系
- 实体集之间的对应关系称为联系,也称为关系。例如,银行客户和银行账户之间存在“储蓄”的关系
所有实体及实体之间联系的集合构成一个关系数据库
关系数据库的存储结构是二维表格,反映事物及其联系的数据是以表格形式保存的
在每个二维表中, 每一行称为一条记录,用来描述一个对象的信息;每一列称为一个字段,用来描述对象的一个属性
关系数据库应用
关系型数据库
- Oracle,MySQL
- SQLServer、Sybase
- Informix、access
- DB2、FoxPRO
关系型数据库应用举例
- 12306用户信息系统
- 淘宝账号信息系统,支付宝账号系统、移动、电信、联通手机信号信息系统、计费系统银行用户账号系统
- 网站用户信息系统
非关系数据库介绍
- 非关系数据库也被称作NOSQL(Not Only SQL),存储数据不以关系模型为依据,不需要固定的表格式
- 非关系型数据库作为关系数据库的一个补充,在日益快速发展的网络时代,发挥着高效率与高性能
- 非关系型数据库的优点
- 数据库高并发读写的需求
- 对海量数据高效率存储与访问
- 数据库的高扩展性与高可用性的需求
非关系型数据库存储方式
- 键-值方式(key-value),以键为依据存储、删、改数据
- 列存储(Column-oriented),将相关的数据存储在列族中
- 文档的方式,数据库由一系列数据项组成,每个数据项都有名称与对应的值
- 图形方式,实体为顶点,关系为边,数据保存为一个图形
非关系数据库产品
Memcached是一 个开源的、高性能的、具有分布式内存对象的缓存系统,以key-value方式存储数据
- 缓存数据以减轻数据库压力并能加快访问速度
- 加速动态Web应用
- 缓存的内容保存在内存中
- redis也是一 个以key-value方式存储数据的,数据也是保存在内存中,但会定期将数据写入磁盘中
- 相对于FMemcached有以下特点
- 支持内存缓存
- 支持持久化.
- 数据类型更多
- 支持集群、分布式
- 支持队列
redis应用举例
- 数据库前端缓存
- session共享
- 当需要缓存除了key/value之外的更多数据类型时
- 当缓存的数据需要长久保存时
MySQL数据库介绍
- MySQL是一款深受欢迎的开源关系型数据库
- Oracle旗下的产品
- 遵守了GPL协议,可以免费使用与修改
- 特点
- 性能卓越、服务稳定
- 开源、无版权限制、成本低
- 多线程、多用户
- 基于C/S (客户端/云服务器)架构
- 安全可靠
MySQL商业版与社区版
- MySQL商业版是由MySQL AB公司负责开发与维护,需要付费才能使用
- MySQL社区版是由分散在世界各地的MySQL开发者、爱好者一起开发与维护,可以免费使用
- 两者区别
- 商业版组织管理与测试环节更加严格,稳定性更好
- 商业版不遵守GPL
- 商业版可获得7*24小时的服务,如故障维护与打补丁等
MySQL产品阵营
- 第一阵营: 5.0-5.1阵营,可说是早期产品的延续
- 第二阵营: 5.4-5.7阵营,更好地整合了MySQL AB公司、社区、第三方公司开的存储引擎,从而提高性能
- 第三阵营: 6.0-7.1阵营,就是MySQL Cluster版本,为适应新时代集群对数据库的需求而开发
- MySQL下载网址
MySQL安装实例
- 在VMware虚拟机中打开Linux系统,并下载MySQL压缩包到宿主机,并设置保存MySQL压缩包的文件夹共享,方便Linux系统挂载使用 MySQL5.7下载
[root@localhost ~]# yum install gcc gcc-c++ make ncurses ncurses-devel bison cmake -y //安装环境包 已加载插件:fastestmirror, langpacks base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 ... 已安装: bison.x86_64 0:3.0.4-2.el7 cmake.x86_64 0:2.8.12.2-2.el7 gcc.x86_64 0:4.8.5-39.el7 gcc-c++.x86_64 0:4.8.5-39.el7 ncurses-devel.x86_64 0:5.9-14.20130511.el7_4 作为依赖被安装: cpp.x86_64 0:4.8.5-39.el7 glibc-devel.x86_64 0:2.17-292.el7 glibc-headers.x86_64 0:2.17-292.el7 kernel-headers.x86_64 0:3.10.0-1062.4.3.el7 libmpc.x86_64 0:1.0.1-3.el7 libstdc++-devel.x86_64 0:4.8.5-39.el7 m4.x86_64 0:1.4.16-10.el7 更新完毕: make.x86_64 1:3.82-24.el7 ncurses.x86_64 0:5.9-14.20130511.el7_4 作为依赖被升级: glibc.x86_64 0:2.17-292.el7 glibc-common.x86_64 0:2.17-292.el7 libgcc.x86_64 0:4.8.5-39.el7 libgomp.x86_64 0:4.8.5-39.el7 libstdc++.x86_64 0:4.8.5-39.el7 ncurses-base.noarch 0:5.9-14.20130511.el7_4 ncurses-libs.x86_64 0:5.9-14.20130511.el7_4 完毕! [root@localhost ~]# useradd -s /sbin/nologin mysql //创建MySQL程序型用户 [root@localhost ~]# mount.cifs //192.168.100.8/shares /mnt/ //将宿主机中MySQL压缩包路径挂载到Linux系统中 Password for root@//192.168.100.8/shares: [root@localhost ~]# cd /mnt/ //进入挂载点目录 [root@localhost mnt]# tar zxvf mysql-boost-5.7.20.tar.gz -C /opt //解压MySQL压缩包到opt目录 ...... mysql-5.7.20/boost/boost_1_59_0/boost/unordered/detail/extract_key.hpp mysql-5.7.20/boost/boost_1_59_0/boost/unordered/detail/buckets.hpp mysql-5.7.20/boost/boost_1_59_0/boost/unordered/detail/allocate.hpp mysql-5.7.20/boost/boost_1_59_0/boost/unordered/detail/util.hpp mysql-5.7.20/boost/boost_1_59_0/boost/unordered/unordered_map.hpp mysql-5.7.20/boost/boost_1_59_0/boost/unordered/unordered_set.hpp mysql-5.7.20/boost/boost_1_59_0/boost/unordered/unordered_set_fwd.hpp mysql-5.7.20/boost/boost_1_59_0/boost/unordered/unordered_map_fwd.hpp mysql-5.7.20/boost/boost_1_59_0/boost/timer.hpp [root@localhost mnt]# cd /opt/mysql-5.7.20/ [root@localhost mysql-5.7.20]# cmake \ //配置mysql > -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //指定安装路径 > -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ //指定mysql.sock.路径 > -DSYSCONFDIR=/etc \ //指定配置文件存放位置 > -DSYSTEMD_PID_DIR=/usr/local/mysql \ //指定pid文件存放为位置 > -DDEFAULT_CHARSET=utf8 \ //字符集格式utf-8 > -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=boost \ //关联支持c++运行库 > -DWITH_SYSTEMD=1 //开启systemd .... -- CMAKE_C_LINK_FLAGS: -- CMAKE_CXX_LINK_FLAGS: -- CMAKE_C_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF -- CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF -- Configuring done -- Generating done -- Build files have been written to: /opt/mysql-5.7.20 [root@localhost mysql-5.7.20]# make //make过程(时间比较长,耐心等待) .... [100%] Building CXX object libmysqld/examples/CMakeFiles/mysql_embedded.dir/__/__/client/readline.cc.o Linking CXX executable mysql_embedded [100%] Built target mysql_embedded Scanning dependencies of target mysqltest_embedded [100%] Building CXX object libmysqld/examples/CMakeFiles/mysqltest_embedded.dir/__/__/client/mysqltest.cc.o Linking CXX executable mysqltest_embedded [100%] Built target mysqltest_embedded Scanning dependencies of target my_safe_process [100%] Building CXX object mysql-test/lib/My/SafeProcess/CMakeFiles/my_safe_process.dir/safe_process.cc.o Linking CXX executable my_safe_process [100%] Built target my_safe_process [root@localhost mysql-5.7.20]# make install //安装 ... -- Installing: /usr/local/mysql/./COPYING-test -- Installing: /usr/local/mysql/./README-test -- Up-to-date: /usr/local/mysql/mysql-test/mtr -- Up-to-date: /usr/local/mysql/mysql-test/mysql-test-run -- Installing: /usr/local/mysql/mysql-test/lib/My/SafeProcess/my_safe_process -- Up-to-date: /usr/local/mysql/mysql-test/lib/My/SafeProcess/my_safe_process -- Installing: /usr/local/mysql/mysql-test/lib/My/SafeProcess/Base.pm -- Installing: /usr/local/mysql/support-files/mysqld_multi.server -- Installing: /usr/local/mysql/support-files/mysql-log-rotate -- Installing: /usr/local/mysql/support-files/magic -- Installing: /usr/local/mysql/share/aclocal/mysql.m4 -- Installing: /usr/local/mysql/support-files/mysql.server [root@localhost mysql-5.7.20]# cd /usr/local/ //进入安装目录 [root@localhost local]# chown -R mysql.mysql mysql/ //mysql目录更改用户与组 [root@localhost local]# mv /etc/my.cnf /etc/my.cnf.bak //更改配置文件名称 [root@localhost local]# 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 :wq [root@localhost local]# vim /etc/profile ... PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH export PATH //重新声明环境变量 :wq [root@localhost local]# source /etc/profile //重新执行 [root@localhost local]# cd /usr/local/mysql/bin //进入MySQL命令目录 [root@localhost bin]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //初始化数据库 2019-12-02T11:51:28.112082Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2019-12-02T11:51:28.263398Z 0 [Warning] InnoDB: New log files created, LSN=45790 2019-12-02T11:51:28.287408Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2019-12-02T11:51:28.341284Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 131f32df-14fa-11ea-87e6-000c297265cb. 2019-12-02T11:51:28.342106Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2019-12-02T11:51:28.342452Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option. [root@localhost ~]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /lib/systemd/system/ //将MySQL启动脚本夫复制到系统system目录下 [root@localhost ~]# systemctl enable mysqld.service //设置MySQL为开机自启动 Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service. [root@localhost ~]# systemctl start mysqld.service //启动MySQL [root@localhost ~]# mysqladmin -u root -p password //设置MySQL数据库密码 Enter password: //没有原始密码,直接回车 New password: //输入新密码 Confirm new password: //再次输入密码 Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety. //安全提示 [root@localhost ~]# mysql -u root -p //登录MySQL Enter password: 输入密码 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.20 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> show databases; //查看数据库 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+4 rows in set (0.00 sec)
看完MySQL数据库的优势及安装方法这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。
文章标题:MySQL数据库的优势及安装方法
文章转载:http://hbruida.cn/article/poooie.html