亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

背景

試想一下這種情況,你負責(zé)的某個項目數(shù)據(jù)源有SQL Server、Oracle和MySQL,假設(shè)現(xiàn)在不讓你訪問生產(chǎn)庫,也沒有測試庫給你用,你就只有一臺開發(fā)電腦,要你做開發(fā)你怎么做?

你肯定會說,這問題還不簡單嗎?在開發(fā)電腦上安裝這些數(shù)據(jù)庫不就行了?答案是可以,但是偏題了嘛,你要在一臺電腦上同時裝SQL Server、Oracle和MySQL,能做到秒級?起碼得廢半天勁兒吧

話說n年前我也遇到過這種需求,必須得在我那破筆記本上裝個SQL Server,裝完占用硬盤10G多,用了一上午才裝完,都不用干活兒了,等就完事,卸載還可能卸載不干凈

我們的核心需求是搭建個測試環(huán)境,或者臨時用一下,就不用過多優(yōu)化,一個字,快就完事了,那么有秒級搭建的方法么?

有,下面Docker上場,docker是什么就不用過多介紹了,以前寫了很多篇文章介紹,注意,docker是全平臺支持的,但是如果是在非linux環(huán)境下,我建議先裝個Linux虛擬機,然后在虛擬機里面裝docker,這么做的原因是非Linux環(huán)境下發(fā)行的docker desktop其實也是自己內(nèi)置了一個Linux虛擬機,一個手動擋,一個自動擋的區(qū)別,我建議你用自動擋,這樣更清楚原理一些

如果你還沒有安裝docker,先裝一個吧,我以前寫過一篇全平臺安裝docker的文章【史上最全(全平臺)docker安裝方法!】,可以作為參考

  • windows:https://docs.docker.com/docker-for-windows/install/
  • mac OS:https://docs.docker.com/docker-for-mac/install/
  • Linux:https://docs.docker.com/engine/install/

在docker下搭建至少有兩個好處

  • 快速啟動
  • 資源隔離

SQLServer

dockerhub參考:
https://hub.docker.com/_/microsoft-mssql-server

這是微軟官方出品的基于Ubuntu的SQL Server docker鏡像,看下最新版鏡像大小(2021-04-30),1.49G,真香

mcr.microsoft.com/mssql/server   latest              62c72d863950        3 weeks ago         1.49GB

秒級啟動命令:

# 啟動SQL Server,如果是Docker Desktop要把單引號改成雙引號
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSword=yourStrong(!)Password' -e 'MSSQL_PID=Developer' -p 1433:1433 -d --name MSSQL_1433 mcr.microsoft.com/mssql/server

# 進入容器內(nèi)
docker exec -it MSSQL_1433 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P yourStrong(!)Password

# 創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE testDB
go

然后就可以用下面這套參數(shù)連接數(shù)據(jù)庫了

主機:127.0.0.1
端口:1433
數(shù)據(jù)庫:testDB
用戶名:sa
密碼:yourStrong(!)Password

下面是環(huán)境變量的解釋

  • ACCEPT_EULA:全稱Accept End-User Licensing Agreement,接收最終用戶許可證協(xié)議,必須得接收嘛,不然微軟不給你用
  • SA_PASSWORD:全稱System Administrator Password,系統(tǒng)管理員密碼,密碼必須是8位以上的大小寫字母和數(shù)字/特殊符號的組合。
  • MSSQL_PID:全稱Microsoft SQL Server Product Id,SQL Server的產(chǎn)品ID,默認是Developer

產(chǎn)品ID還可以是以下這些值

  • Developer : 默認值,以開發(fā)版運行
  • Express : 以學(xué)習(xí)版運行
  • Standard : 以標準版運行
  • Enterprise : 以企業(yè)版運行
  • EnterpriseCore : 以企業(yè)核心版運行

完整的環(huán)境變量可以參考此處:
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-2017

Oracle

Oracle數(shù)據(jù)庫有Express Edition(精簡版,簡稱xe)和Enterprise Edition(企業(yè)版,簡稱ee),xe版本我沒找到任何官方的鏡像,ee倒是有Oracle官方鏡像,但是要使用的話必須填下面這玩意兒,emmmm,還是算了吧,這一點也不符合我們的題意:秒級

秒級搭建各類數(shù)據(jù)庫測試環(huán)境

 

搜索大法好,找個評分高的鏡像

docker search Oracle
NAME                            STARS
oraclelinux                     756  
jaspeen/oracle-11g              172  
oracleinanutshell/oracle-xe-11g 155
wnameless/oracle-xe-11g-r2      59
absolutApps/oracle-12c-ee       48

通過搜索發(fā)現(xiàn)jaspeen/oracle-11g 和
oracleinanutshell/oracle-xe-11g評分高,前者我看過了比較繁瑣,也不符合我們的題意,那就
oracleinanutshell/oracle-xe-11g吧

dockerhub參考:
https://hub.docker.com/r/oracleinanutshell/oracle-xe-11g

看下下載的鏡像有多大,2.13G,體積還是挺大的

oracleinanutshell/oracle-xe-11g   latest              ad13c30ec346        2 years ago         2.13GB

秒級啟動命令:

# 啟動Oracle 11g xe,如果是Docker Desktop要把單引號改成雙引號
# ORACLE_ALLOW_REMOTE表示允許遠程連接
docker run -d --name ORACLE_1521 -p 1521:1521 -e 'ORACLE_ALLOW_REMOTE=true' oracleinanutshell/oracle-xe-11g

然后就可以用下面這套參數(shù)連接數(shù)據(jù)庫了

主機:127.0.0.1
端口:1521
sid:xe
用戶名:system
密碼:oracle

當然,一般而言不能用system賬號連數(shù)據(jù)庫,下面是創(chuàng)建賬號一把梭流程

-- 創(chuàng)建用戶myuser,密碼password
create user myuser identified by password; 
-- 分配表空間權(quán)限
grant create table,unlimited tablespace to myuser;
-- 分配查詢權(quán)限
grant select any table to myuser;
-- 分配增刪改權(quán)限
grant update any table,drop any table,insert any table to myuser;
-- 分配創(chuàng)建session權(quán)限(登陸)
grant create session to myuser;

MySQL

MySQL就好說多了,官方鏡像一堆一堆的,任君挑選,5.X和8.X都有

dockerhub參考:
https://hub.docker.com/_/mysql

看下下載的鏡像有多大,447M和556M,不大不小

mysql                             5.7.34              87eca374c0ed        10 days ago         447MB
mysql                             8.0.24              0627ec6901db        10 days ago         556MB

秒級啟動命令:

# 啟動MySQL 5,如果是Docker Desktop要把單引號改成雙引號
docker run --name MYSQL_3306 -p 3306:3306 -e 'MYSQL_ROOT_PASSWORD=my-secret-pw' -d mysql:5.7.34

如果需要MySQL 8.X,直接改tag就可以了

# 啟動MySQL 8,如果是Docker Desktop要把單引號改成雙引號
docker run --name MYSQL_3306 -p 3306:3306 -e 'MYSQL_ROOT_PASSWORD=my-secret-pw' -d mysql:8.0.24

然后就可以用下面這套參數(shù)連接數(shù)據(jù)庫了

主機:127.0.0.1
端口:3306
數(shù)據(jù)庫:(可為空)
用戶名:root
密碼:my-secret-pw

PostgreSQL

dockerhub參考:
https://hub.docker.com/_/postgres

秒級啟動命令:

# 啟動PostgreSQL,如果是Docker Desktop要把單引號改成雙引號
docker run --name POSTGRES_5432 -p 5432:5432 -e 'POSTGRES_PASSWORD=mysecretpassword' -d postgres

然后就可以用下面這套參數(shù)連接數(shù)據(jù)庫了

主機:127.0.0.1
端口:5432
數(shù)據(jù)庫:(可為空)
用戶名:postgres
密碼:mysecretpassword

分享到:
標簽:數(shù)據(jù)庫 測試
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定