学习谷粒商城项目的笔记:
https://download.csdn.net/download/eee3331/86263542
应该是0积分吧?
修改虚拟机ip地址
1).找到IP地址的目录
cd /etc/sysconfig/network-scripts/
1
2).修改IP地址.
vim ifcfg-ens33
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vtRgefT7-1658932440304)(…/image/image-20220710143133832.png)]
BOOTPROTP="dhcp"是自动获取ip,应该改为static取用静态地址再加上以下这几行:
IPADDR=192.168.253.10
NETMASK=255.255.255.0
GATEWAY=192.168.253.1
DNS1=8.8.8.8
3). 重启网卡 检查IP地址是否正确
service network restart
设置时间
date -s “20220710 15:35:50” &&hwclock --systohc
克隆虚拟机
Linux下安装mysql
创建文件夹路径:
mysql目录下创建 **tmp(临时文件)data(数据)、logs(日志)、config(配置)**文件夹
mkdir tmp data logs config
创建mysql用户和组,并修改文件权限
groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /home/software/mysql
chmod -R 755 /home/software/mysql
创建配置文件
在新建的config文件夹下,一共建立两个
my.ini
mysql_custom.server
my.ini
[client]
port=3306
socket=/home/software/mysql/tmp/mysql.sock
default-character-set=utf8mb4
[mysqld]
# 端口
port=3306
# 安装目录
basedir=/home/software/mysql/mysql-8.0.25-el7-x86_64
# 数据存放目录
datadir=/home/software/mysql/data
# 错误日志
log-error=/home/software/mysql/logs/error.log
# 为MySQL客户端和服务器之间的本地通讯指定一个套接字文件
socket=/home/software/mysql/tmp/mysql.sock
# 记录mysql运行的process id
pid-file=/home/software/mysql/tmp/mysql.pid
# 排序缓冲大小
sort_buffer_size=8M
# 联合查询缓冲大小
join_buffer_size=8M
# 服务端字符集
character-set-server=utf8mb4
# 创建新表时默认存储引擎
default-storage-engine=INNODB
# 允许最大连接数
max_connections=100
# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
# 只能用IP地址检查客户端的登录,不用主机名
skip_name_resolve=1
# 设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
# 记录系统时区
log_timestamps=SYSTEM
# 限制LOAD DATA, SELECT …OUTFILE命令的路径
secure_file_priv='/tmp'
把mysql解压后的文件夹命名mysql,然后在support-files下找到mysql.server,拿到其中内容
需要把基础路径从默认的user/local改成自己制定的文件路径,另外,这里data路径是在mysql解压文件的外面……
mysql_custom.server
初始化及启动
切换到bin目录下:
cd /opt/software/mysql/mysql-8.0.25-el7-x86_64/bin
初始化,完成后会在logs/error.log日志文件里生成数据库初始密码
./mysqld --defaults-file=/home/software/mysql/config/my.cnf --initialize --user=mysql --basedir=/home/software/mysql/mysql --datadir=/home/software/mysql/data --lower-case-table-names=1
添加到系统服务自动启动(如果提示是否覆盖,输入 y 确认)
cp -a /home/software/mysql/config/mysql_custom.server /etc/init.d/mysqld
授权及添加服务
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
检查服务是否生效(如果3、4、5 项为 on 则表示已经生效)
chkconfig --list
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ujgFRoS7-1658932440307)(…/image/image-20220710164836354.png)]
添加全局变量
vi /etc/profile
export PATH=$PATH:/home/software/mysql/mysql/bin
# 退出保存,使环境变量生效
source /etc/profile
MySQL启动报错:
Starting MySQL.2022-07-10T23:50:17.966266Z mysqld_safe error: log-error set to ‘/var/log/mariadb/mariadb.log’, however file don’t exists. Create writable for user ‘mysql’.
ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
最后发现,etc文件夹下也有一个my.cnf而这里面的配置正是报错的问题,干脆将内容换成我mysql下得my.cnf内容
然后启动成功!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EZd11xFo-1658932440308)(…/image/image-20220710194858675.png)]
启动MySQL服务
# 常用操作
service mysqld start
service mysqld stop
service mysqld restart
service mysqld status
# 查看MySQL服务信息
ps -ef | grep mysql
查看MySQL服务信息
ps -ef | grep mysql
初始密码会在数据库初始化后自动写入日志文件
# 查看日志文件
cat /opt/software/mysql/logs/error.log
# 登录
mysql mysql -uroot -p
修改mysql密码
修改密码
alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘123456’;
立即生效
flush privileges;
设置远程连接
use mysql;
update user set host=’%’ where user=‘root’;
flush privileges;
远程连接数据库
数据库报错,10060,防火墙没关!
查看防火墙状态
firewall-cmd --state
永久关闭开启启动防火墙
systemctl disable firewalld.service
关闭防火墙
systemctl stop firewalld.service
Linux安装jdk
删除自带jdk
java -version
rpm -qa | grep java
rpm -e --nodeps 要卸载的包(包通过rpm -qa | grep java获取))
修改环境变量
vi /etc/profile
在文件profile的最后一行加上,注意:JAVA_HOME=对应的是自己的jdk存放路径,编辑后保存并退出
export JAVA_HOME=/usr/local/jdk1.8.0_11
export JRE_HOME=
J
A
V
A
H
O
M
E
/
j
r
e
e
x
p
o
r
t
C
L
A
S
S
P
A
T
H
=
.
:
{JAVA_HOME}/jre export CLASSPATH=.:
JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/lib:
J
R
E
H
O
M
E
/
l
i
b
:
{JRE_HOME}/lib:
JREHOME/lib:CLASSPATH
export JAVA_PATH=
J
A
V
A
H
O
M
E
/
b
i
n
:
{JAVA_HOME}/bin:
JAVAHOME/bin:{JRE_HOME}/bin
export PATH=
P
A
T
H
:
PATH:
PATH:{JAVA_PATH}
刷新配置文件
source /etc/profile
提示java和javac权限不够,需要加权限:
chmod +x /home/software/java/jdk11/bin/java
java -version
chmod +x /home/software/java/jdk11/bin/javac
javac -version
OK!
安装docker
sudo yum update
更新系统的yum
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JQed66Ol-1658932440310)(…/image/image-20220718204356787.png)]
整个过程很漫长,这次花了十分钟。
上docker官网查看安装教程
https://docs.docker.com/engine/install/centos/
具体操作参考官网,很详细。
首先卸载旧版docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
如果之前装过就会显示卸载进度,没装过自然显示没有可卸载的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZNwivMp1-1658932440312)(…/image/image-20220718204705370.png)]
开始安装必要依赖
#yum的工具
sudo yum install -y yum-utils
//给出docker的下载地址
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jynTrrmy-1658932440314)(…/image/image-20220718204915293.png)]
下载安装docker
具体操作参考官网
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
所有提示输入y就行了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4nuX314p-1658932440315)(…/image/image-20220718205139784.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9a5p6yWB-1658932440317)(…/image/image-20220718205342343.png)]
安装成功的模样 当然版本不一样也许会有不一样。
指定版本的安装方式
在安装成功的下方,官方提供了如何选择自己想要的版本的安装方式,可以先列出docker版本号,再根据对应版本号选择安装。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HTNDLs5j-1658932440323)(…/image/image-20220718205555586.png)]
看不懂英文那就上翻译:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fH7eRI2P-1658932440327)(…/image/image-20220718205719411.png)]
就是这样。
yum list docker-ce --showduplicates | sort -r
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io docker-compose-plugin
具体操作参考官网
启动docker
sudo systemctl start docker
运行验证镜像
sudo docker run hello-world
本地没有这个测试镜像它会自动去拉一个并运行:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bagUNZDC-1658932440328)(…/image/image-20220718210141440.png)]
显示docker当前版本
docker -v
查看docker当前下载的镜像
docker image
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XwzzgdNY-1658932440330)(…/image/image-20220718211000254.png)]
这里就显示了刚刚下载的 hello world 的测试镜像
设置docker开机自启动
systemctl enable docker
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lDuwdCdx-1658932440332)(…/image/image-20220718211220919.png)]
配置阿里云镜像加速docker
要先登录阿里云注册申请一个 个人容器镜像仓库
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["地址"] } EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3fbSD1eB-1658932440333)(…/image/image-20220718234850382.png)]
docker安装mysql
docker hub网站里直接搜索mysql进去
右侧就能看见这个命令,照着这个下载,默认是最新版mysql安装
tag下能选择指定版本:
docker pull mysql:版本号
查看docker镜像
sudo docker images
docker运行mysql容器
首先需要关闭虚拟机本身的mysql服务,不然会提示3306端口被占用。
运行失败的话,需要先停止mysql容器、删除mysql容器、再重新创建运行。
docker常用命令:
https://blog.csdn.net/leilei1366615/article/details/106267225?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165816039316781818759161%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165816039316781818759161&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~hot_rank-2-106267225-null-null.185^v2^control&utm_term=docker%E5%81%9C%E6%AD%A2mysql&spm=1018.2226.3001.4450
docker run \
--name mysql \
-d \
-p 3306:3306 \
--restart unless-stopped \
-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 \
mysql:latest
启动后发现一个问题:
主机使用Navicat链接不上192.168.253.10,按理说应该被映射到了master的3306端口了。
使用
docker ps
port 一栏为空的!
原因:
我们还没有配置mysql所需的文件:my.cnf
先转到 最开始创建容器时创建的文件夹下: /mydata/mysql/conf
[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
然后重启容器:
依旧不行!!!
原本是根据 尚硅谷谷粒商城项目的教程视频装的 ,最后同事介绍以上只适用5.7版本。
三个路径都是宿主机中映射的文件路径,对应冒号后面容器内的路径。这个可以根据自己需要修改
MySQL8.0版本启动如下:
停止运行、删除容器
docker run
-p 3306:3306
–name mysql
-v /mydata/mysql/conf:/etc/mysql/conf.d
-v /mydata/mysql/logs:/logs
-v /mydata/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=root
-d mysql:latest
进入容器
docker exec -it mysql bin/bash
进入名为mysql的容器,相当于进入了一个名为mysql的虚拟机
然后用
mysql -uroot -p
登录mysql
exit退出mysql命令行
再次exit退出mysql容器回到宿主机
主机使用Navicat链接:
docker update mysql --restart=always
设置docker中mysql开机自启动
关闭centos7下的MySQL自启动:
由于要使用docker中的mysql,3306端口要交于容器映射,那么原宿主机的MySQL也没必要启动了。
查看MySQL服务的自启动状态
systemctl list-unit-files | grep 'mysql'
关闭MySQL开机自启动服务
systemctl disable mysqld
开启MySQL服务自启动
systemctl enable mysqld
虚拟机开机后,docker中MySQL容器不会消失,只是停止了。
无需再用带有端口映射等的创建运行命令去启动MySQL,只需
docker start mysql
docker安装Redis
直接拉取最新版本的Redis
docker pull redis
创建Redis配置文件
启动前需要先创建Redis外部挂载的配置文件 ( /docker/redis/conf/redis.conf )
之所以要先创建 , 是因为Redis本身容器只存在 /etc/redis 目录 , 本身就不创建 redis.conf 文件
当服务器和容器都不存在 redis.conf 文件时, 执行启动命令的时候 docker 会将 redis.conf 作为目录创建
先创建配置文件:
## 创建目录
mkdir -p /mydata/redis/conf
## 创建文件
touch /mydata/redis/conf/redis.conf
docker run \
-p 6379:6379 \
--name redis \
--restart unless-stopped \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis:latest redis-server /etc/redis/redis.conf \
直接进入redis控制台:
docker exec -it redis redis-cli
根据视频,restart重启容器数据会丢失,配置Redis持久化
在 conf文件夹下的redis.conf 里写上:
appendonly yes
网上下一个 redis desktop management 直接输ip、端口链接:
因为typora做的笔记截图都是保存在相对路径了,笔记太长了……
这篇,具体的就放到资源里下载看吧……
https://download.csdn.net/download/eee3331/86263542