1. 程式人生 > >Linux虛擬機器安裝Mysql,並使用Navicat連線

Linux虛擬機器安裝Mysql,並使用Navicat連線

一、目的

       安裝msql,並設定可以遠端訪問,使用Navicate資料庫管理軟體進行mysql資料庫管理。

二、Linux虛擬機器安裝mysql並設定允許遠端訪問

1.檢視知否已有MySQL

輸入:yum list installed | grep mysql


2.解除安裝自帶的MySQL

輸入:yum -y remove mysql-libs.x86_64,若有多個依賴檔案則依次解除安裝。
當結果顯示為Complete!即解除安裝完畢。解除安裝之後要清理乾淨,清理目錄。

3.檢視yum庫上的mysql版本資訊。

輸入:yum list | grep mysql 或 yum -y list mysql*

4.使用yum安裝mysql資料庫。

輸入:yum -y install mysql-server mysql mysql-devel ,命令將:mysql-server、mysql、mysql-devel都安裝好,當結果顯示為“Complete!”即安裝完畢。


5.檢視剛安裝mysql資料庫版本資訊。

輸入:rpm -qi mysql-server


6.啟動MySQL

service mysqld start

7.設定密碼

update user set password=passworD("pingce123") where user="root";
flush privileges;

7.5在linux系統上登陸mysql服務。

-- root 是使用者名稱
[
[email protected]
~]# mysql -u root -p Enter password: -- 輸入密碼 8.設定遠端連線 將host設定為%表示任何ip都能連線mysql,當然您也可以將host指定為某個ip      update user set host='%' where user='root' and host='localhost';       flush privileges;        #重新整理許可權表,使配置生效       然後我們就能遠端連線我們的mysql了。 原文:https://blog.csdn.net/qq_17770183/article/details/78339020 建立遠端連線 MySQL 的使用者: 8.5 給訪問mysql資料庫的使用者許可權 -- 建立使用者、密碼及許可權範圍 第一個 roo t為使用者名稱 @後為適用的主機,‘%’表示所有電腦都可以訪問連線,第二個 root 為密碼 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.2' IDENTIFIED BY 'root' WITH GRANT OPTION; Query OK, 0 rows affected (1.57 sec) -- 立即生效 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) 9.退出mysql命令列模式之後,開啟虛擬機器外部訪問的埠。設定防火牆開放3306埠或者關閉防火牆 防火牆開放3306埠 防火牆開放3306埠: 1)開啟防火牆配置檔案 vi /etc/sysconfig/iptables 2)增加下面一行 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 3)重啟防火牆 service iptables restart 注意:增加的開放3306埠的語句一定要在icmp-host-prohibited之前 關閉防火牆: 1) 永久性生效 開啟:chkconfig iptables on 關閉:chkconfig iptables off 2)即時生效,重啟後失效 開啟:service iptables start 關閉:service iptables stop 需要說明的是對於 Linux 下的其它服務都可以用以上命令執行開啟和關閉操作 10.啟動mysqld服務,啟動mysql資料庫 service mysqld start; 關閉為:service mysqld stop; 有用文章:https://blog.csdn.net/fjssharpsword/article/details/72865706

三、在虛擬機器之外的本地計算機檢查虛擬機器埠是否已經開放

 
linux運維都需要對埠開放檢視  netstat 就是對埠資訊的檢視

# netstat -nltp

p 檢視埠掛的程式

[[email protected] ~]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3346/nginx: master  
tcp        0      0 127.0.0.1:8081          0.0.0.0:*               LISTEN      2493/docker-proxy-c 
tcp        0      0 127.0.0.1:8082          0.0.0.0:*               LISTEN      5529/docker-proxy-c 
tcp        0      0 127.0.0.1:8083          0.0.0.0:*               LISTEN      17762/docker-proxy- 
tcp        0      0 127.0.0.1:8084          0.0.0.0:*               LISTEN      2743/docker-proxy-c 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2155/sshd    
看到 查詢的有Local、Address、Foregin、Program name
Local :訪問埠的方式,0.0.0.0 是對外開放埠,說明80埠外面可以訪問;127.0.0.1 說明只能對本機訪問,外面訪問不了此埠;

Address:埠

Foregin Address:對外開放,一般都為0.0.0.0:* 

Program name:此埠是那個程式在用,程式掛載此埠

重點說明 0.0.0.0 是對外開放,通過服務域名、ip可以訪問的埠

               127.0.0.1 只能對本機 localhost訪問,也是保護此埠安全性

    ::: 這三個: 的前兩個”::“,是“0:0:0:0:0:0:0:0”的縮寫,相當於IPv6的“0.0.0.0”,就是本機的所有IPv6地址,第三個:是IP和埠的分隔符

四、Navicat連線mysql

       使用ifconfig檢視虛擬機器的ip,然後填入navicat,連線資料庫即可。

五、補充

    如果開放了mysql遠端連線以及使用者的昂問許可權,並且關閉了防火牆,依舊無法訪問。問題就出在虛擬機器的網路上。根據下面的四種網路連線方式的學習,可以知道如果虛擬機器使用的是橋接模式,那麼需要配置3306埠對映,才能讓navicate連線上mysql。

快速理解VirtualBox的四種網路連線方式

VirtualBox中有4中網路連線方式:

  1. NAT
  2. Bridged Adapter
  3. Internal
  4. Host-only Adapter

VMWare中有三種,其實他跟VMWare 的網路連線方式都是一樣概念,只是比VMWare多了Internal方式。

要讓自己(或別人)理解深刻,方法就是做比較和打比方,比較之間的不同和相同,拿熟知的事物打比方。先來一張圖,通過這張圖就很容易看出這4種方式的區別:

(注:此圖直接取至Finalbug的Blog,表示感謝)

再來用文字做詳細的解釋(其實歸結起來就是上面的那張圖):

1、NAT

NAT:Network Address Translation,網路地址轉換

NAT模式是最簡單的實現虛擬機器上網的方式,你可以這樣理解:

Guest訪問網路的所有資料都是由主機提供的,Guest並不真實存在於網路中,主機與網路中的任何機器都不能檢視和訪問到Guest的存在。

Guest可以訪問主機能訪問到的所有網路,但是對於主機以及主機網路上的其他機器,Guest又是不可見的,甚至主機也訪問不到Guest。

虛擬機器與主機的關係:只能單向訪問,虛擬機器可以通過網路訪問到主機,主機無法通過網路訪問到虛擬機器。

虛擬機器與網路中其他主機的關係:只能單向訪問,虛擬機器可以訪問到網路中其他主機,其他主機不能通過網路訪問到虛擬機器。

虛擬機器與虛擬機器的關係:相互不能訪問,虛擬機器與虛擬機器各自完全獨立,相互間無法通過網路訪問彼此。

2、Bridged Adapter(網橋模式)

網橋模式,你可以這樣理解:

它是通過主機網絡卡,架設了一條橋,直接連入到網路中了。因此,它使得虛擬機器能被分配到一個網路中獨立的IP,所有網路功能完全和在網路中的真實機器一樣。

網橋模式下的虛擬機器,你把它認為是真實計算機就行了。

虛擬機器與主機的關係:可以相互訪問,因為虛擬機器在真實網路段中有獨立IP,主機與虛擬機器處於同一網路段中,彼此可以通過各自IP相互訪問。

虛擬機器於網路中其他主機的關係:可以相互訪問,同樣因為虛擬機器在真實網路段中有獨立IP,虛擬機器與所有網路其他主機處於同一網路段中,彼此可以通過各自IP相互訪問。

虛擬機器與虛擬機器的關係:可以相互訪問,原因同上。

3、Internal(內網模式)

內網模式,顧名思義就是內部網路模式:

虛擬機器與外網完全斷開,只實現虛擬機器於虛擬機器之間的內部網路模式。

虛擬機器與主機的關係:不能相互訪問,彼此不屬於同一個網路,無法相互訪問。

虛擬機器與網路中其他主機的關係:不能相互訪問,理由同上。

虛擬機器與虛擬機器的關係:可以相互訪問,前提是在設定網路時,兩臺虛擬機器設定同一網路名稱。如上配置圖中,名稱為intnet。

4、Host-only Adapter(主機模式)

主機模式,這是一種比較複雜的模式,需要有比較紮實的網路基礎知識才能玩轉。可以說前面幾種模式所實現的功能,在這種模式下,通過虛擬機器及網絡卡的設定都可以被實現。

我們可以理解為Guest在主機中模擬出一張專供虛擬機器使用的網絡卡,所有虛擬機器都是連線到該網絡卡上的,我們可以通過設定這張網絡卡來實現上網及其他很多功能,比如(網絡卡共享、網絡卡橋接等)。

虛擬機器與主機的關係:預設不能相互訪問,雙方不屬於同一IP段,host-only網絡卡預設IP段為192.168.56.X 子網掩碼為255.255.255.0,後面的虛擬機器被分配到的也都是這個網段。通過網絡卡共享、網絡卡橋接等,可以實現虛擬機器於主機相互訪問。

虛擬機器與網路主機的關係:預設不能相互訪問,原因同上,通過設定,可以實現相互訪問。

虛擬機器與虛擬機器的關係:預設可以相互訪問,都是同處於一個網段。

以上關於這4種連線方式的文字解釋,基本上抄自於(轉)VirtualBox網路設定與應用詳解(圖解+文字)這篇文章,但沒有找到此文的原始出處。

關於這幾種連線方式,理解VMWare的三種網路連線模式(bridged、NAT、host-only)裡的解釋只是換了文字來表述,雖然顯得重複,但為了理解,乾脆就寫成了這兩篇Blog。

Update:我剛裝上VirtualBox的時候所有的網路連線方式都試過了,但虛擬機器和虛擬機器之間就是不能 相互訪問,Ping都Ping不通,我在想難道VirtualBox的網路設定有這麼複雜嗎,後來想到是不是Windows XP的防火牆的問題,關閉之,一切就正常了,Fuck!

參考資料:

  1. VirtualBox四種網路連線模式比較
  2. (轉)VirtualBox網路設定與應用詳解(圖解+文字

 

VMware支援三種類型的網路:NAT,Bridged,Host-only。

NAT

這種方式下,虛擬機器的網絡卡連線到宿主的 VMnet8 上。此時系統的 VMWare NAT Service 服務就充當了路由器的作用,負責將虛擬機發到 VMnet8 的包進行地址轉換之後發到實際的網路上,再將實際網路上返回的包進行地址轉換後通過 VMnet8 傳送給虛擬機器。VMWare DHCP Service 負責為虛擬機器提供 DHCP 服務。

 

 

Bridged

這種方式下,虛擬機器就像一臺真正的計算機一樣,直接連線到實際的網路上,與宿主機沒有任何聯絡。

 

Host-only

這種方式下,虛擬機器的網絡卡連線到宿主的 VMnet1 上,但系統並不為虛擬機器提供任何路由服務,因此虛擬機器只能和宿主機進行通訊,而不能連線到實際網路上。