MySQL資料庫編譯過程
編譯安裝MySQL
- 準備工作
解除安裝rpm方式安裝的mysql-server、mysql
安裝ncurses-devel和cmake包
yum -y install ncurses-devel cmake
tar xf cmake-2.8.6.tar.gz -C /usr/src
cd /usr/src/cmake-2.8.6/
./configure && gmake && gmake install
這個過程需要時間 - 原始碼編譯及安裝
增加程式使用者mysql
useradd -M -s /sbin/nologin mysql
解壓mysql-5.5.22.tar.gz
tar xf mysql-5.5.22.tar.gz -C /usr/src
cmake配置,編譯及安裝
cd /usr/src/mysql-5.5.22/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install - 安裝後的優化操作
修改mysql安裝目錄的屬主與屬組
chown -R mysql:root /usr/local/mysql/
建立修改my.cnf配置檔案
/bin/cp support-files/my-medium.cnf /etc/
新增系統服務
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig mysqld --add
chkconfig mysqld --list
新增MySQL命令執行的路徑到PATKH環境變數
echo "export PATH=PATH 檢視環境變數是否新增成功
更簡單的設定方法為用下面命令做軟連結:ln -s /usr/local/mysql/bin/* /usr/local/sbin/,把mysql命令說在路徑連結到全域性路徑/usr/local/sbin/的下面。
執行 mysql_install_db指令碼初始化資料庫
/usr/localmydql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
--basedir=/usr/local/mysql為MySQL的安裝路徑,--datadir為不同的例項資料目錄
啟動MySQL服務,並檢視執行狀態
/etc/init.d/mysqld start
netstat -anpt |grep :3306
設定資料庫使用者名稱密碼
mysqladmin -uroot password '密碼'
MySQL資料庫的分類及資料庫操作
資料庫簡單的分為兩種:
關係型資料庫----------->mysql和Oracle
非關係型資料庫--------->Memcached和Redis
訊息佇列中介軟體
什麼叫做關係型資料庫?SQL資料庫
資料和資料之間是有關係的,通過關係能夠將一系列資料都提取出來。
什麼是非關係型資料庫?NoSQL資料庫(NotonlySQL)
資料和資料之間沒有關係
關係型資料庫MySQL和Oracle有什麼區別?
其實,這兩類資料庫在使用方式上大體是沒有太多的區別。都是基於SQL查詢方式的資料庫。但是Oracle是閉源的,出了問題有人管,因此,運維並不需要花太多精力在Oracle,在企業裡可以學。MySQL是開源的,免費的,自然需要運維來維護的,但是通常來說,真正的資料庫維護人員的職位叫做DBA=database administrator,他並不是廣泛意義上的運維,只是資料庫專業運維。市面上還有一種關係型資料庫,叫做Maria DB,他和MySQL有什麼關係?MySQL資料庫最早是開源的,他和Maria幾乎是一樣的。
B/S架構模式與C/S架構模式的區別?
B/S=====>Web/server
使用者通過Web瀏覽器開啟輸入域名就能夠訪問伺服器Server的方式叫做B/S,使用者不需要安裝任何東西
C/S====>client/Server
所謂客戶端在使用者的電腦裡是需要下載並安裝的。
MySQL資料表
資料表以檔案的形式展現,MySQL資料表由兩部分組成:賬戶名@登陸IP
describe 表名 查看錶的欄位資訊
四種對資料表進行SQL語句
增:inset into 表名[欄位名] values 具體數值
刪:delete from 表名 where 條件
改:update 表名 set 欄位=‘數值’
查:select 欄位名 from 表名
show databases 檢視所有的庫
create database 建立庫
drop database 刪除庫
show tables 檢視所有的表(先切換到這個表)
小庫其實就是data目錄下的子目錄,開發管小庫叫空間,小庫的名字叫做空間名,空間名.表名
flush privileges 重新整理 立即生效
updata 表名 set password=password(‘密碼’) where host=‘localhost’修改密碼
MySQL使用者許可權
grant 使用者許可權設定
grant all on . to '使用者名稱'@'登陸IP' IDENTIFIED BY '密碼'(第一個所有的庫,第二個所有的表)
show grant 檢視本地的使用者許可權
show grant for '使用者名稱'@'登陸IP' 檢視別人的使用者許可權
revoke 許可權型別 on 庫名錶名 from '使用者名稱'@'登陸IP' 撤銷許可權
%代表任意所有
代表任意一個字元
192.168.200.% 代表200網段的所有地址
192.168.200.代表1-9任意一個地址