zoukankan      html  css  js  c++  java
  • MySQL的安装和介绍

    第1章 数据库的介绍

    1.1 什么是数据

    数据:文字、图片、视频。。。人类认知的数据表现方式
    计算机:二进制、16进制的机器语言
    基于数据的重要性和复杂性的不同,我们可能有不同的管理方式
    

    1.2 哪些数据是适合存储到数据库的

    1. 重要性比较高的
    2. 关系较复杂的数据
    

    1.3 什么是数据库管理系统(DBMS)

    RDBMS(关系型数据库管理系统)

    比较适合于,安全级别要求高的数据以及关系较复杂的数据
    

    NoSQL(非关系型数据库管理系统)

    适合于高性能存取数据,一般是配合RDBMS进行使用的
    针对大数据处理分析,分布式架构更加擅长
    

    1.4 数据库管理系统种类

    RDBMS(关系型数据库)

    MySQL、Oracle、MSSQL(SQL Server)、PG
    

    NoSQL(非关系型数据库)

    键-值(key-value):Redis, memcached
    文档(document):Mongodb
    

    1.5 企业版本选择(MySQL分支版本)

    Oracle:
          MySQL官方版
    红帽  :
          MariaDB
    Percona:
          PerconaDB
    

    第2章 二进制数据库部署流程

    1.1 第一个里程: 上传软件

    
    

    1.2 第二个里程: 解压软件包

    [root@db01 /soft]# tar xf  mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
    #改一个名字并带上版本号(企业中一般这样)
    [root@db01 /soft]# mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql5726
    

    1.3 第三个里程:编写环境变量配置文件且把自带的mariadb卸载

    [root@db01 ~]# vim /etc/profile
    #最后一行加入一下内容
    ....
    export PATH=/soft/mysql5726/bin:$PATH
    ....
    #使其及时生效 
    [root@db01 ~]#source /etc/profile
    #检查环境变量是否生效
    [root@db01 ~]# mysql -V   
    mysql  Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using  EditLine wrapper
    #卸载自带的mariadb
    [root@db01 ~]# rpm -qa |grep mariadb
    mariadb-libs-5.5.56-2.el7.x86_64
    [root@db01 ~]# yum remove -y mariadb-libs-5.5.56-2.el7.x86_64
    

    1.4 第四个里程:创建用户

    #先检查用户是否存在
    [root@db01 ~]# id mysql
    id: mysql: no such user
    #创建用户
    [root@db01 ~]# useradd -s /sbin/nologin mysql
    

    1.5 第五个里程:添加磁盘

    为了防止一块盘坏了,导致全盘接输,我们一般选择把mysql的数据单独放在一个盘上和系统的数据分开存放
    1)格式化磁盘
    1. 查看刚刚挂在的磁盘
    [root@db01 ~]# fdisk -l
    2. 格式化磁盘
    [root@db01 ~]#  mkfs.xfs /dev/sdb
    2)创建挂载的目录
    [root@db01 ~]# mkdir /data
    3)查看磁盘的UUID
    #每次磁盘格式化之后都会生成一个UUID
    [root@db01 ~]# blkid
    /dev/sda1: UUID="fb4ef11d-89e8-462b-822f-cd367570413b" TYPE="xfs" 
    /dev/sda2: UUID="1b710427-4470-468c-9eac-bb37aad84c3c" TYPE="swap" 
    /dev/sda3: UUID="ac6edd9a-8b57-4b20-b1d8-e819dcf0bbaf" TYPE="xfs" 
    /dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
    /dev/sdb: UUID="ef152d80-881c-4542-bbf5-6de186ce7b4e" TYPE="xfs" 
    4)把要挂载的磁盘的UUID写入开机自动挂载
    [root@db01 ~]# vim /etc/fstab 
    ....
    UUID="ef152d80-881c-4542-bbf5-6de186ce7b4e" /data xfs defaults 0 0
    ....
    5) 执行挂载命令
    [root@db01 ~]# mount -a
    6) 检查是否挂载上了
    [root@db01 ~]# df -h
    

    1.6 第六个里程: 给软件路劲和数据路劲分别授权

    [root@db01 ~]# chown -R mysql:mysql /soft/*
    [root@db01 ~]# mkdir /data/mysql/data -p 
    [root@db01 ~]# chown -R mysql:mysql /data/*
    

    1.7 第七个里程:编写配置文件

    vim /etc/my.cnf
    #服务端
    [mysqld]
    user=mysql
    #软件安装路劲
    basedir=/soft/mysql5726
    #数据路劲
    datadir=/data/mysql/data
    #服务端socket文件位置
    socket=/tmp/mysql.sock
    #服务器ID号这个值得范围是0~65535之间
    server_id=20  
    #端口号
    port=3306
    #表空间大小:一定要在初始化数据之前设置
    innodb_data_file_path=ibdata1:512M;ibdata2:512M:autoextend
    #客户端
    [mysql]
    #客户端socket文件位置
    socket=/tmp/mysql.sock
    #注意:客户端socket文件位置一定要和服务端socket文件位置一样
    

    1.8 第八个里程: 初始化数据库{创建系统数据(维持mysql正常运行的数据)}

    5.6版本:初始化参数

    /usr/local/mysql/scripts/mysql_install_db  --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
    

    5.7+开始的版本

    [root@db01 ~]#mysqld --initialize-insecure --user=mysql --basedir=/soft/mysql5726 --datadir=/data/mysql/data
    mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
    报错原因: Linux系统中缺少libaio-devel 软件包
    解决办法: yum install -y libaio-devel
    

    初始化参数说明:--initialize和--initialize-insecure2者区别

    (1) --initialize
    1. 密码长度,至少12位.
    2. 密码复杂度4种 
    3. 密码过期时间180天 
    4. 自动生成一个临时密码
    (2) --initialize-insecure
    没有限制
    #我们在实际安装的过程中一般都用  --initialize-insecure这个参数
    

    1.9 第九个里程:编写启动脚本

    第一种方案启动脚本(Centos6)

    [root@db01 ~]# cd /etc/init.d/
    [root@db01 init.d]# cp /soft/mysql5726/support-files/mysql.server /etc/init.d/mysqld
    [root@db01 ~]# service mysqld start
    
    

    第二种方法(systemd)

    vim /etc/systemd/system/mysqld.service
    [Unit]
    Description=MySQL Server
    Documentation=man:mysqld(8)
    Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
    After=network.target
    After=syslog.target
    [Install]
    WantedBy=multi-user.target
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/soft/mysql5726/bin/mysqld --defaults-file=/etc/my.cnf
    LimitNOFILE=5000
    

    1.10 第十个里程:启动数据库

    [root@db01 ~]# systemctl start mysqld.service
    

    1.11 第十一个里程:检查是否启动

    [root@db01 ~]# systemctl status mysqld.service 
    
    学习的进阶之路
  • 相关阅读:
    JavaScript核心参考
    面向对象的程序设计之工厂模式
    ES6中promise的使用方法
    详解 Vue 2.4.0 带来的 4 个重大变化
    Vue.js 1.x 和 2.x 实例的生命周期
    表单控件的全面分析
    元素的一些常用属性
    为表格增加的方法
    Element类型知识大全
    6-3.斜体标签
  • 原文地址:https://www.cnblogs.com/yufenchi/p/12677130.html
Copyright © 2011-2022 走看看