美文网首页MYSQL
1.MySQL的介绍与安装

1.MySQL的介绍与安装

作者: Stone_説 | 来源:发表于2020-04-12 23:40 被阅读0次

1. MySQL的介绍

重点概念介绍:关系型数据库
关系:关系就是二维表,其中:表中的行、列次序并不重要
行row:表中的每一行,又称为一条记录
列column:表中的每一列,称为属性,字段
主键Primary key:用于唯一确定一个记录的字段
域domain:属性的取值范围,如,性别只能是‘男’和‘女’两个值

联系类型
数据的操作:在数据集合同提取感兴趣的内容。SELECT
数据更新:变更数据库中的数据。INSERT、DELETE、UPDATE
联系的类型
一对一联系(1:1)
一对多联系(1:n)
多对多联系(m:n)

基本概念
约束:constraint,表中的数据要遵守的限制
主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识才行;必须提供数据,即NOT NULL,一个表只能有一个
唯一键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL,一个表可以存在多个
外键:一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据
检查:字段值在一定范围内
索引:将表中的一个或多个字段中的数据复制一份另存,并且按特定次序排序存储
关系运算:
选择:挑选出符合条件的行
投影:挑选出需要的字段
连接:表间字段的关联

2. MySQL的安装

2.1 RPM包直接安装

2.1.1 软件版本查看

CentOS6以及之前版本:查看自带软件版本

[root@node1 ~]# yum info mysql
Available Packages
Name        : mysql
Version     : 5.1.73

[root@node1 ~]# yum info mysql-server
Available Packages
Name        : mysql-server
Version     : 5.1.73

CentOS7版本:查看自带软件版本

[root@centos7 ~]# yum info mariadb
Available Packages
Name        : mariadb
Version     : 5.5.64

[root@centos7 ~]# yum info mariadb-server
Available Packages
Name        : mariadb-server
Version     : 5.5.64

2.1.2 安装

CentOS6安装

[root@node1 ~]# yum -y install mysql-server
[root@node1 ~]# rpm -ql mysql-server
/etc/rc.d/init.d/mysqld     对应进程名
/usr/bin/mysqld_safe
/usr/bin/mysqldumpslow
/var/lib/mysql
/var/log/mysqld.log
/var/run/mysqld
[root@node1 ~]# ss -ntul |grep 3306
[root@node1 ~]# service mysqld status
mysqld is stopped
[root@node1 ~]# service mysqld start
[root@node1 ~]# service mysqld status
mysqld (pid  1868) is running...
[root@node1 ~]# ss -ntul |grep 3306
tcp    LISTEN     0      50                     *:3306                  *:*    
[root@node1 ~]# pstree -p|grep mysqld
        |-mysqld_safe(1766)---mysqld(1868)-+-{mysqld}(1870)
        |                                  |-{mysqld}(1871)
        |                                  |-{mysqld}(1872)
        ...

CentOS7安装

[root@centos7 ~]# yum install mariadb-server -y
[root@centos7 ~]# rpm -ql mariadb-server
/etc/my.cnf.d/server.cnf   mysql的配置文件
/usr/lib/systemd/system/mariadb.service   对应的服务名
/var/lib/mysql      数据库存放的路径
/usr/bin/mysqladmin
/usr/bin/mysqlbinlog
/usr/bin/mysqlcheck
/usr/bin/mysqldump
[root@centos7 ~]# ss -untl |grep 3306
[root@centos7 ~]# systemctl status mariadb
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[root@centos7 ~]# systemctl start mariadb
[root@centos7 ~]# ss -untl |grep 3306
tcp    LISTEN     0      50        *:3306                  *:*                  
[root@centos7 ~]# systemctl status mariadb
   Active: active (running) since Sun 2020-04-12 20:09:50 CST; 5s ago
[root@centos7 ~]# pstree -p|grep mysqld
           |-mysqld_safe(2776)---mysqld(2938)-+-{mysqld}(2942)
           |                                  |-{mysqld}(2943)
           ...

网络yum获取

[root@node2 ~]#cat /etc/yum.repos.d/mariadb.repo 
[mariadb]
name = MariaDB
baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.2/centos7-amd64/
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
[root@node2 ~]#yum repolist
[root@node2 ~]#yum install MariaDB-server
[root@node2 ~]#rpm -ql MariaDB-server
[root@node2 ~]#systemctl start mariadb
[root@node2 ~]#ss -ntl

2.2 二进制安装

2.2.1 安装过程介绍

1. 准备用户
    groupadd -r -g 306 mysql
    useradd -r -g 306 -u 306 -d /data/mysql mysql
2. 准备数据目录,建议使用逻辑卷
    mkdir /data/mysql
    chown mysql:mysql /data/mysql
3. 准备二进制程序
    tar xf mariadb-VERSION-linux-x86_64.tar.gz -C /usr/local
    cd /usr/local
    ln -sv mariadb-VERSION mysql
    chown -R root:mysql /usr/local/mysql/
4. 准备配置文件
    mkdir /etc/mysql/
    cp support-files/my-large.cnf /etc/mysql/my.cnf
    [mysqld]中添加三个选项:
    datadir = /data/mysql
    innodb_file_per_table = on
    skip_name_resolve = on    禁止主机名解析,建议使用
5. 创建数据库文件
    cd /usr/local/mysql/
    ./script/mysql_install_db --datadir=/data/mysql --user=mysql
6. 准备服务脚本,并启动服务
    cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
    chkconfig --add mysqld
    service mysqld start
7. PATH路径
    echo 'PATH=/user/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
8. 安全初始化
    /user/local/mysql/bin/mysql_secure_installation

2.2.2 安装

1. 准备用户
[root@centos7 ~]# getent passwd mysql
[root@centos7 ~]# mkdir -p /data/mysql
[root@centos7 ~]# chown mysql:mysql /data/mysql
[root@centos7 ~]# useradd -r -s /sbin/nologin  -d /data/mysql mysql
2. 准备二进制程序
[root@centos7 ~]# tar xvf mariadb-10.2.23-linux-x86_64.tar.gz -C /usr/local
[root@centos7 ~]# cd /usr/local/
[root@centos7 local]# ls
bin  etc  games  include  lib  lib64  libexec  mariadb-10.2.23-linux-x86_64  sbin  
share  src
[root@centos7 local]# ln -s mariadb-10.2.23-linux-x86_64/ mysql
[root@centos7 local]# ll
lrwxrwxrwx.  1 root root   29 Apr 12 19:50 mysql -> mariadb-10.2.23-linux-x86_64/
[root@centos7 local]# ll mysql/
drwxrwxr-x.  2 1021 1004  4096 Dec 20  2018 bin
-rw-r--r--.  1 1021 1004 17987 Mar 24  2019 COPYING
[root@centos7 local]# chown -R root.mysql mysql/
[root@centos7 local]# ll mysql/
drwxrwxr-x.  2 root root  4096 Dec 20  2018 bin
-rw-r--r--.  1 root root 17987 Mar 24  2019 COPYING
4. 准备配置文件
[root@centos7 ~]# mkdir /etc/mysql/
[root@centos7 mysql]# cd /usr/local/mysql
[root@centos7 mysql]# pwd
/usr/local/mysql
[root@centos7 mysql]# cp support-files/my-huge.cnf /etc/mysql/my.cnf
[root@centos7 mysql]# vim /etc/mysql/my.cnf 
[mysqld]
datadir=/data/mysql
innodb_file_per_table = on
skip_name_resolve = on    禁止主机名解析,建议使用
5. 创建数据库文件
[root@centos7 mysql]# pwd
/usr/local/mysql
[root@centos7 mysql]# ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
6. 准备服务脚本,并启动服务
[root@centos7 mysql]# pwd
/usr/local/mysql
[root@centos7 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@centos7 mysql]# chkconfig --list
[root@centos7 mysql]# chkconfig --add mysqld
[root@centos7 mysql]# chkconfig --list
[root@centos7 mysql]# service mysqld start
7. PATH路径
[root@centos7 mysql]# pwd
/usr/local/mysql
[root@centos7 mysql]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
8. 安全初始化
[root@centos7 ~]# mysql_secure_installation

9. 初始化成功

[root@centos7 ~]# mysql -uroot -pcentos
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 21
Server version: 10.2.23-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

2.3 源码编译安装

2.3.1 准备工作

a. 制作逻辑卷
b. 源码包的准备
c. mysql目录用户的建立

[root@centos7 ~]# fdisk /dev/sda
Command (m for help): n
All primary partitions are in use
Adding logical partition 6
First sector (325064704-419430399, default 325064704): 
Using default value 325064704
Last sector, +sectors or +size{K,M,G} (325064704-419430399, default 419430399): 
Using default value 419430399
Partition 6 of type Linux and of size 45 GiB is set

Command (m for help): L

 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
 8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt          

Command (m for help): t
Partition number (1-6, default 6): 
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): w

[root@centos7 ~]# lsblk
[root@centos7 ~]# partprobe
Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0 has been opened read-only.
[root@centos7 ~]# lsblk
[root@centos7 ~]# pvcreate /dev/sda6
  Physical volume "/dev/sda6" successfully created.
[root@centos7 ~]# pvs
  PV         VG Fmt  Attr PSize   PFree  
  /dev/sda6     lvm2 ---  <45.00g <45.00g
[root@centos7 ~]# vgs
[root@centos7 ~]# vgcreate vg0 /dev/sda6 -s 16M
  Volume group "vg0" successfully created
[root@centos7 ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg0
[root@centos7 ~]# lvcreate -n mysql -l 100%free vg0 
  Logical volume "mysql" created.
[root@centos7 ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg0/mysql
  LV Name                mysql
  VG Name                vg0

[root@centos7 ~]# mkdir /data/mysql 
[root@centos7 ~]# mkfs.xfs /dev/vg0/mysql 
[root@centos7 ~]# blkid
/dev/mapper/vg0-mysql: UUID="88b8cddf-fb3d-47a9-8cd4-909a34723466" TYPE="xfs" 
[root@centos7 ~]# vim /etc/fstab 
UUID=88b8cddf-fb3d-47a9-8cd4-909a34723466 /data/mysql  xfs  defaults  0 0
[root@centos7 ~]# mount -a
[root@centos7 ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/vg0-mysql   45G   33M   45G   1% /data/mysql
[root@centos7 ~]# getent passwd mysql
[root@centos7 ~]# useradd -r -s /sbin/nologin -d /data/mysql mysql
[root@centos7 ~]# ll -d mysql
ls: cannot access mysql: No such file or directory
[root@centos7 ~]# ll -d /data/mysql/
drwxr-xr-x. 2 root root 6 Apr 12 22:37 /data/mysql/
[root@centos7 ~]# chown mysql.mysql /data/mysql/
[root@centos7 ~]# ll -d /data/mysql/
drwxr-xr-x. 2 mysql mysql 6 Apr 12 22:37 /data/mysql/

2.3.2 源码编译

[root@centos7 ~]# yum install bison bison-devel zlib-devel libcurl-devel \
libarchive-devel boostdevel gcc gcc-c++ cmake ncurses-devel openssl-devel\
gnutls-devel libxml2-devel openssldevel libevent-devel libaio-devel
[root@centos7 mariadb-10.2.23]# cd mariadb-10.2.23
[root@centos7 mariadb-10.2.23]# cmake . \
-DCMAKE_INSTALL_PREFIX=/app/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
[root@centos7 mariadb-10.2.23]# make -j 2 && make install && echo -e '\a' && date

2.3.3 完成

-- Installing: /app/mysql/share/aclocal/mysql.m4
-- Installing: /app/mysql/support-files/mysql.server
Mon Apr 13 00:06:56 CST 2020
[root@centos7 mariadb-10.2.23]# date
Mon Apr 13 00:15:01 CST 2020

到/app/mysql路径下,参照二进制安装进行相同配置即可

相关文章

网友评论

    本文标题:1.MySQL的介绍与安装

    本文链接:https://www.haomeiwen.com/subject/qsrbmhtx.html