linux 資料庫管理

Je_suis_Lulu發表於2017-05-18

資料庫

一、什麼是資料庫

顧名思義資料庫用來存放資料表格

二、資料庫安裝及安全初始化

(一)資料庫安裝

1.yum install  mariadb-server  -y   ##下載服務端

2.systemctl start  mariadb     #開啟資料庫服務

3.登入

mysql [enter]   #無密碼登入資料庫

MariaDB [(none)]> show databases;   ##查詢資料庫,注意命令結尾一定加分號

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

+--------------------+

3 rows in set (0.00 sec)

(二)安全初始化

如上可以無密碼登入資料庫,對於資料庫而言是極不安全的。為了保證資料庫的安全性,需要對資料庫進行安全初始化。

(1)配置埠

1.使用如下命令可以檢視資料庫對網路開放的埠號

netstat -antlpe | grep  mysql 

[root@localhost ~]# netstat -antlpe | grepmysql

tcp       0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      27        215411     32204/mysqld       

  ##可以看出資料庫對網路開放埠3306

2.vim /etc/my.cnf   #埠配置

在11行之前編輯:

skip-networking=1    ##開啟跳過網路訪問的功能,即關閉網路埠

  :wq

 systemctl restart maridb  ##重啟服務

(2)安全初始化

1.初始化

[root@localhost ~]#mysql_secure_installation    ##開始進行安全初始化

  ...

Enter current password for root (enter fornone): [enter]  #輸入當前密碼,為初始化時資料庫無祕密

   ...

Change the root password? [Y/n] y   #是否修改密碼,需要加密

New password:              ##輸入密碼且不顯行

Re-enter new password:     ##確認密碼

Password updated successfully!

Reloading privilege tables..

 ...Success!

Remove anonymous users? [Y/n] y   #禁止匿名登入

 ...Success!

Disallow root login remotely? [Y/n] y    ##禁止root使用者遠端登入

 ...Success!

Remove test database and access to it?[Y/n] y   ##不測試

 -Dropping test database...

Reload privilege tables now? [Y/n] y     ##更新資料庫,即完成初始化

 ...Success!

 

2.登入格式

mysql -uroot -p密碼   #使用者root使用密碼登入資料庫,但方式會顯示祕密,仍存在安全性問題

[root@localhost mnt]# mysql -uroot -p

Enter password: ##不顯行輸入密碼

Welcome to the MariaDB monitor.  ...

(三)管理資料庫

(1)查詢資料庫

進入資料庫中:

1. show  databases;     ##檢視資料庫

MariaDB [(none)]> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |         ##包含資料庫mysql

| performance_schema |

+--------------------+

3 rows in set (0.00 sec)     

 

2. use mysql;      ##進入資料庫

3. show tables;     ##檢視當前資料庫中的表格

  desc  表名;       ##檢視錶中的欄位

MariaDB [mysql]> desc func;    ##檢視func表格中包含哪些欄位

+-------+------------------------------+------+-----+---------+-------+

| Field | Type                         | Null | Key | Default| Extra |

+-------+------------------------------+------+-----+---------+-------+

| name | char(64)                     |NO   | PRI |         |      |

| ret  | tinyint(1)                   |NO   |    | 0       |       |

| dl   | char(128)                    |NO   |    |         |       |

| type | enum('function','aggregate') | NO  |     | NULL    |      |

+-------+------------------------------+------+-----+---------+-------+

###則包含欄位:name 、 ret、 dl 、 type

4. select * from 表名;    ##查詢表中所有欄位內容

  select  欄位  from  表名;    ##檢視錶中指定欄位的內容 

##可以看出表中包含的欄位比較多,包含欄位如:Host、User、Passqord等

##檢視錶中User包含哪些資料即哪些使用者

(2)新建資料庫

create database  資料庫名稱;    #新建資料庫

use database  資料庫名;   ##進入資料庫

create table  表名(

->欄位名1 varchar(字元長度)  not null,   ##定義欄位名不能大於設定的字串長度(最大為255),且不能為空

->欄位名2 varchar(字元長度)  not null,

->...

-> );   ##新建表格

insert  into  表名 values('字串1','字串2',...);    #寫資料內容   

insert into   表名 values('字串1',password('字串2'),...);  

##字串2的內容將不可見

(3)更新資料庫資訊

1. update 表名  set password=password('字串')   where   username='user';   

  ##將username='user'的密碼均改為字串1,並且加密不顯示字串內容

update 表名  set password=password('字串')   where   ( username='user1'  or username=’user2’);

###更新user1和user2的密碼


 delete  from  表名  where  username='user1'; 

 ##從linux 表格中刪除username='user1'的資訊



2. alter  table  表名 add  欄位名 varchar(字元長度)  not null;   

   ##在linux表格後加入某欄位



 alter  table  表名 add  欄位名 varchar(字元長度)  after  已有欄位;  

   ##在linux表格的已有欄位後新增欄位


alter table  表名 drop  段名;  ##從某表格中刪除某欄位

(4)刪除資料庫

1.delete from  表名 where  欄位='字串';   ##刪除某表格中包含某欄位資訊的內容


drop table  表名;  ##刪除指定表格

drop database  庫名;  ##刪除指定庫


(5)資料庫備份

1.mysqldump -uroot  -p密碼 --all-database      ##備份所有表中的所有資料

2.mysqldump -uroot  -p密碼 --all-database  --no-data  ##備份所有表,但不備份資料

3.mysqldump -uroot  -p密碼 庫名   ##備份指定的庫

以上備份內容併為儲存在檔案中,可以將備份內容匯入檔案中進行儲存,命令如下:

4.mysqldump -uroot  -p密碼 庫名 > /目錄名/檔名.sql

如:mysqldump  -uroot -pwestos  westos >/mnt/westos.sql

5.mysqldump -uroot  -p密碼 庫名  表名 > /目錄名/檔名.sql

##備份指定庫中的指定表格至檔案中

如:mysqldump  -uroot -pwestos  westos  linux >/mnt/linux.sql

##備份westos庫中的linux表至/mnt/linux.sql中

6.mysql  -uroot -p密碼  -e "create  database  庫名"

##新建庫,其中:-e表示執行命令

7.mysql -uroot  -p密碼 庫名 < /目錄名/檔名.sql

##將檔案中的資料匯入庫中

如:mysql  -uroot -pwestos  westos </mnt/westos.sql

(6)使用者授權

先登入資料庫:mysql  -uroot -pwestos

1.create  user  使用者名稱@localhost  identified by  '密碼';

  ##建立使用者並給定密碼,此使用者只能通過本機登入

  select  User,Host from  mysql.user;   ##檢視使用者資訊=使用者名稱+登入方式

  登入格式:mysql  -u使用者名稱  -p密碼   ##本機登入

 create  user  使用者名稱@'%'  identified  by  '密碼';

##建立使用者並給定密碼,此使用者可以通過網路登入

登入格式:mysql  -u使用者名稱  -p密碼 -h  IP    ##通過網路登入

2.超級使用者登入資料庫再進行授權:mysql  -uroot  -p密碼

授權命令如下:

grant insert,update,delete,select on  庫名.*  to  使用者@localhost;

##使用者授權:使指定使用者對指定庫中所有資料都有某些執行許可權

grant 許可權1,... on  庫名.表名  to  使用者@'%'

##使用者對庫中的指定的表格有某些許可權

如:grant  insert,update,delete,select  on westos.linux  to  bai@localhost

##使用者bai可以對westos.linux表進插值、更新、刪除、檢視資料的功能

3.show grants  for  使用者@'%'    ##檢視使用者授權

 show  grants for  使用者@localhost  

4.revoke 許可權  on  庫名.表名  from  使用者@localhost;   ##去除使用者許可權

 revoke  許可權  on  庫名.表名  from  使用者@'%';

如:revokeselect,update,delete on westos.linux  from  bai@localhost;

##去除使用者bai 對於westos.linux表的select、update、delete許可權

 drop  user  使用者@'%';  ##刪除使用者

 drop  user  使用者@localhost;

(7)更改root使用者密碼

1.直接呼叫如下命令進行改改密:

mysqladmin  -uroot  -p原密碼  password  新密碼    ##更改使用者密碼為新密碼

2.當忘記使用者密碼時,則依次執行如下操作

systemctl stop  mariadb   ##先關閉服務

mysqld_safe --skip-grant-tables &    #開啟myasql登入並跳過授權表

mysql     #即可直接登入

update mysql.user  set  Password=password('新密碼');  ##更改密碼

update mysql.user  set  Password=password('新密碼')  where User=root;

ps aux  |  grep mysql    #過濾mysql的所有程式並且關閉這些程式

kill -9 程式id


systemctl start  mariadb   ##開啟服務

mysql -uroot  -p新密碼      ##使用新設定的密碼

資料庫的網頁管理工具

基於以上實驗基礎

一、安裝

1.yum install  httpd  php  php-mysql  -y

2.systemctl start  httpd

 systemctl  enable  httpd

 systemctl  stop  firewalld

 systemctl  disable  firewalld

2.需要下載

 phphMyAdmin-3.4.0-all-languages.tar.bz2

 tar  jxf  phphMyAdmin-3.4.0-all-languages.tar.bz2  -C /var/www/html    ##解壓

 cd  /var/www/html

 mv  phphMyAdmin-3.4.0-all-languages/  名稱   ##將該證照重新命名



3. cd  /var/www/html/mysql

 cp -p  config.sample.inc.pfp  config.inc.php   ##得到配置檔案

 vim config.inc.php

  編輯第17行,如下示,如圖示:' '中所加內容可任意填寫

$cfg['blowfish_secret'] = 'NEWADD'; /* YOUMUST FILL IN THIS FOR COOKIE AUTH! */ 

 

4.開啟瀏覽器測試:

訪問http://172.25.254.109/mysql

(1)新建資料庫:westos,如下示:

(2)在新資料庫westos中新建表westosuser,欄位數為4

可以在服務端檢視

填寫表格:

執行成功後顯示如下:

可在服務端檢視


相關文章