博客
关于我
Mysql学习总结(71)——数据库介绍(MySQL安装 体系结构、基本管理)再回顾
阅读量:796 次
发布时间:2023-02-12

本文共 3768 字,大约阅读时间需要 12 分钟。

数据库简介

数据库可视为电子化的文件柜,主要用于存储和管理电子文件,用户可以对文件中的数据执行新增、截取、更新、删除等操作。数据库的设计目标是以一定方式储存在一起、能为多个用户共享,同时减少数据冗余,并与应用程序独立。数据库是现代信息时代的核心技术之一,广泛应用于各个行业。

数据库管理系统

数据库管理系统(DBMS)是数据库的核心管理软件,负责数据库的存储、检索、更新和维护。常见的数据库管理系统包括关系型数据库和非关系型数据库(NoSQL)。

关系型数据库

关系型数据库是最常用的数据库类型,其特点包括:

  • 结构化查询:使用SQL(结构化查询语言)进行数据操作。
  • ACID特性:支持事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
  • 规范化:通过规范化将数据设计为最小的范式,减少冗余。

典型的关系型数据库有Oracle、MySQL、PostgreSQL等。

NoSQL数据库

NoSQL数据库不使用SQL,而是采用键值存储、文档存储、列存储或图形存储等其他数据模型。NoSQL的特点包括:

  • 高性能:适合处理高并发和大数据量的应用。
  • 灵活性:支持动态数据 schema。
  • 无锁:某些 NoSQL 数据库支持无锁操作,提高并发性能。
  • 扩展性:容易进行横向扩展。

典型的 NoSQL 数据库有 MongoDB、Redis、Cassandra、HBase 等。

数据库分类

NoSQL 数据库主要分为以下几类:

  • 键值存储(Key-Value Store):如 Redis、Memcached。
  • 列存储(Column-oriented):如 HBase、Cassandra。
  • 文档数据库(Document Store):如 MongoDB。
  • 图形存储(Graph):如 Neo4j。
  • MySQL数据库

    MySQL 是一个开源的关系型数据库管理系统,广泛应用于互联网企业。以下是 MySQL 的一些特点:

    • 开源:免费使用,社区活跃。
    • 稳定性:支持 ACID 特性,保证数据一致性。
    • 可靠性:支持高可用性架构,如主从复制、集群。
    • 易用性:提供丰富的管理工具和 API。

    MySQL 的版本历史从 5.0 到 8.0 不断演进,5.7 版本是当前主流版本。

    MySQL 安装

    系统环境说明

    [root@db02 ~]# cat /etc/redhat-releaseCentOS release 6.9 (Final)[root@db02 ~]# uname -r2.6.32-696.el6.x86_64[root@db02 ~]# /etc/init.d/iptables statusiptables: Firewall is not running.[root@db02 ~]# getenforceDisabled[root@db02 ~]# hostname -I10.0.0.52 172.16.1.52

    MySQL 编译安装

    yum install -y ncurses-devel libaio-devel cmakemkdir -p /server/toolscd /server/toolswget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.40.tar.gztar xf mysql-5.6.40.tar.gzcd mysql-5.6.40cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40 \    -DMYSQL_DATADIR=/application/mysql-5.6.40/data \    -DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/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 && make installln -s /application/mysql-5.6.40/ /application/mysql

    数据库安装后的操作

    cp /application/mysql/support-files/my-default.cnf /etc/my.cnfmysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysqlmkdir /application/mysql/tmpchown -R mysql:mysql /application/mysql/cp support-files/mysql.server /etc/init.d/mysqldchmod 700 /etc/init.d/mysqldecho 'PATH=/application/mysql/bin/:$PATH' >> /etc/profiletail -1 /etc/profilesource /etc/profilemysql

    MySQL 管理

    连接管理

    mysql -uroot -p123 -h 10.0.0.52 -P 3306mysql -uroot -p123 -S /application/mysql/tmp/mysql.sock

    数据库启动与关闭

    /etc/init.d/mysqld startmysqladmin -uroot -p123 shutdown

    my.cnf 配置文件

    [mysqld]basedir=/application/mysqlddatadir=/application/mysql/datasocket=/tmp/mysql.socklog-error=/var/log/mysql.logport=3307[mysql]socket=/tmp/mysql.sockuser=rootpassword=123

    MySQL 多实例配置

    配置思路

  • 多套配置文件
  • 多套数据目录
  • 多个 socket
  • 多个端口
  • 多个日志文件
  • 多个启动程序
  • 配置步骤

  • 创建数据目录并授权:
  • mkdir -p /data/{3306,3307}/datachown -R mysql:mysql /data/
    1. 初始化数据:
    2. cd /application/mysql/scripts./mysql_install_db --defaults-file=/data/3306/my.cnf --basedir=/application/mysql --datadir=/data/3306/data --user=mysql./mysql_install_db --defaults-file=/data/3307/my.cnf --basedir=/application/mysql --datadir=/data/3307/data --user=mysql
      1. 创建日志文件:
      2. touch /data/3306/mysql_3306.errtouch /data/3307/mysql_3307.err
        1. 启动多实例:
        2. /data/3306/mysql start/data/3307/mysql start
          1. 检查状态:
          2. ps -ef | grep mysqlnetstat -lntup | grep mysql

            MySQL 密码忘记

          3. 停止服务:
          4. /etc/init.d/mysqld stop
            1. 启动服务(无密码登录):
            2. mysqld_safe --skip-grant-table --user=mysql --skip-networking &
              1. 修改密码:
              2. mysqlupdate mysql.user set password='newpassword' where user='root' and host='localhost';flush privileges;
                1. 重启服务:
                2. /etc/init.d/mysqld restart
                  1. 验证登录:
                  2. mysql -uroot -pnewpassword

    转载地址:http://vzdfk.baihongyu.com/

    你可能感兴趣的文章
    mysql批量update操作时出现锁表
    查看>>
    MYSQL批量UPDATE的两种方式
    查看>>
    mysql批量修改字段名(列名)
    查看>>
    MySQL批量插入数据遇到错误1213的解决方法
    查看>>
    mysql技能梳理
    查看>>
    MySQL报Got an error reading communication packets错
    查看>>
    Mysql报错Can‘t create/write to file ‘/tmp/#sql_3a8_0.MYD‘ (Errcode: 28 - No space left on device)
    查看>>
    MySql报错Deadlock found when trying to get lock; try restarting transaction 的问题解决
    查看>>
    MySQL报错ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘
    查看>>
    Mysql报错Packet for query is too large问题解决
    查看>>
    mysql报错级别_更改MySQL日志错误级别记录非法登陆(Access denied)
    查看>>
    Mysql报错:too many connections
    查看>>
    MySQL报错:无法启动MySQL服务
    查看>>
    mysql授权用户,创建用户名密码,授权单个数据库,授权多个数据库
    查看>>
    mysql排序查询
    查看>>
    MySQL排序的艺术:你真的懂 Order By吗?
    查看>>
    MySQL排序的艺术:你真的懂 Order By吗?
    查看>>
    Mysql推荐书籍
    查看>>
    Mysql插入数据从指定选项中随机选择、插入时间从指定范围随机生成、Navicat使用存储过程模拟插入测试数据
    查看>>
    MYSQL搜索引擎
    查看>>