一. Mysql
1.安装镜像
docker pull mysql:5.7
m y s q l : 后 面 加 的 是 版 本 号 , 不 加 版 本 号 , 默 认 l a s t \color{red}{mysql:后面加的是版本号,不加版本号,默认last} mysql:后面加的是版本号,不加版本号,默认last
2. 添加配置文件
mkdir -p /usr/local/docker/mysql/log
mkdir -p /usr/local/docker/mysql/data
mkdir -p /usr/local/docker/mysql/conf
vi /usr/local/docker/mysql/conf/my.cnf
添加以下内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
3.启动容器
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/log:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root123456 \
-d mysql:5.7
-v是挂载命令 相当于把本地文件挂载到docker容器的文件-e是设置默认参数
-d是选择docker镜像
执行完成之后,docker ps
查看是否启动成功
4. 检查配置文件是否存在容器内部
(1). 进入mysql镜像
docker exec -it mysql /bin/bash
(2). 查看配置文件是否存在
二. Redis
1. 安装redis镜像
docker pull redis
2.启动redis容器
(1). 创建redis 配置文件
# 创建文件夹
mkdir -p /usr/local/redis/conf
# 创建配置文件
touch /usr/local/redis/conf/redis.conf
# 修改配置文件
vi /usr/local/redis/conf/redis.conf
- 配置文件:开启rredis持久化
appendonly yes
(2). 启动redis
命令:
docker run -p 6379:6379 --name redis \
-v /usr/local/redis/data:/data \
-v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
验证启动成功:
dockey ps
进入 redis控制台:
docker exec -it redis redis-cli
三. 设置自动启动
mysql:
docker update mysql --restart=always
redis:
docker update redis --restart=always
四. Mysql安全设置
本来这篇文章完结了的,然后今天发生了一点小意外,数据库被黑了 .==.! 库还在 表没了 只剩下一张被勒索的库
看图
详细信息:
To recover your lost Database and avoid leaking it: Send us 0.04 Bitcoin (BTC) to our Bitcoin address 1BxG7gDdeXmSDHqWPqHUSTRYg4hZWh6ngN and contact us by Email with your Server IP or Domain name and a Proof of Payment. If you are unsure if we have your data, contact us and we will send you a proof. Your Database is downloaded and backed up on our servers. Backups that we have right now: gulimall_admin, gulimall_oms, gulimall_pms, gulimall_sms, gulimall_ums, gulimall_wms. If we dont receive your payment in the next 10 Days, we will make your database public or use them otherwise.
翻译后:
额·········手动滑稽==
感觉尊严收到了践踏=================
接下来就是 前往服务器 进入mysql 镜像,进入数据库
查看user表的信息
看到的出来,这条信息是真正的罪魁祸首
直接删除
delete from user where user='root' and host='%';
删除后
接下来指定ip可以进入mysql
命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'指定的ip' IDENTIFIED BY '设置密码' WITH GRANT OPTION;
最后刷新一下:
flush privileges;