Mysql已經提供了Docker image,可以很方便開啓一個mysql服務器。
1. Pull Mysql Image
$ docker pull mysql |
前提是已經安裝Docker,這個可以參考docker官網,步驟很詳細。
2. 創建外部數據掛載點
$ sudo mkdir -p /var/docker/mysql/data_0 $ sudo mkdir -p /var/docker/mysql/data_1 $ sudo mkdir -p /var/docker/mysql/data_2 $ sudo chmod 775 -R /var/docker/mysql/ |
除了這種方式,也可選擇使用Docker數據卷。
3. 啓動Mysql容器
$ docker run --privileged=true -p 3307:3306 --name mysql-test0 -v /var/docker/mysql/data_0/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=dev -e MYSQL_PASSWORD=dev -d mysql $ docker run --privileged=true -p 3308:3306 --name mysql-test1 -v /var/docker/mysql/data_1/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=dev -e MYSQL_PASSWORD=dev -d mysql $ docker run --privileged=true -p 3309:3306 --name mysql-test2 -v /var/docker/mysql/data_2/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=dev -e MYSQL_PASSWORD=dev -d mysql $ docker ps |
4. 在宿主機安裝並配置MyCat
wget http://219.238.7.66/files/718600000960CC62/dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz |
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz /usr/local/ |
<dataNode name="dn1" dataHost="localhost1" database="db1" /> <dataNode name="dn2" dataHost="localhost2" database="db1" /> <dataNode name="dn3" dataHost="localhost3" database="db1" /> <!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" /> <dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" /> <dataNode name="jdbc_dn2" dataHost="jdbchost" database="db2" /> <dataNode name="jdbc_dn3" dataHost="jdbchost" database="db3" /> --> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="192.168.189.181:3306" user="root" password="root"></writeHost> </dataHost> <dataHost name="localhost2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="192.168.189.181:3307" user="root" password="root"></writeHost> </dataHost> <dataHost name="localhost3" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!-- can have multi write hosts --> <writeHost host="hostM1" url="192.168.189.181:3308" user="root" password="root"></writeHost> </dataHost> |
5.創建db,創建表
create table travelrecord (id bigint not null primary key,user_id varchar(100),traveldate DATE, fee decimal,days int); |
執行插入操作,
insert into travelrecord(id,user_id,traveldate,fee,days) values(1,'Victor',20160101,100,10); insert into travelrecord(id,user_id,traveldate,fee,days) values(5000001,'Job',20160102,100,10); insert into travelrecord(id,user_id,traveldate,fee,days) values(10000001,'Slow',20160103,100,10); select * from travelrecord; |