Linux 基礎知識 之 MySQL資料庫
一、mysql資料庫簡介
MySQL是一種開放原始碼的關係型資料庫管理系統(RDBMS),使用最常用的資料庫管理語言--結構化查詢語言(SQL)進行資料庫管理。
MySQL是開放原始碼的,因此任何人都可以在General Public License的許可下下載並根據個性化的需要對其進行修改。
MySQL因為其速度、可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。
資料庫是一個高階的excel表格軟體。
二、搭建資料庫環境
1.安裝資料庫軟體yum install mariadb-server -y
2.systemctl start mariadb 開啟資料庫軟體
開啟軟體之後可以進入資料庫列出庫
編輯mysql -uroot
3.安全初始化的配置
mysql_secure_installation 進行系統初始化
- 初始化的myaql資料庫管理員並沒有任何密碼,按回車進行下一步
- 設定root使用者的密碼
- 為了安全剩下的都選y
4.檢視資料庫在網路中對外的介面
編輯netstat -antlupe | grep mysql
編輯配置檔案關閉介面vim /etc/my.cnf
寫入skip-networking=1
重新啟動服務 systemctl restart mariadb
netstat -antlupe | grep mysql檢視網路介面(介面關閉)
5.使用者登陸
三、資料庫的管理
mysql -uroot -p 該命令進入
1.SHOW DATABASES; 列出資料庫
2.CREATE DATABASE westos; 自己建立庫(westos)
3.USE westos; 進入westos庫
4.SHOW TABLES; 查看錶
5.建立linux表
CREATE TABLE linux (
-> username varchar(10) not null,
-> password varchar(50) not null
-> );
6.DESC linux; 查看錶結構
7.插入資料到linux表中,並查詢在linux表中的所有欄位
INSERT INTO linux VALUES ('lee','123');插入資料到linux表中
SELECT * FROM linux; 查詢所有欄位在linux表中
INSERT INTO linux VALUES ('westos','123');
SELECT * FROM linux;
8.查詢linux表中username欄位
9.列出表SHOW TABLES;
10.修改表的名字ALTER TABLE linux RENAME userdate;
ALTER TABLE userdate RENAME linux; 將表的名字改為linux
11.SELECT * FROM linux;檢視linux表
12.將age屬性新增到linux表的最後ALTER TABLE linux ADD age varchar(4);
13.刪除表中的age屬性ALTER TABLE linux DROP age;
14.將age屬性新增到指定位置(username後面)
ALTER TABLE linux ADD age varchar(4) AFTER username;
15.修改表中age屬性的值(全部修改)
UPDATE linux SET age='20';
16.修改表中滿足條件的屬性值
UPDATE linux SET age='18'WHERE username='westos' ;
17.刪除資料列表及庫
刪除表中滿足條件的某一行
DELETE FROM linux WHERE username='westos';
刪除表DROP TABLE linux;
刪除庫
四、使用者授權
1.建立一個庫,用於後續測試CREATE DATABASE westos;
2.建立資料庫使用者lee ,登陸密碼lee,並檢視資料庫中的所有使用者
SELECT User,Host FROM mysql.user;
CREATE USER [email protected] identified by 'lee';
3.用建立的資料庫使用者登入(此時沒有庫資訊)
4.顯示某個使用者對資料庫所有的許可權(這裡指lee使用者)
SHOW GRANTS FOR [email protected];
5.對某個使用者授予固定的許可權GRANT SELECT on westos.* TO [email protected];
測試:可以看到westos庫
進入庫後不能建立表
6.對lee使用者新增建立表的許可權GRANT CREATE on westos.* TO [email protected];
測試:建立表
7. 對lee使用者新增刪除表資訊的許可權GRANT DELETE on westos.* TO [email protected];
8.對lee使用者新增刪除表的許可權GRANT DROP on westos.* TO [email protected];
清除授權
撤銷使用者的固定許可權
REVOKE DELETE on westos.* FROM [email protected];
lee使用者沒有刪除表資訊的許可權
清除使用者
DROP USER [email protected];
五、資料庫的備份與恢復
1.備份所有資料庫(包括框架和內容)
[[email protected] ~]# mysqldump -uroot -pwestos --all-databases > /westos/alldate.sql
2.備份框架
[[email protected] ~]# mysqldump -uroot -pwestos --all-databases --no-data > /westos/allshuju.sql
3.備份指定資料庫到指定位置
[[email protected] ~]# mysqldump -uroot -pwestos westos > /westos/westos.sql
恢復:
刪除資料庫
[[email protected] ~]# mysql -uroot -pwestos -e "DROP DATABASE westos;"
[[email protected] ~]# mysql -uroot -pwestos -e "SHOW DATABASES;" 檢視 westos庫不存在
因為資料庫中已經沒有westos這個資料庫了,所以恢復的時候會報錯
mysql -uroot -pwestos westos < /westos/westos.sql
方法一:先建立一個庫再恢復
方法二:
編輯vim /westos/westos.sql
寫入CREATE DATABASE westos;
USE westos;
[[email protected] ~]# mysql -uroot -pwestos < /westos/westos.sql
[[email protected] ~]# mysql -uroot -pwestos -e "SHOW DATABASES;"
六、資料庫密碼管理
更改資料庫密碼(密碼知道)
[[email protected] ~]# mysqladmin -uroot -pwestos password lee
當密碼忘記時:
1.systemctl stop mariadb 關閉資料庫
2.mysqld_safe --skip-grant-tables & 跳過授權表直接登陸資料庫並打入後臺
3.編輯mysql 不用密碼就可以登陸資料庫
4.SELECT User,Password FROM mysql.user;檢視使用者及密碼資訊
5.修改資料庫超級使用者密碼,密碼是以密文顯示
6.檢視mysql的所有程序,並結束掉
執行ps aux | grep mysql 檢視
7.開啟資料庫
8.密碼修改成功(用因密碼登陸)
七、安裝phpmyadmin 資料庫圖形管理
在虛擬機器server中進行(我的資料庫主機)
1.[[email protected] ~]# yum install httpd -y安裝http
[[email protected] ~]# cd /var/www/html
[[email protected] html]# systemctl start httpd 開啟服務
在網頁上測試:
2.下載適合自己主機版本的phpMyAdmin
這裡已經從老師主機下載好了,傳輸到測試端的/var/www/html目錄下
[[email protected] html]# tar jxf phpMyAdmin-2.11.3-all-languages.tar.bz2 解壓
[[email protected] html]# mv phpMyAdmin-2.11.3-all-languages/ mysqladmin 給解壓的檔案重新命名
3.[[email protected] html]# yum install php php-mysql -y 安裝php 和 php-mysql 軟體
4.進入mysqladmin目錄下,根據模板,建立config.inc.php
[[email protected] html]# cd mysqladmin/
[[email protected] mysqladmin]# cp config.sample.inc.php config.inc.php
[[email protected] mysqladmin]# less Documentation.txt 檢視
[[email protected] mysqladmin]# vim config.inc.php 編輯該檔案
[[email protected] mysqladmin]# systemctl restart httpd重新啟動httpd 服務
測試:
在真機網頁編輯
http://172.25.254.103/mysqladmin
進入資料庫圖形管理介面
有時候介面出不來是因為快取的原因
清除快取的方法:ctrl+shift+delete
以root使用者身份輸入密碼登入資料庫
建立資料庫
在資料庫中新建表
在表中新增屬性
插入相應的屬性值
驗證: