1:docker 安装mongo数据库并使用
官网:https://www.mongodb.com/docs/manual/
mongo shell教程1:http://c.biancheng.net/mongodb2/connection.html
安装1 :https://www.zhihu.com/question/54602953/answer/3047452434?utm_id=0
安装2:https://www.duidaima.com/Group/Topic/ArchitecturedDesign/9182
使用驱动进行java开发:https://mongodb.github.io/mongo-java-driver
https://www.mongodb.com/docs/drivers/java/sync/v4.5/fundamentals/connection/
2:docker 安装oracle数据库并使用
3:docker 安装达梦数据库并使用
安装:https://zhuanlan.zhihu.com/p/615526878
连接:可以使用dbeaver连接dm,不用专门下载dm的管理工具
4:docker 安装hbase数据库并使用
安装:http://m.hangge.com/news/cache/detail_3354.html#google_vignette
必须在容器所在宿主机的/etc/hosts配置文件中加入配置。否则用程序连接hbase会报:java.net.UnknownHostException: 不知道这样的主机。 (e64682f1b276)
解决:
1:排查防火墙问题
2:在容器所在宿主机的/etc/hosts配置文件中加入配置
hbase部署服务器ip docker hbase的容器id
完毕后重启程序
5:docker 安装神通数据库并使用
官网:http://shentongdata.cn/index.php/download/list-27
安装:https://blog.csdn.net/weixin_46603727/article/details/131300046
百度网盘链接:https://pan.baidu.com/s/1-W_tuGk4waewNhr6C8Z00g
提取码:9572
非docker安装:https://blog.csdn.net/KeyarchOS/article/details/132186565
6:docker 安装mysql8数据库并使用
本次版本选择mysql:8.0.21,mysql5.x版本会有各种不稳定问题。部署java程序时需要选择合适的JDK8以上版本
6.1:部署
1、拉取镜像:docker pull mysql:8.0.21
2、创建容器并启动
物理机挂载的目录需提前完成创建mkdir -p
-e LANG=C.UTF-8 指定mysql容器默认的编码格式,默认的编码格式会导致进入容器周中文无法复制粘贴的问题。同时和springboot使用中会出现即使设置了编码为utf-8但仍然乱码的现象。
docker run -it -d --name mysql8x \
--privileged=true \
--restart always \
-p 3306:3306 \
-v /opt/mount/mysql8/log:/var/log/mysql \
-v /opt/mount/mysql8/data:/var/lib/mysql \
-v /opt/mount/mysql8/config:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root123 \
-e TZ=Asia/Shanghai mysql:8.0.21 \
-e LANG=C.UTF-8 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
1. -v挂载
-v挂载容器目录到物理机;
2. -e运行参数
-e 设置运行参数默认root账号密码为root123,时区为上海
3. 其他参数
-e LANG="C.UTF-8"指定容器默认的编码格式,不然会出现中文无法复制粘贴的问题。
后面两个参数为设置数据库默认字符集和排序字符集。用于支持汉语,避免客户端汉字乱码。
3、进入mysql容器
docker exec -it mysql8x bash
4、登录mysql需要输入root密码root123
mysql -uroot -p
5、授权远程登录:执行后可navicat连接,一般是授权给新建的用户
ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘root123’;
flush privileges;
6、新建用户
新建用户admin,密码admin@123
CREATE USER ‘admin’@‘%’ IDENTIFIED BY ‘admin@123’;
授权admin用户所有数据库权限
GRANT ALL ON . TO ‘admin’@‘%’ WITH GRANT OPTION;
授予新用户远程登录权限
ALTER USER ‘admin’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘admin@123’;
7、修改dns避免一直扫描:IP address ‘xxxx‘ could not be resolved: Name or service not known
进入/etc/mysql 找到mysql的配置文件my.cnf(linux环境下)或者my.ini(windows环境下)进行编辑加入如下一行即可:
[mysqld]
skip-name-resolve
8、更改加密方式,避免远程navicat连接加密失败(若第5步执行后无法连接时再执行此)
如果用Navicat连接的回报不支持caching_sha2_password验证方式的错误。
ALTER USER ‘root’@‘%’ IDENTIFIED BY ‘root123’ PASSWORD EXPIRE NEVER;
9、root密码永不过期修改
alter user ‘root’@‘localhost’ password expire never;
10、刷新数据库,前面所有的修改只有刷新后才生效
FLUSH PRIVILEGES;
6.2数据库定时备份
#!/bin/bash
#保存备份个数,备份10天数据
number=10
#备份保存路径
backup_dir=/opt/mount/mysql8/backup
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
#备份工具
tool=mysqldump
#mysql容器名
name=mysql8
#用户名
username=root
#密码
password=root123
#将要备份的数据库,为所有的数据库,也可以指定具体的数据库名称,多个用空格隔开即可
database_name=--all-databases
#2、如果备份文件夹不存在则创建
if [ ! -d $backup_dir ];
then
mkdir -p $backup_dir;
fi
#简单写法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
#$tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql
sudo docker exec ${name} sh -c 'exec mysqldump $database_name -u$username -p$password ' > $backup_dir/$database_name-$dd.sql
#3、写创建备份日志
echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt
#4、备份文件的删除处理,找出需要删除的备份
delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1`
#判断现在的备份数量是否大于$number
count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`
if [ $count -gt $number ]
then
#删除最早生成的备份,只保留number数量的备份
rm $delfile
#写删除文件日志
echo "delete $delfile" >> $backup_dir/log.txt
fi
#5、crontab -e中添加定时任务:复制下行到crontab
#0 2 * * * /opt/mount/mysql8/backup.sh >> /opt/mount/mysql8/backup/backup_`date +\%F`.log
6.3问题及使用
7:docker 安装clickhouse数据库并使用
8:docker 安装sqlserver数据库并使用
问题1:Navicat连接SQLServer提示:未发现数据源名并且未指定默认驱动程序
解决https://blog.51cto.com/BADAOLIUMANGQZ/6116684
9:docker安装redis
1、创建挂载目录
mkdir -p /opt/mount/redis
mkdir [conf,log,data]
创建日志文件并赋权
cd /opt/mount/redis/log
touch data/redis.log
chmod 777 data/redis.log
2、拉取镜像docker pull redis:6.0.6
3、获取redis.conf配置文件。docker默认是没有的,需要自己从官网下载同版本的配置文件。
修改其中的属性
#数据持久化的配置
appendonly yes
#日志文件配置,默认是空的
logfile “/data/redis.log”
#注释掉,允许其他ip访问
#bind 127.0.0.1
4、创建并启动容器
–requirepass “adsafas” 为redis设置密码。
–restart=always 保证重启
–privileged=true 给redis相关的操作权限文章来源:https://www.toymoban.com/news/detail-695783.html
-v 挂载相关的数据配置日志目录
不设置密码在云服务器上非常容易被网络攻击。攻击后会导致redis数据库中数据被清空等现象。文章来源地址https://www.toymoban.com/news/detail-695783.html
docker run --name redis -p 6379:6379 \
--restart=always \
-v /opt/mount/redis/data/redis:/data \
-v /opt/mount/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /etc/localtime:/etc/localtime \
-v /opt/mount/redis/log/redis.log:/data/redis.log --privileged=true -d redis:latest \
redis-server /etc/redis/redis.conf --requirepass "adsafas"
到了这里,关于docker安装mysql、clickhouse、oracle等各种数据库汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!