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中網路連線方式:
- NAT
- Bridged Adapter
- Internal
- 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!
參考資料:
VMware支援三種類型的網路:NAT,Bridged,Host-only。
NAT
這種方式下,虛擬機器的網絡卡連線到宿主的 VMnet8 上。此時系統的 VMWare NAT Service 服務就充當了路由器的作用,負責將虛擬機發到 VMnet8 的包進行地址轉換之後發到實際的網路上,再將實際網路上返回的包進行地址轉換後通過 VMnet8 傳送給虛擬機器。VMWare DHCP Service 負責為虛擬機器提供 DHCP 服務。
Bridged
這種方式下,虛擬機器就像一臺真正的計算機一樣,直接連線到實際的網路上,與宿主機沒有任何聯絡。
Host-only
這種方式下,虛擬機器的網絡卡連線到宿主的 VMnet1 上,但系統並不為虛擬機器提供任何路由服務,因此虛擬機器只能和宿主機進行通訊,而不能連線到實際網路上。