千家信息网

MySQL数据库的优势及安装方法

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,下面一起来了解下MySQL数据库的优势及安装方法,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL数据库的优势及安装方法这篇短内容是你想要的。数据库的基本概念数据描述事物的符号记录称为数据(
千家信息网最后更新 2024年11月23日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, langpacksbase                                                               | 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.hppmysql-5.7.20/boost/boost_1_59_0/boost/unordered/detail/buckets.hppmysql-5.7.20/boost/boost_1_59_0/boost/unordered/detail/allocate.hppmysql-5.7.20/boost/boost_1_59_0/boost/unordered/detail/util.hppmysql-5.7.20/boost/boost_1_59_0/boost/unordered/unordered_map.hppmysql-5.7.20/boost/boost_1_59_0/boost/unordered/unordered_set.hppmysql-5.7.20/boost/boost_1_59_0/boost/unordered/unordered_set_fwd.hppmysql-5.7.20/boost/boost_1_59_0/boost/unordered/unordered_map_fwd.hppmysql-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.oLinking CXX executable mysql_embedded[100%] Built target mysql_embeddedScanning dependencies of target mysqltest_embedded[100%] Building CXX object libmysqld/examples/CMakeFiles/mysqltest_embedded.dir/__/__/client/mysqltest.cc.oLinking CXX executable mysqltest_embedded[100%] Built target mysqltest_embeddedScanning dependencies of target my_safe_process[100%] Building CXX object mysql-test/lib/My/SafeProcess/CMakeFiles/my_safe_process.dir/safe_process.cc.oLinking 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 = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysql]port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysqld]user = mysqlbasedir = /usr/local/mysqldatadir = /usr/local/mysql/dataport = 3306character_set_server=utf8pid-file = /usr/local/mysql/mysqld.pidsocket = /usr/local/mysql/mysql.sockserver-id = 1sql_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=457902019-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      //登录MySQLEnter password:          输入密码Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.7.20 Source distributionCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.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数据库的优势及安装方法这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。
0