1. 程式人生 > >史上最全的ubuntu伺服器搭建環境教程~~~

史上最全的ubuntu伺服器搭建環境教程~~~

ubuntu伺服器搭建環境~~~

1. 先安裝xshell:遠端伺服器連線(取代直接在瀏覽器 上 訪問)

2. 安裝xftp(ftp檔案傳輸)直接雙擊紅色圈圈即可


3. 安裝mysql資料庫:

指令:sudo apt-get update

           sudo apt-get install mysql-server mysql-client

判斷是否已經安裝成功:sudo netstat -tap | grep mysql

(如果發現數據庫已經在監聽某個埠了,說明已經安裝成功)

4. mysql使用者操作(新建使用者,許可權分配,遠端登入)

        介紹:

1.許可權表

MYSQL是一個多使用者的資料庫,MYSQL的使用者可以分為兩大類:

(1)       超級管理員使用者(root),擁有全部許可權

(2)       普通使用者,由root建立,普通使用者只擁有root所分配的許可權

1.1 許可權表的位置

資料庫:mysql

與許可權相關的資料表:user,db,host,tables_priv,columns_priv,procs_priv等

1.2 user表

User表儲存了:

(1)使用者的資訊:hots(使用者所在的主機),user(使用者名稱),password(密碼)

(2)使用者的許可權資訊:_priv

(3)安全性相關的資訊:ssl_,x509,記錄使用者登入的驗證操作等

(4)與資源分配相關的資訊:max_,

    max_questions表示使用者在一個小時內最多可以進行的查詢次數。

    max_updates表示使用者在一個小時內最多可以進行的更新次數,也包括增加資料、刪除資料。

    Max_connections:表示使用者最多可以建立的連線數

1.2.1 user表的內容

(1)host列

    Localhost表示本機的使用者或者超級管理員

    %表示任何主機上的root使用者

        說明:_priv許可權是全域性許可權,不受資料庫的範圍限制

1.3 DB表

(1)與使用者相關的欄位:host(使用者所在的主機),user(使用者名稱),

(2)與許可權相關的欄位:_priv,DB欄位規定了_priv許可權的有效範圍。

1.4 host表

(1)與使用者相關的欄位:host

(使用者所在的主機)

(2)與許可權相關的欄位:_priv,DB欄位規定了_priv許可權的有效範圍。

說明:

(1)       記錄主機上的使用者對資料庫擁有的許可權,側重點在主機,而不在使用者,例如假設select_priv=Y,那個這個主機上的所有資料庫使用者都擁有select許可權。

(2)       Host表的優先順序大於db表,如果db表規定這個使用者沒有許可權,但是host表規定了這臺主機的使用者有許可權,那麼db的這個使用者也是擁有許可權的。

1.5 tables_priv表

設定了使用者對某個表擁有的許可權,該表記錄了使用者的資訊,以及某個表的許可權資訊table_priv(select ,lnsert,alter等等),以及表上的某個列的許可權資訊column_priv。

1.6 column_priv

記錄某使用者對某表的某個列所擁有的許可權。

1.7procs_priv 表

    規定了使用者關於儲存過程及儲存函式的操作許可權,主要欄位:proc_priv

2. 建立資料庫使用者

2.1 建立普通使用者

2.1.1 CREATE USER

CREATE USER ‘使用者名稱稱’ [@’主機名稱’]

例:CREATE USER 'user1';

驗證是否建立成功:

mysql> SELECT user FROM mysql.user;(也可先use mysql;再select user from user;下面同理)

說明:使用CREATE USER來建立的使用者,均無任何許可權,user表的許可權欄位的值均為N

(1)建立帶有主機名的使用者

CREATE USER ‘使用者名稱稱’ [@’主機名稱’] 

CREATE USER 'user2' @'localhost';

 mysql> create user 'admin'@localhost;

mysql>select user,host from user;

說明:host欄位的%表示不受任何主機的限制

mysql> create user 'admin'@'%';

(2)建立帶密碼的使用者

CREATE USER 'user3' @'localhost'  [INDENTIFIED BY ‘使用者密碼’];

eg:

CREATE USER 'user3' @'localhost' IDENTIFIED BY '123333';

驗證:

mysql> SELECT user,authentication_string,host FROM user;(mysql5.7的password欄位變成了authentication_string)

注意:密碼是雜湊碼的形式顯示的

2.1.2 使用GRANT來建立使用者,以及授予許可權

GRANT是用來給使用者授權的,但是也可以用來建立使用者,GRANT在給使用者進行授權的時候,如果使用者是不存在的,那麼GRANT會自動建立這個使用者,然後再給這個使用者進行授權。

(1)新增許可權

grant 許可權 on 資料庫.表 to '使用者名稱'@'登入主機'  [INDENTIFIED BY ‘使用者密碼’];

許可權: select ,update,delete,insert(表資料)、create,alert,drop(表結構)、references(外來鍵)、create temporary tables(建立臨時表)、index(操作索引)、create view,show view(檢視)、create routine,alert routine,execute(儲存過程)、all,all privileges(所有許可權)

資料庫:資料庫名或者*(所有資料庫)

表:表名或者*(某資料庫下所有表),*.*表示所有資料庫的所有表

主機:主機名或者%(任何其他主機)

 eg:

mysql> grant all privileges on *.* to [email protected] identified by 'root';

賦予[email protected] 使用所有資料庫的許可權,在主機192.168.0.1上使用root賬戶登入,密碼為:root

mysql> grant all privileges on *.* to [email protected]'%' identified by 'root';(表示%(任何其他主機))

例:grant select,insert,update,delete on *.* to 'jifei'@'%';

mysql>GRANT SELECT ON *.* TO 'user4' @'localhost' IDENTIFIED BY '123333';

(2) 為使用者授予指定資料庫、指定表、指定列的許可權:

GRANT UPDATE(cid,cname) ON mysqlpart2.custom TO 'user3'@'localhost';

授權成功後,可以在以下表中檢視到授權資訊:

資料庫: mysql » 表: tables_priv "Table privileges"

資料庫: mysql » 表: columns_priv "Column privileges"

(3)使用者許可權表

位置:資料庫: information_schema »表: USER_PRIVILEGES

表的說明:

GRANTEE:授權者

PRIVILEGE_TYPE:許可權名稱

使用者表:資料庫: mysql »表: user "Users and global privileges"

說明:user表中,”_priv”的值域USER_PRIVILEGES表的PRIVILEGE_TYPE的值是一一對應的。

(4)許可權的層級關係

①許可權的層級關係,就是指許可權的適用範圍。

②許可權的最高層級是全域性級,所謂全域性級就是可以在任何資料庫的任何資料表上進行操作。

③資料庫級:只能在某個資料庫上進行操作。

④表級:許可權資訊所在位置:資料庫: mysql »表: tables_priv "Table privileges"

⑤列級:許可權資訊所在位置:資料庫: mysql »表: columns_priv "Column privileges"

⑥子程式級:許可權資訊所在位置:資料庫: mysql »表: procs_priv "Procedure privileges"

(5)撤銷許可權

REVOKE 許可權 ON 資料庫.表 FROM  '使用者名稱'@'登入主機;

說明:賦權與撤銷許可權的區別,就是REVOKE是將to改為from

例:revoke all on *.* from  ‘jifei’  @’%’;

REVOKE UPDATE(cid,cname) ON mysqlpart2.custom FROM 'user3'@'localhost';

(6) 檢視許可權

SHOW GRANTS;//自己

SHOW GRANTS FOR  使用者名稱稱@主機名稱;

例:

mysql>show grants;

mysql>show grants for [email protected]

說明:所有SHOW關鍵字後面的詞都是複數,所有CREATE關鍵字後面的詞都是單數

通過mysql.columns_priv表來檢視許可權:

SELECT * FROM mysql.columns_priv WHERE user='user3' AND host='localhost';

mysql> SELECT * FROM mysql.columns_priv WHERE user='user3' AND host='localhost';

2.1.3 關於以直接向user表插入記錄的方式來建立使用者

可以使用INSERT的方式,直接向user表插入記錄,以此來建立使用者,但是因為user表的欄位很多,而且全部欄位均不允許為空,這就需要為每一個列賦值,所以不推薦使用這種方式來建立使用者。

2.1.4 CREATE USER 與 GRANT 兩種方式建立使用者的區別

(1)CREATE USER 建立使用者的優點:語法簡單

(2)CREATE USER 建立使用者的不足:使用者無許可權

(3)GRANT 建立使用者的優勢:建立的使用者有許可權

(4)GRANT 建立使用者的不足:語法較CREATE USER 繁瑣

3. 刪除MYSQL的使用者

delete from mysql.user where user='使用者名稱稱' and host='主機名稱';

例:DELETE FROM mysql.user WHERE user='user3' AND host='localhost';

刪除後使用:FLUSH PRIVILEGES 來重新整理許可權

說明:

使用DELETET刪除使用者後,必須使用FLUSH PRIVILEGES 來重新整理許可權,否則將無法繼續建立使用者名稱與已刪使用者的使用者名稱相同的使用者,即使在user表中看不到已刪除的使用者,如果不重新整理許可權,也是無法再新建的。

例:

刪除使用者user3:

mysql> DELETE FROM mysql.user WHERE user='user3' AND host='localhost';

Query OK, 1 row affected (0.00 sec)

檢視使用者表,user3已刪除成功:

mysql> select user from mysql.user;

+-------+

| user  |

+-------+

| user1 |

| root  |

| root  |

|       |

| pma   |

| root  |

| user2 |

| user4 |

+-------+

8 rows in set (0.00 sec)

建立使用者user3失敗:

mysql> CREATE USER 'user3' @'localhost' IDENTIFIED BY 'pwd';

ERROR 1396 (HY000): Operation CREATE USER failed for 'user3'@'localhost'

重新整理許可權:

FLUSH PRIVILEGES;

再次建立使用者,成功:

mysql> CREATE USER 'user3' @'localhost' IDENTIFIED BY 'pwd';

Query OK, 0 rows affected (0.00 sec)

4. 修改使用者密碼:

UPDATE mysql.user SET password=PASSWORD('新密碼') WHERE user='使用者名稱

[AND host=’主機名稱’]';

UPDATE mysql.user SET password=PASSWORD('111111') WHERE user='root';

注意:

(1)如果不加WHERE 條件,則會把所有使用者的密碼都修改為’新密碼’

(2)密碼修改完成後,需要進行許可權重新整理操作才能生效,FLUSH PRIVILEGES;

例:

UPDATE mysql.user SET password=PASSWORD('111') WHERE user='user1';

(1)修改密碼的許可權

ROOT使用者可以修改自己的密碼,也可以修改其他使用者的密碼

其他使用者只能修改自己的密碼

(2)PASSWORD函式

用於把密碼明文進行加密,所得到的密碼為原密碼的雜湊值。

例:

mysql> SELECT PASSWORD('111');

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

| PASSWORD('111')                           |

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

| *832EB84CB764129D05D498ED9CA7E5CE9B8F83EB |

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

1 row in set (0.07 sec)

(3)ROOT使用者、普通使用者修改自己的密碼

SET PASSWORD=PASSWORD(‘新密碼’);

(4)ROOT 使用者為其他使用者修改密碼:

SET PASSWORD FOR ‘使用者名稱稱’  @’主機名稱’  = password(‘新密碼’);

例,以下兩種修改密碼的方式結果相同:

SET PASSWORD FOR 'user1' @'%'=PASSWORD('111');

UPDATE mysql.user SET password=PASSWORD('111') WHERE user='user1';

授權之後則是本篇文章的重點了:(搞了我大半天,可以的話點個贊)

如何遠端連線資料庫:(再進行連線資料庫時候,請保證你已經完成下面的步驟)

1. 已經授權了,grant all privileges on *.* to 'username'@'%' identified by 'password';

2. 防火牆已經關閉(具體如何關閉自行網上搜)

3. 配置/etc/mysql/mysql.conf.d/mysqld.cnf檔案並重啟。具體步驟如下:

1)sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf(記住是這個檔案,而不是這個路徑/etc/mysql/my.cn

2)將裡面    bind-address = 127.0.0.1這句注視掉(即在前面加上#即可)(127.0.0.1表示只允許本機訪問,所以要把它註釋掉)

3)wq!退出

4)重啟:sudo service mysql restart


接下來就是redis的安裝了~

redis安裝方法介紹:編譯安裝:

1. 保證網路暢通,選定好下載工作路徑,執行以下命令下載redis-3.2.6:

sudo wget http://download.redis.io/releases/redis-3.2.6.tar.gz

2. 解壓該檔案:

sudo tar -zxvf redis-3.2.6.tar.gz

3. 會在當前目錄下生成資料夾redis-3.2.6(可以用ls來查詢),我把它移動到了/usr/redis目錄下: 

  [email protected]:/usr/redis$ mv redis-3.2.6/ /usr/redis/

4. 如果沒有安裝gcc,需要先安裝:

相關推薦

ubuntu伺服器搭建環境教程~~~

ubuntu伺服器搭建環境~~~1. 先安裝xshell:遠端伺服器連線(取代直接在瀏覽器 上 訪問)2. 安裝xftp(ftp檔案傳輸)直接雙擊紅色圈圈即可3. 安裝mysql資料庫:指令:sudo apt-get update           sudo apt-get

使用Nexus搭建Maven伺服器詳細配置

為什麼要搭建nexus私服,原因很簡單,有些公司都不提供外網給專案組人員,因此就不能使用maven訪問遠端的倉庫地址,所以很有必要在局域網裡找一臺有外網許可權的機器,搭建nexus私服,然後開發人員連到這臺私服上,這樣的話就可以通過這臺搭建了nexus私服的電腦訪問mav

效能測試分析與效能調優診斷--伺服器效能分析監控調優篇

 一個系統或者網站在功能開發完成後一般最終都需要部署到伺服器上執行,那麼伺服器的效能監控和分析就顯得非常重要了,選用什麼配置的伺服器、如何對伺服器進行調優、如何從伺服器監控中發現程式的效能問題、如何判斷伺服器的瓶頸在哪裡等 就成為了伺服器效能監控和分析時重點需要去解決的問題了。  本文章節

面的Docker構建工具教程

onf -name engine .json usr art 倉庫 version 地址 Docker 是一個開源的應用容器引擎,基於 Go 語言] 並遵從Apache2.0協議開源。Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發布到

的資料結構視訊教程分享-絕對是的,共30個!!

資料結構視訊教程下載地址 出自我是碼農 以下資料結構視訊教程是我多年收集的,因為在百度網盤上分享整個教程很快就會被delete,所以我只好花費大量功夫對單個視訊進行一個一個的分享,這樣才能長時間保留下來,為了學習,麻煩些也值得了!現在毫無保留的免費共享給大家,與君共勉! 個人認為資料結構

【免費領取】的web前端學習教程彙總!

文末有前端系統學習資料領取地址!(點選左下方黑色字型‘閱讀原文’)進群領取,每天分享價值500左右的教程。 第一階段:HTML+CSS HTML進階、CSS進階、div+css佈局、HTML+css整站開發、 JavaScript基礎:js基礎教程、js內建物件常用方法、常見DOM樹操作大全、EC

的Android開發學習教程集錦【初學者】

根據Google的報告,截止2017年5月為止,Android活躍使用者已超過20億,並還在持續增長中。Android系統在幾個主要的市場上已超過了iOS系統,特別是在美國,歐洲和日本,然而蘋果確實在中國市場找到了一席之地。未來的市場到底誰是“霸主”我們還無從得知,但Andr

2019年面的web前端學習教程

要想成為一個優秀的前端工程師,肯定是要有一份良好的學習教程! 先給大家看看一個年薪30的前端程式設計師該學習哪些? 好的web前端

Windows Azure 搭建 VPN 環境 (Linux Ubuntu虛擬機器)(不要錢)

近期發現公司專案中使用的Microsoft郵箱賬戶有MSDN全套開發訂閱,由於一直想租個伺服器玩玩,遂大喜,立馬啟用Windows Azure訂閱。 由於專案是國際專案,所以區域只能是國際版的Azure了,不一定適用國內。 啟用Azure訂閱什麼的就不囉嗦了,待啟用成功進入https:/

自動化測試 - Appium + Python環境搭建步驟

一,為什麼是Appium借一張圖:   1.1 Appium優點 l  開源 l  跨架構:NativeApp、Hybird App、Web App l  跨裝置:Android、iOS、Firefox OS l  不依賴原始碼 l 

Appium + Python環境搭建步驟

一,為什麼是Appium借一張圖:1.1 Appium優點l  開源l  跨架構:NativeApp、Hybird App、Web Appl  跨裝置:Android、iOS、Firefox OSl  不依賴原始碼l  使用任何WebDriver 相容的語言來編寫測試用例。比

詳細Windows版本搭建安裝React Native環境配置

gin windows系統 adl 搭建環境 tools 想要 變量 rep home 說在前面的話: 感謝同事金曉冰傾情奉獻本環境搭建教程 之前我們已經講解了React Native的OS X系統的環境搭建以及配置,鑒於各大群裏有很多人反應在Windows環境搭建出現各種

Vue2.0入坑教程—— 搭建Vue腳手架(vue-cli)

這裡要手動複製就是用滑鼠右鍵那個,具體為啥不多解釋),安裝這裡是因為我們用的npm的伺服器是外國,有的時候我們安裝“依賴”的時候很很慢很慢超級慢,所以就用這個cnpm來安裝我們說需要的“依賴”。安裝完成之後輸入 cnpm -v,如下圖,如果出現相應的版本號,則說明安裝成功。安裝webpack安裝webpack

簡單Android原始碼編譯環境搭建方法(基於Docker)

利用Docker映象確實可以簡化編譯環境的配置,現在Docker的用處還是挺多的,例如TensorFlow也可以在Docker上玩。有史以來,Android原始碼編譯環境的搭建始終是一件麻煩事兒。網上有數不清的文章介紹如何編譯Android原始碼,但是他們要麼方法複雜、步驟太

CDH-5.10.2叢集的搭建,不不要錢】(已經實現,但是非預期效果,可能是由於記憶體不足)

說在前面的話:本文適合電腦記憶體16G以上的,安裝的是純正的CDH,不是三個節點的,純正四節點。建議配置主節點3G記憶體,從節點1.5G記憶體,硬碟大小建議單節點配置20G以上,CDH版本比apache吃記憶體和硬碟,請準備好再安裝 如果你是新手學習,強烈!建議不要瞎改

Docker環境安裝指南-讓安裝docker簡單到爆

一、思考❓❔ 1.什麼是Docker? 裝應用的容器 開發、測試、運維都偏愛的容器化技術 輕量級 擴充套件性 一次構建、多次分享、隨處執行 2.安裝Docker難不難? So easy! 此文看過之後,讀者一定會有一個docker環境 二、Windows上安裝Docker

【轉載】:TensorFlow 好玩的技術、應用和你不知道的黑科技

tube map 高性能 知識 seq 出現 執行時間 mes lex 【導讀】TensorFlow 在 2015 年年底一出現就受到了極大的關註,經過一年多的發展,已經成為了在機器學習、深度學習項目中最受歡迎的框架之一。自發布以來,TensorFlow 不斷在完善並增加新

: svn與git的對照(二):svn與git的相關概念

fill 來看 out avi head clas 相關 iss b2c 如圖1是svnserver端數據的文件夾結構 以下是gitserver端的文件夾結構 縱觀svn和git服務端的文件夾結構我們非常easy發現 1.有些目錄還是蠻像的。甚

React Native常用第三方組件匯總-- 之一

提示 存儲 ext upload body ner board pup wan 把我認為最好的知識,拿來與他人分享,是這一生快事之一! React Native 項目常用第三方組件匯總: react-native-animatable 動畫 react-na

掛載文件系統出現"kernel panic..." 解決方案

某個文件 table sha mount nic mic 2.6 完成 又是   問:掛載自己制作的文件系統卡在這裏:    NET: Registered protocol family 1    NET: Registered protocol family 17