天天看點

Linux下的mysql資料庫使用【精】

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資料庫】

Linux下的mysql資料庫使用【精】
yum search mariadb
yum install mariadb-server.x86_64
systemctl start mariadb 
           

【開啟服務時,卡住的話需要在另一個shell中,或者無圖形界面輸入任意字元。原因是加密字元長度不夠】

Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】

【正常化安全設定:】

此時我們其實已經可以使用mysql資料庫了,但是沒有任何安全設定的mysql資料庫,可以直接通過指令

mysql

登陸。很不安全。是以要進行安全設定:

mysql_secure_installation
           
Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】

現在我們就不可以直接通過mysql指令,匿名,無密碼進行登陸資料庫了。

Linux下的mysql資料庫使用【精】

安全設定上,我們使用

netstat -antlupe | grep mysql

去檢視mysql接口狀态,會發現是有接口的,那麼就有可能會被網絡連接配接,造成資料庫被通路。是以我們還要去除網絡接口。

vim /etc/my.cnf             ###編輯mysqld配置檔案
	skip-networking=1   ###寫在mysql中【不是寫在mysql_safe】
           
Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】

在 正 式 的 使 用 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進行比對查詢。

Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】

建立:

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,後續空格補齊

Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】

更改:

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 庫名     ###删除庫
           
Linux下的mysql資料庫使用【精】

使用者建立:

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   ,遠端連接配接
           

這裡直接示範一下遠端登陸。本地登陸不做示範了。

Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】

使用者授權:超戶狀态授權

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@’%’ 是兩個使用者

Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】

密碼管理:

**知道密碼時:

mysqladmin -uroot -pwestos password lee**
           
Linux下的mysql資料庫使用【精】

不知道密碼時:

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
           
Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】

圖形管理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

Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】

通過less Documentation.txt檢視說明,會告訴我們在config.inc.php中要寫入的内容:

Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】

測試:在浏覽器通路伺服器的/mysqladmin

Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】
Linux下的mysql資料庫使用【精】
大大的小小陽