10
我已經在這個主題上搜索了一下,發現了很少的線程。基於這些線程,我遵循以下步驟。但我面臨一個問題。如何連接到主機上的Docker上運行的MySQL
基本上,我想爲mysql創建一個docker鏡像,然後從我的主機(Mac OS X)連接到它。
根據this後,我必須與主機共享mysql unix套接字。對這個我也做了以下步驟
1. Start docker quick terminal
2. docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -d mysql/mysql-server:latest
3. docker exec -it mysql bash
4. mysql -uroot -p
5. create database MyDB;
6. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
7. exit;
8. mkdir /Users/abhi/host
9. docker run -it -v /host:/shared mysql/mysql-server:latest
現在我得到的錯誤
MacBook-Pro:~$ docker run -it -v /Users/abhi/host:/shared mysql/mysql-server
error: database is uninitialized and password option is not specified
You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
但是你看,我已經提供的密碼和初始化我的數據庫。
我只想從我的主機上連接到docker中運行的mysql數據庫。
編輯:: -----解決方案的工作-------
謝謝RICO。最後,它爲我工作的步驟是
1. Start docker quick terminal
2. docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql/mysql-server:latest
3. docker exec -it mysql bash
4. mysql -uroot -p
5. create database MyDB;
6. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
7. exit;
8. docker-machine env default
使用中獲得的IP地址8端口爲3306,用戶是root,密碼是password,數據庫MYDB。
連接成功!
這對我沒有工作。我運行了它創建圖像和容器的第一個命令。但是當我嘗試使用dbvisualizer從我的主機連接到mysql時。它說「通信失敗」。我的主機是一臺mac機器,沒有運行mysql。所以我需要使用dbvisualizer連接到在Docker容器中運行的mysql。 –
@KnowsNotMuch這是因爲您在碼頭機器上使用MacOS。 Docker不能在MacOS上本地運行,請檢查我編輯的問題。 – Rico