1. 程式人生 > >謝煙客---------二進制安裝MariaDB,管理關系型數據庫的基本組件

謝煙客---------二進制安裝MariaDB,管理關系型數據庫的基本組件

struggle strive endeavo

特性、二進制安裝方法、安裝生成的程序、MariaDB程序的組成、SQL接口、關系型數據庫的組件、管理數據庫組件、數據類型、修飾


MariaDB,開源RDBMS的實現


特性、

技術分享


安裝MariaDB方法、

技術分享

    CentOS 6: 通用二進制格式安裝MariaDB

        1、獲取源碼
            官方站點:www.mariadb.org
        2、安裝MariDB
            1)添加用戶
            2)準備數據庫
            3)展開及配置
        3、測試啟動服務並登陸MariaDB
        4、安全初始化
        5、通用配置


    1、獲取源碼    
    2、安裝MariaDB
        1) 添加用戶: 
            # groupadd -r -g 306 mysql
            # useradd -r -g 306 -u 306 mysql

        2) 準備數據庫:
            # btrfs
            # lvm2 快照,數據庫備份

            # fdisk -l /dev/[sh]d[a-z] //查看所有磁盤
            # fdisk /dev/sda            //管理指定磁盤
            # partx -a /dev/sda
            # partx -a /dev/sda

            # pvcreate /dev/sda3
            # vgcreate vg0 /dev/sda3
            # lvcreate -L 10G -n mylv vg0

            # 查看可被格式的文件系統類型
                # cat /proc/filesystems
                    **沒有xfs,xfs比ext文件易擴展,易用
            # 查看模塊
                # lsmod

            # 安裝使用xfs文件系統
                # yum search xfs     //xfsprogs.i686 : Utilities for managing the XFS filesystem
                    文件系統組成: 模塊、用戶空間的管理工具、POSIX
                # yum -y install xfsprogs

            # 安裝後查看內核中的模塊
                # rpm -ql xfsprogs //只提供程序,並未提供模塊
                # modinfo xfs      //沒有此模塊
                # modprobe xfs     //如果有則可以安裝

            # mke2fs -t ext4 /dev/vg0/mylv 
            # vim /etc/fstab
                /dev/vg0/mylv  /mydata/data   ext4    defaults    1 2
            # mkdir -p /mydata/data
            # chown mysql.mysql /mydata/data
            # mount -a

        3) 展開及配置:
            展開:
                # tar xf mariadb-5.5.57-linux-i686.tar.gz -C /usr/local/

                # cd /usr/local/
                # ls  //查看文件
                # ln -sv mariadb-5.5.57-linux-i686 mysql
                # ll  //查看鏈接
                # cd mysql 
                # ll    //查看權限
                # chown -R mysql.mysql ./*
                # ll    //確認

            元數據生成:
                # scripts/mysql_install_db --help    
                    --user=user_name 
                    --basedir=path    //指明mariadb的安裝目錄
                    --datadir=path    //MariaDB的數據庫的目錄
                    --defaults-extra-file=name   //配置文件

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

                # ls /mydata/data  //查看文件是否生成

            準備配置文件:
                配置文件讀取路徑: /etc/my.cnf --> /etc/mysql/my.cnf --> --default-extra-file --> ~/.my.cnf
                # mkdir /etc/mysql
                # ls support-files/  //查看提供的文件
                    1) my*.cnf       //均為配置 large(512M內存), meduim(256M), small(64M) 內存4G innodb-heavy-4G.cnf
                    2) mysql.server //提供的服務腳本

                # cp support-files/my-large.cnf /etc/mysql/my.cnf

                    修改配置文件: 配置文件類ini格式, 相同配置段出現多次時,最後一個配置段為最終生效段.

                [client]
                #password       = your_password
                port            = 3306
                socket          = /tmp/mysql.sock  //客戶端通過/tmp/mysql.sock與服務端通信
                [mysqld]
                port            = 3306             //服務端監聽的端口
                socket          = /tmp/mysql.sock  //服務端監聽在unix socket
                # Try number of CPU‘s*2 for thread_concurrency   線程數為CPU核心數的2倍
                thread_concurrency = 4

                --------
                datadir = /mydata/data             //數據庫的目錄
                innodb_file_per_table = on         //innodb的特性,每個文件當作一個表
                skip_name_resolve = on             //跳過IP-->反解為主機名.授權只基於IP即可,加速

            準備服務腳本
                # ls support-files/                //查看服務腳本的位置及權限
                # cp support-files/mysql.server /etc/rc.d/init.d/mysqld
                # chkconfig --add mysqld
                # chkconfig --list mysqld

        4)測試啟動服務
            # ss -tnl //查看3306端口是否被占用
            # service mysqld start

            /usr/local/mysql/bin/mysqld_safe_helper: Can‘t create/write to file ‘/var/log/mysqld.log‘ (Errcode: 13)
            # touch /var/log/mysqld.log
            # chown root.mysql /var/log/mysqld.log
            # chmod 660 /var/log/mysqld.log

            # /usr/local/mysql/bin/mysql
            MariaDB [(none)]> 

        5)    安全初始化
                MariaDB [(none)]> SELECT User,Host,Password FROM mysql.user;
                +------+-----------------------+----------+
                | User | Host                  | Password |
                +------+-----------------------+----------+
                | root | localhost             |          |
                | root | localhost.localdomain |          |
                | root | 127.0.0.1             |          |
                | root | ::1                   |          |
                |      | localhost             |          |
                |      | localhost.localdomain |          |
                +------+-----------------------+----------+
                6 rows in set (0.00 sec)
                註意:在本地主機上root,及一個匿名用戶沒有對應的密碼

                # /usr/local/mysql/bin/mysql_secure_installation 

                #  /usr/local/mysql/bin/mysql -uroot -hlocalhost -pmagedu
                MariaDB [(none)]> 

        6)通用配置
            查看安裝目錄
            # ls /usr/local/mysql
            bin      data               include         lib  mysql-test  scripts  sql-bench
            COPYING  EXCEPTIONS-CLIENT  INSTALL-BINARY  man  README      share    support-files

            1、導出PATH變量
                # vim /etc/profile.d/mysql.sh
                    export PATH=/usr/local/mysql/bin:$PATH
                # . /etc/profile.d/mysql.sh
            2、導出庫文件
                # vim /etc/ld.so.conf.d/mysql.conf
                /usr/local/mysql/lib
                # ldconfig [-v]
            3、導出頭文件
                # ln -sv /usr/local/mysql/include /usr/include/mysql
            4、導出man手冊
                # vim /etc/man.config
                MANPATH /usr/local/mysql/man


MariaDB程序組成

        # ls /usr/local/mysql/bin
        
        1、服務端程序
            mysqld_safe[ps命令即可查詢:"線程安全的mysql"] 
            mysqld_multi["多個mysql,使用不同的端口"] 

        mysql協議:數據存儲協議:C/S架構
            實現: mysqld
            進程間的通信:
                同主機通信:unix socket、message queue(signal)、share memory、semphor(旗語)
                跨主機:socket、rpc

        mysqld同主機:基於unix socket通信
            服務器監聽在: server地址: localhost, 127.0.0.1
                二進制安裝:/tmp/mysql.sock
                rpm安裝: /var/lib/mysql/mysql.sock

        2、客戶端程序
            mysql           CLI、GUI(phpMyadmin)
            mysqladmin 
            mysqlbinlog        二進制日誌管理
            mysqldump

        客戶端程序: mysql使用
            mysql [-uUSERNAME] [-hHOST] [-pPASSWORD] 

                註意:
                    1、mysql用戶名: ‘USERNAME‘@‘HOST‘
                        HOST:支持通配符:
                            % 任意長度任意字符
                            _ 任意單個字符

                            例如: 172.16.0.0/16網絡用通配符表示
                                172.16.%
                                172.16.0.%
                                172.16.%.%
                    2、不給-u: 默認用戶名為root
                       不給-h: 默認HOST為localhost或127.0.0.1
                       不給-p: 默認PASSWORD為空


SQL接口

    SQL接口: 與mysqld相互
        MariaDB [(none)]> 

        客戶端命令:本地執行
            命令名 簡寫格式
            help      (\?) //獲取幫助
            clear     (\c) //清空輸入的內容
            ego       (\G) 垂直顯示結果
            quit      (\q) //退出mysql,
            status    (\s) //查看服務器的狀態信息
            system    (\!) //執行shell命令
            use       (\u) use DB, 設定默認數據庫


        服務端命令:在服務器端執行並取回,命令有結束符";"
            > SELECT VERSION();
                調用函數並執行
            > SELECT 1+1;
            > SELECT 0.99^365
            > SELECT 1.0^365


關系型數據庫的組件、

技術分享



管理關系型數據庫的基本組件

註意:寫的格式統一,因為mysql緩存是根據MD5值存儲緩存。如果兩次輸入的字母大小寫不同時,其MD5值不同。


獲取命令幫助:

技術分享


數據庫管理

技術分享


表管理

技術分享


數據類型、


數據類型: datatype
    字符:
        定長字符:
            不區分大小寫 char(#) 用或不用,給1個占10個
            區分大小寫

        變長字符: 
            不區分大小寫 varchar(#) 有結束符,占用一個, 給1個,占2個
            區分大小寫

        對象存儲:大文本存儲
            TEXT 不區分 
            BLOB  區分

        內置:
            ENUM   枚舉
            SET    集合

    數值:    
        精確:整型[int]、十進制[decimal]
            int
                tinyint   1byte
                smallint  2bytes
                mediumint 3bytes
                int       4bytes
                bigint       8bytes  範圍: 0 - 2^64-1
        近似: 單精度浮點[float]、雙精度浮點[double]
        
修飾
NOT NULL 
NULL





本文出自 “Reading” 博客,請務必保留此出處http://sonlich.blog.51cto.com/12825953/1970069

謝煙客---------二進制安裝MariaDB,管理關系型數據庫的基本組件