分布式基础——谷粒商城【一章节】

前期配置:虚拟机
安装VirtyalBox 管理器
vagrant安装centos7的虚拟机可以使用镜像
科大镜像:https://docker.mirrors.ustc.edu.cn/
网易:https://hub-mirror.c.163.com/
阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors登录后


# 中科大的镜像
vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box


# 启动
vagrant up

1 环境搭建

1.1 安装docker

Docker安装文档:https://docs.docker.com/install/linux/docker-ce/centos/
分布式基础——谷粒商城【一章节】_第1张图片

1、卸载系统之前docker的旧版本,没有安装过可以跳过这步进行下一步
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2  设置存储库--这里使用的是aliyun镜像,下载更快
sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3  安装DOCKER引擎
sudo yum install docker-ce docker-ce-cli containerd.io

4  启动Docker.
sudo systemctl start docker

5 配置镜像加速(一步一步执行)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://4mzul3fc.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

6 设置docker开机自启动 
sudo systemctl enable docker
7 查看Docker虚拟机上下载有什么镜像 
sudo docker images

分布式基础——谷粒商城【一章节】_第2张图片

1.2 安装mysql

1 拉去mysql镜像(版本号自定义)
sudo docker pull mysql:8.0


2 启动mysql容器  并添加映射
sudo docker run -p 3306:3306 --name指定容器名字
 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行

sudo docker run -p 3306:3306 --name mysql \
  -v /mydata/mysql/log:/var/log/mysql \
  -v /mydata/mysql/data:/var/lib/mysql \
  -v /mydata/mysql/conf:/etc/mysql \
  -e MYSQL_ROOT_PASSWORD=root \
  -d mysql:8.0


3 切换root权限
su - root


4 进入mysql容器
docker exec -it 容器名称|容器id bin/bash

docker exec -it mysql /bin/bash

无法启动可以查看mysql日志:
docker logs mysql

报错误--secure-file-priv
原因:MYSQL新特性secure_file_priv,对读写文件的限制,没有权限,secure-file-priv参数是用来限制LOAD DATA, SELECT … OUTFILE, and LOAD_FILE()传到哪个指定目录的。

修改 my.cnf 文件,在 [mysqld] 块下,如果没有 secure_file_priv 则新增
指定目录:secure_file_priv=/path/to/data
不限目录:secure_file_priv=
禁止操作:secure_file_priv=NULL


5 修改mysql默认配置my.cnf
vi /mydata/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
################以上是配置信息#################


#获取初始密码
grep "password" /var/log/mysqld.log
#登录数据库
mysql -u root -p'你的密码'


#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
#设置密码永不过期
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; 
#刷新系统权限表
flush privileges;

  • 设置云服务外部权限访问
首先用下面的命令先进入mysql这个数据库
use mysql


如果是允许任何ip访问你的mysql,就用下面的命令(一般云服务器访问mysql使用这条命令)
grant all privileges on *.* to root@"%" identified by "你的密码";


如果是在自己电脑上的虚拟机的话允许本地访问,就用这条命令
grant all privileges on *.* to root@"localhost" identified by "你的密码";


完成之后一定一定记得刷新权限表
flush privileges;


#接着查询数据库用户的相关信息
select user,host from user;

1.3 安装redis

1 在docker hub搜索redis镜像
sudo docker search redis

2 拉取redis镜像到本地--不填写版本号,默认最新版
sudo docker pull redis:6.0.10

3 创建redis目录,并且在目录下touch redis.conf
mkdir -p /mydata/redis/conf
cd上面的目录下touch redis.conf

4 启动redis容器  并根据上面的目录添加映射(默认启动mydata/redis/data:/data \的配置文件,这里可以进行配置redis)

docker run -p 6379:6379 --name redis -v $mydata/redis/data:/data \
  -v $mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
  -d redis redis-server /etc/redis/redis.conf

5  直接进去redis客户端。(直接启用redis是没有持久化的,等一些配置都是默认的)
docker exec -it redis redis-cli


设置redis密码:
config set requirepass 密码;


6 想要Redis持久化,需要修改配置文件。创建并修改/usr/local/redis/redis.conf
在redis.conf中,输入修改一下代码,实现持久化 开启aof持久化
appendonly yes
以及bind 0.0.0.0 开启远程权限
修改完之后使用docker restart redis 进行重启Redis

redis可视化官方软件(MacOS付费)RedisDesktopManager
MacOS可以使用AnotherRedisDesktopManager代替
GitHub 地址(开源):
https://github.com/qishibo/AnotherRedisDesktopManager

1.4 Maven配置

conf/setting.xml下配置




	<mirror>
		<id>nexus-aliyunid>
		<mirrorOf>centralmirrorOf>
		<name>Nexus aliyunname>
		<url>

你可能感兴趣的:(Java,Spring,分布式)