docker 部署数据库

0. 先创建个网络后面都会用到

docker network create john-net

1. docker部署postgresql

###docker安装默认是md5认证,所以这里需要指定初始用户名密码,不然登录不了。
vim postgres.sh

#! /bin/bash

#### docker single postgresql manage shell ########

if [ ! -n "$1" ]; then
    echo "accept [start|restart|stop]"
    exit 0
fi

if [ $1 == "start" ]; then
    /usr/bin/docker run --network=john-net --restart=always -d --name docker-postgresql \
                        -v "$PWD/conf/postgresql.conf":/etc/postgresql/postgresql.conf \
                        -v "$PWD/data":/var/lib/postgresql/data \
                        -v "$PWD/logs":/var/log/postgresql \
                        -p 7003:7003 \
                        -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=admin postgres \
                        -c 'config_file=/etc/postgresql/postgresql.conf'
elif [ $1 == "restart" ]; then
    /usr/bin/docker rm -f docker-postgresql
    /usr/bin/docker run --network=john-net --restart=always -d --name docker-postgresql \
                        -v "$PWD/conf/postgresql.conf":/etc/postgresql/postgresql.conf \
                        -v "$PWD/pgdata":/var/lib/postgresql/data \
                        -v "$PWD/logs":/var/log/postgresql \
                        -p 7003:7003 \
                        -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=admin postgres \
                        -c 'config_file=/etc/postgresql/postgresql.conf'
else
    /usr/bin/docker container stop docker-postgresql
fi

#下面每一步都很关键,请认真阅读
# 提前创建好conf、data、logs目录并提供postgresql.conf配置文件
# postgres.sh和conf、data、logs在同级目录,postgresql.conf在conf下
mkdir conf data logs

#配置postgresql,配置如果跟下面不一致,postgres.sh也要做相应的调整
vim conf/postgresql.conf

data_directory = '/var/lib/postgresql/data'
listen_addresses = '*'
port = 7003
log_directory = '/var/log/postgresql'


# 启动/重启/停止postgresql
sh postgres.sh start/restart/stop
第一次启动大概率会报错(文件夹权限导致)
1. 配置文件权限太大会报错,755就OK,不要改成777
2. 日志文件夹权限太小会报错

# 修改文件权限,然后重启
chown -R user:group logs && sh postgres.sh restart
user:group 调整与data目录权限一致即可

2. docker部署mysql

vim mysql.sh

#! /bin/bash

#### docker single mysql manage shell ########

if [ ! -n "$1" ]; then
    echo "accept [start|restart|stop]"
    exit 0
fi

if [ $1 == "start" ]; then
    /usr/bin/docker run --network=john-net -p 7004:3306 \
                        -v $PWD/conf:/etc/mysql \
                        -v $PWD/data:/var/lib/mysql \
                        -v $PWD/logs:/var/log/mysql \
                        -e MYSQL_ROOT_PASSWORD=admin \
                        --privileged=true --restart=always \
                        --name docker-mysql -d mysql:5.7
    echo mysql started ...
elif [ $1 == "restart" ]; then
    /usr/bin/docker container rm -f docker-mysql
    /usr/bin/docker run --network=john-net -p 7004:3306 \
                        -v $PWD/conf:/etc/mysql \
                        -v $PWD/data:/var/lib/mysql \
                        -v $PWD/logs:/var/log/mysql \
                        -e MYSQL_ROOT_PASSWORD=admin \
                        --privileged=true --restart=always \
                        --name docker-mysql -d mysql:5.7
else
    /usr/bin/docker container stop docker-mysql
fi

#下面每一步都很关键,请认真阅读
# 提前创建好conf、data、logs目录并提供my.cnf配置文件
# mysql.sh和conf、data、logs在同级目录,my.cnf在conf下
mkdir conf data logs

#配置mysql,配置如果跟下面不一致,mysql.sh也要做相应的调整
vim conf/my.cnf

[mysqld]
datadir = /var/lib/mysql
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 3
log_output = FILE

# 也可以自定义一个配置文件(只要是.cnf结尾就可以),放到/etc/mysql/conf.d/目录
# 对应宿主机就是$PWD/conf/conf.d/目录 如$PWD/conf/conf.d/mysql.cnf
# !includedir /etc/mysql/conf.d/


# 启动/重启/停止mysql
sh mysql.sh start/restart/stop
第一次启动大概率会报错(文件夹权限导致)
1. 配置文件权限太大会报错,755就OK,不要改成777
2. 日志文件夹权限太小会报错

# 修改文件权限,然后重启
chown -R user:group logs && sh mysql.sh restart
user:group 调整与data目录权限一致即可

3. docker 部署clickhouse

# clickhouse语法:https://clickhouse.tech/docs/zh/sql-reference/syntax/
vim clickhouse.sh

#! /bin/bash

#### docker single clickhouse manage shell ########

if [ ! -n "$1" ]; then
    echo "accept [start|restart|stop]"
    exit 0
fi

if [ $1 == "start" ]; then
    /usr/bin/docker run --network=john-net -p 7005:8123 \
                        -v $PWD/conf:/etc/clickhouse-server \
                        -v $PWD/data:/var/lib/clickhouse \
                        -v $PWD/logs:/var/log/clickhouse-server \
                        --privileged=true --restart=always \
                        --name docker-clickhouse -d yandex/clickhouse-server
    echo clickhouse started ...
elif [ $1 == "restart" ]; then
    #/usr/bin/rm -i -rf $PWD/logs/* $PWD/data/*
    /usr/bin/docker container rm -f docker-clickhouse
    /usr/bin/docker run --network=john-net -p 7005:8123 \
                        -v $PWD/conf:/etc/clickhouse-server \
                        -v $PWD/data:/var/lib/clickhouse \
                        -v $PWD/logs:/var/log/clickhouse-server \
                        --privileged=true --restart=always \
                        --name docker-clickhouse -d yandex/clickhouse-server
else
    /usr/bin/docker container stop docker-clickhouse
fi


#下面每一步都很关键,请认真阅读
# 提前创建好conf、data、logs目录并提供config.xml和users.xml配置文件
# clickhouse.sh和conf、data、logs在同级目录,config.xml和users.xml在conf下
mkdir conf data logs

# 获取config.xml和users.xml
docker run --rm -d --name clickhouse yandex/clickhouse-server(新开个窗口执行)
docker cp clickhouse:/etc/clickhouse-server/config.xml conf/
docker cp clickhouse:/etc/clickhouse-server/users.xml conf/

# 默认用户default,无密码,不能创建其他用户并分配权限,这里只改默认用户配置,
# 让它能管理其他用户。其他配置默认
# 修改clickhouse默认用户
vim conf/users.xml

# 只要把前面的注释取消就可以了
<access_management>1</access_management>

# 任意客户端登录clickhouse(账号default,无密码),创建管理员账号
CREATE USER root IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'root';
GRANT ALL ON *.* WITH GRANT OPTION TO root;


# 启动/重启/停止clickhouse
sh clickhouse.sh start/restart/stop
第一次启动大概率会报错(文件夹权限导致)
1. 配置文件权限太大会报错,755就OK,不要改成777
2. 日志文件夹权限太小会报错

# 修改文件权限,然后重启
chown -R user:group logs && sh clickhouse.sh restart
user:group 调整与data目录权限一致即可

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值