利用docker部署mysql資料庫

來源:互聯網
上載者:User

標籤:docker   mysql   伺服器   資料庫   

前面兩篇部落格中,我們討論了如何安裝和使用docker,以及如何在docker中部署一個apache伺服器,並在外部電腦中訪問這個伺服器

下面我們來討論下如何利用docker來部署一個mysql資料庫,並在外部電腦中訪問這個資料庫:

注意:如果你對以下某些命令不瞭解,請看我的第一篇部落格


上面安裝的xampp中已經包含了mysql資料庫了,所以我就不重新安裝mysql了。

首先按照上面教程在本機電腦中安裝好xampp,並配置好.bashrc;

然後啟動剛才建立的那個鏡像ubuntu2,並將本機電腦的8080連接埠映射到容器的3306連接埠(mysql預設監聽3306連接埠):

sudo docker run –i –t –p 8080:3306 ubuntu2 /bin/bash

執行上述命令後,可進入到容器的命令列。

接著在容器命令列中輸入以下命令來啟動mysql:

/opt/lampp/lampp start
<img src="http://img.blog.csdn.net/20150529120907846?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1amFuNTExNTM2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

接著進入到mysql中

mysql –u root

查看mysql中有哪些資料庫:

show databases;

開啟本機電腦的另一個命令列終端,啟動本機電腦mysql(本機電腦也要安裝xampp)

/opt/lampp/lampp start

串連到上述容器中的mysql資料庫:

mysql  -h 0.0.0.0 –P 8080  -u root
<img src="http://img.blog.csdn.net/20150529121214120?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1amFuNTExNTM2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
(這裡可以用sudo docker ps來看下容器的連接埠映射)


參數h表示要進入哪台機器上的msyql(host),P(大寫)表示連接埠號碼。

不出意外的話,此時就可以串連上容器中mysql了;

查看有哪些資料庫:

show databases;

可比較下這次返回的結果和剛才的結果是否一樣。

接著建立一個資料庫:

create database helloworld;

回到容器命令列中,再次查看有哪些資料庫:

show databases;

此時就可以看到在本機電腦中建立的那個資料庫helloworld了。

其餘對資料庫的操作也是一樣的。

到這裡,就講完了如何在docker中部署一個mysql資料庫,並在外部電腦中訪問這個資料庫。



常見問題:

1. 出現 lost connection to mysql server的錯誤:

解決方案:

首先進入到目錄(如果你的mysql是通過xampp安裝的)/opt/lampp/etc:


cd /opt/lampp/etc

然後用vim 開啟my.cnf,找到這一行:

bind-address = 127.0.0.1

將它注釋掉,如果沒有這行則忽略。

然後找到[mysqld]部分的參數,在配置後面建立一個新行,添加下面這個參數:

skip-name-resolve
儲存並退出。

接著重啟xampp:

/opt/lampp/lampp restart

到這裡應該就解決了。

如果你的Mysql不是通過xampp安裝的,則my.cnf一般在一般只會存放在/etc/my.cnf或者/etc/mysql/my.cnf下;

對my.cnf的修改跟上面的一樣,然後重啟mysql:

/etc/init.d/mysql restart

2. Host ip is not allowed to connet to this mysql server之類的錯誤

解決方案:

進入mysql:

mysql -u root

然後對其他使用者授權:


GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;FLUSH PRIVILEGES;

到這裡應該就解決了。

如果還解決,請參考這裡:http://joinyo.iteye.com/blog/1489380




利用docker部署mysql資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.