特性、二進制安裝方法、安裝生成的程序、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