謝煙客---------二進位制安裝MariaDB,管理關係型資料庫的基本元件
特性、二進位制安裝方法、安裝生成的程式、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
「其他文章」
- Android——一個簡單的銀行系統
- 可以讓你寫到簡歷上的“網約車”專案,太讚了!!!
- git clone early EOF解決方法
- ES6(三) Promise 的基本使用方式
- Linux的哲學思想
- 為什麼阿里巴巴不建議 boolean 型別變數用 isXXX?
- 微信之夜,張小龍說視訊化表達將會成為下一個十年內容領域的主題
- WEB入門.九 導航選單
- 探索 .Net Core 的 SourceLink
- EdgeBERT:極限壓縮,比ALBERT再輕13倍!樹莓派上跑BERT的日子要來了? - 知乎
- shell 中if [ -e/d/f ..... ] 詳解
- 寫“好”程式碼的十九條準則
- 自學第三十五天
- 謝煙客---------二進位制安裝MariaDB,管理關係型資料庫的基本元件
- Egret之Sound壓縮方案
- Android studio 解決編譯速度慢 Download maven-metadata.xml速度很慢
- Flutter 中 BottomNavigationBar 定義底部導航條
- 肖四背背背
- nginx配置檔案
- yanghui三角形