MySQL資料庫
MySQL是一種開放源代碼的關系型資料庫管理系統(RDBMS),使用最常用的資料庫管理語言–結構化查詢語言(SQL)進行資料庫管理。
MySQL是開放源代碼的,是以任何人都可以在General Public License的許可下下載下傳并根據個性化的需要對其進行修改。
MySQL因為其速度、可靠性和适應性而備受關注。大多數人都認為在不需要事務化處理的情況下,MySQL是管理内容最好的選擇
MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群在維護,采用GPL授權許可
MariaDB的目的是完全相容MySQL,包括API和指令行,使之能輕松成為MySQL的代替品。
本次我們主要學習mysql資料庫的一些基礎内容:資料添加,增删改查,授權管理,圖形化管理等内容。從基礎方面,了解mysql資料庫的使用方法。
【環境搭建:】
在server主機上,reset重置環境後:
》1.更改主機名稱為:mysql.server.com
》2.設定網絡
》3.搭建yum倉庫,挂載好yum源
》4.真機ssh連接配接虛拟機,直接真機上進行遠端連接配接操作
單 獨 的 一 份 數 據 為 一 個 t a b , 多 個 t a b 為 庫 , 多 個 庫 為 軟 件 \color{blue}{單獨的一份資料為一個tab,多個tab為庫,多個庫為軟體} 單獨的一份資料為一個tab,多個tab為庫,多個庫為軟體
【mariadb服務安裝:提供mysql資料庫】

yum search mariadb
yum install mariadb-server.x86_64
systemctl start mariadb
【開啟服務時,卡住的話需要在另一個shell中,或者無圖形界面輸入任意字元。原因是加密字元長度不夠】
【正常化安全設定:】
此時我們其實已經可以使用mysql資料庫了,但是沒有任何安全設定的mysql資料庫,可以直接通過指令
mysql
登陸。很不安全。是以要進行安全設定:
mysql_secure_installation
現在我們就不可以直接通過mysql指令,匿名,無密碼進行登陸資料庫了。
安全設定上,我們使用
netstat -antlupe | grep mysql
去檢視mysql接口狀态,會發現是有接口的,那麼就有可能會被網絡連接配接,造成資料庫被通路。是以我們還要去除網絡接口。
vim /etc/my.cnf ###編輯mysqld配置檔案
skip-networking=1 ###寫在mysql中【不是寫在mysql_safe】
在 正 式 的 使 用 m y s q l 數 據 庫 前 我 們 要 做 的 就 是 以 上 的 兩 方 面 安 全 設 定 。 下 面 進 入 m y s q l 使 用 \color{blue}{在正式的使用mysql資料庫前我們要做的就是以上的兩方面安全設定。下面進入mysql使用} 在正式的使用mysql資料庫前我們要做的就是以上的兩方面安全設定。下面進入mysql使用
提 前 說 明 , 在 m y s q l 數 據 庫 中 其 實 是 不 區 分 大 小 寫 的 , 不 過 為 了 正 規 , 我 們 都 是 用 大 寫 。 \color{blue}{提前說明,在mysql資料庫中其實是不區分大小寫的,不過為了正規,我們都是用大寫。} 提前說明,在mysql資料庫中其實是不區分大小寫的,不過為了正規,我們都是用大寫。
mysql -uroot -p ###登陸
SHOW DATABASES; ###檢視資料庫
USE mysql; ###進入資料庫
SHOW TABLES; ###檢視資料庫中的内容【有哪些表】
SELECT * FROM user; ###檢視user這個表;一列為一個字段
SELECT * FROM 表.
SELECT Host FROM user; ###查詢Host字段
SELECT Host,User FROM user; ###查詢Host,User兩個字段
SELECT Host,User,Password FROM user WHERE User="root"; ###查詢行
查詢:
我們使用 * 來代表所有字段,即所有列。當要查詢行時,需要使用WHERE進行比對查詢。
建立:
CREATE DATABASE xyy; ###建立庫
USE xyy; ###進入庫
CREATE TABLE userlist(
username VARCHAR(50) NOT NULL, ###名字長度50個字元以内,不為空
password VARCHAR(100) NOT NULL ###密碼長度為100個字元以内,不為空
); ###字段之間用逗号","隔開
SHOW TABLES; ###檢視有哪些表
DESC userlist; ###檢視表結構
SELECT * FROM userlist; ###檢視表内容
INSERT INTO userlist VALUES ("abc","123"); ###給表中寫内容
SELECT * FROM userlist; ###檢視表内容
SELECT * FROM xyy.userlist ##檢視westos庫中的userlist表
varchar 可變長資料類型
varchar(5) 長度為1-5都可以
char 定長資料類型
char(5) 長度必須為5,不為5,後續空格補齊
更改:
DROP TABLE userlist1; ###删除表
ALTER TABLE userlist RENAME user_list; ###給userlist這個表重命名為user_list
ALTER TABLE userlist ADD age VARCHAR(5); ###給表最後一列添加age這一列
ALTER TABLE userlist DROP age; ###删除userlist表中age這一列 ;【當表中隻有1列時,不能删除這一列,需要直接删除表】
UPDATE userlist SET age="12" WHERE username="lee"; 更改資料,隻更改符合username="lee"的這一行
庫備份/删除:
mysqldump -uroot -p 庫名 > /mnt/庫名.sql ###采用mysql語句備份,将庫備份到mnt下,以庫名.sql名字
mysqldump -uroot -p 庫名 --no-data ###隻備份格式,不備份表中資料
mysqldump -uroot -p --all-database ###備份所有庫
mysql -uroot -p westos < /mnt/westos.sql
###會報錯,因為我們将westos這個庫已經删除。
【解決方法為】vim /mnt/westos.sql
注釋後的第一行添加
CREATE DATABASE westos;
USE westos;
然後 mysql -uroot -p < /mnt/westos.sq
或者重建立立庫,再執行備份恢複
mysql -uroot -p -e "CREATE DATABASE westos;"
DELETE FROM 表 WHERE username="lee";
DELETE FROM 表 WHERE username=("lee"|"lee1");
删除使用者名為這兩個的所有行内容
DELETE FROM 表 WHERE username="lee" AND age="12"
删除多個條件指定的内容
DROP DATABASE 庫名 ###删除庫
使用者建立:
CREATE USER westos@'%' identified by'westos';
##使用者建立 【%:有遠端登陸的權力】【localhost:本地登陸】【by後面跟密碼】
vim /etc/my.cnf ###打開端口
systemctl stop firewalld ###關閉火牆
測試遠端登陸:
yum whatprovides mysql
yum install mariadb-5.5.52-1.el7.x86_64 ###安裝提供資料庫的mariadb
mysql -uwestos -h172.25.254.100 -p ###IP為資料庫主機的IP ,遠端連接配接
這裡直接示範一下遠端登陸。本地登陸不做示範了。
使用者授權:超戶狀态授權
SHOW GRANTS FOR [email protected]; ###檢視[email protected]的權力
GRANT SELECT,INSERT ON westos.* TO [email protected];
###對westos庫中所有表格都給予[email protected]使用者select檢視表和insert在表中寫内容的權限
REVOKE INSERT ON westos.* FROM [email protected];
###移除westos庫中所有表[email protected]使用者的寫權限
DROP USER w[email protected] ###删除[email protected]使用者
FLUSH PRIVILEGES;重新整理資料庫
【在測試端沒退出時改變權限進行測試,是沒有效果的】
########[email protected] 和 westos@’%’ 是兩個使用者
密碼管理:
**知道密碼時:
mysqladmin -uroot -pwestos password lee**
不知道密碼時:
systemctl stop mariadb 先關掉mariadb
并把背景mariadb清空
ps -aux | grep mysql
關掉背景mysql和程序中的mysql
mysqld_safe --skip-grant-tables &跳過授權表,沒有授權,就可以更改權限
mysql
USE mysql;
SHOW TABLES
SELECT * FROM user;
UPDATE user set Password=password('westos') WHERE User='root';
quit
圖形管理mysql:
準備内容:phpMyAdmin 軟體 【從老師那考的】
我們用的是phpMyAdmin,是以要安裝php
yum install php php-mysql -y
systemctl restart httpd 【沒有httpd服務還需要下在http】
tar jxf phpMyAdmin-3.4.0-all-languages > /var/www/html 【解壓到var/www/html目錄中,可共享】
mv phpMyAdmin-3.4.0-all-languages mysqladmin 【重命名】【可省略】
cd mysqladmin 【進入這個目錄】
cp config.sample.inc.php config.inc.php ###把模版複制一個
vim config.inc.php
$cfg【'blowfish_secret'】='ba17c1ec07d65003'
測試:
在浏覽器:http://172.25.254.112/mysqladmin
注意selinux 和 火牆的狀态,selinux處于enforcing會使http無法通路mysqladmin
通過less Documentation.txt檢視說明,會告訴我們在config.inc.php中要寫入的内容:
測試:在浏覽器通路伺服器的/mysqladmin
大大的小小陽