SpringBoot
内容管理
- Git 管理tool
- Git安装
- Git常用命令
- git config 配置Git相关参数【全局、仓库、系统】
- git clone 《远程仓库》 《本地目录》 从远程仓库克隆一个版本库到本地
- git init 初始化项目所在目录,生成本地参控股
- git status 查看本地仓库状态【修改的文件】
- git remote 操作本地仓库对应的远程仓库【增加、查看、删除、修改】
- git branch 操作Git分支【CRUD】
- git checkout ( 创建)切换分支
- git cherry-pik 《commit ID》 已经提交记录合并到当前分支
- git add 提交文件到暂存区
- git commit 暂存区的文件提交到本地仓库
- git fetch 将远程仓库获取最新版本拉取到本地
- git merge 《分支名称》 指定分支合并到当前分支
- git diff 比较版本差异
- git pull 拉取远程最新版本到本地
- git push 将本地仓库的commit推送到远程仓库
- git log 显示提交记录
- git reset 还原提交记录【版本回退】
- git revert 《commit ID》 生成一个新的提交撤销某次提交
- git tag 操作标签
- git mv 《源文件》 《目标文件》 重命名文件
- git rm 删除文件或者文件夹
- Git快速实践 -- 提交本地代码到Remote仓库
- CentOS7搭建java环境
- CentOS7搭建MySQL8环境
Linux–Docker,服务器搭建java和mysql环境,systemctl管理服务,详解Git
之前分享了docker技术和项目的发布部署,使用docker部署无疑是非常方便的,不用再担心环境的问题,因为只要提供内核,上面一整套环境都是容器设置好的,并且可以通过仓库push/pull的方式和save/load的方式快捷分享;这里会花费一点内容解释Git,毕竟和docker相似,并且之前对该技术只是简单使用没有记录springboot使用全流程包括使用docker发布【或者单纯部署到服务器】前面的博客已经提过
纯技术的东西就在其他专栏分享了,最近会分享JUC等多线程高并发问题~,本专栏接下来就是项目的经验和一些零碎的knowledge
Git 管理tool
Git就是一个分布式的版本控制系统,是一个多人协作工具。基于快照,离线操作【没有中央库】,分支合并,即时灵活
Git有四个工作区域
Workspace
: 工作区, 也就是存放项目代码的位置,比如Cfeng的chat项目的D:\softVm\xiaohuanChat 这也是IDEA中引入位置Index/stage
: 暂存区: 用于临时存放改动信息,事实上就是一个文件,保存即将提交的文件列表信息Repository
: 本地仓库区【版本库】, 安全存放数据的位置,有commit的所有的本本的数据,HEAD指向最新的版本Remote
: 远程仓库,托管代码的服务器,用于远程数据交换
一般工作流程:
从远程仓库克隆Git资源作为本地仓库; 从本地仓库checkout代码之后代码修改,提交前先将代码提交到暂存区index,之后提交修改到本地仓库reposiroty,本地仓库保存修改的各个历史版本,修改完成需要共享,push到远程仓库 【push和pull和docker一样】
Git安装
git有各种系统的版本,docker一般选择Linux版本,git 这里就选择windows版本,下载地址: Git - Downloads (git-scm.com)
下载完成之后直接点击该.exe安装程序,一路next,选择一个合适的位置存放,选择components时候选择Windows Exploer intergration(Bash,GUI)不需要Additional icons,一路next,选择Use Bash(不需要windows命令行),一路next,安装完成🍅
最后可以使用git config --global命令加入全局参数标识user.email和name
git config --global user.email 'zjn3373163.com' //欢迎私信
git config --global user.name 'Cfeng'
Git常用命令
git config 配置Git相关参数【全局、仓库、系统】
仓库级: 在仓库的.get/.gitconfig,该配置文件只对所在的仓库有效
全局配置: C盘的.gitconfig下面,一般设置本地的name和email
系统配置: 在Git的安装目录下的gitconfig
//查看配置信息
-local --global --system
查看生效的配置
git config -l
编辑配置文件
git config 《选择 --global》 -e //下面都使用《》代表选择配置文件
增加配置项,获取配置项,删除
git config 《》 --add/--get/--unset 配置name
配置提交记录的客户识别信息
git config --global user.name XXX / user.email XXX
配置Git缓存区大小,缓存密码,缓存时间,长期存储密码 【global的httpBuffer和credential.helper配置项】
git config --global http.postBuffer 大小
git config --global credential.helper cache
git config --global credential.helper 'cache --timeout=时间'
git config --global credential.helper store
git clone 《远程仓库》 《本地目录》 从远程仓库克隆一个版本库到本地
默认是在当前目录创建和版本库名相同的文件夹下载
git clone 《远程仓库地址》
指定本地仓库目录
git clone 《远程仓库》 《本地目录》
-b【branch】指定要克隆的分支,默认master
git clone 《远程仓库》 -b 《分支名称》 《本地目录》
git init 初始化项目所在目录,生成本地参控股
初始化后会出现一个.git目录
git status 查看本地仓库状态【修改的文件】
-s : 以简短模式查看状态
显示两列: 一列文件状态,一列文件
git status -s
git remote 操作本地仓库对应的远程仓库【增加、查看、删除、修改】
查看当前本地仓库连接的远程仓库
git remote
git remote -v
git remote --verbose 列出详细信息,URL地址
为本地版本库添加远程仓库 《远程仓库别名》 《远程仓库URL别名》 git remote add orgin git@gitee.com:zhang-junning-huan/xiaohuanChat.git 这里就是创建了本地版本库的远程仓库,为URL创建别名origin
git remote add 《远程仓库别名》 《远程仓库地址》
git remote rename 《原远程仓库别名》 《新的别名》
删除远程仓库
git remote remove 《远程仓库别名》
修改远程仓库的URL
git remote set-url 《远程仓库别名》 《新的远程仓库URL地址》
git branch 操作Git分支【CRUD】
Git的一个重要操作就是分支合并保证工程的效率
列出所有的分支[Cfeng这里就创建仓库时只有master分支]
git branch
git branch -v 显示详细,会显示最后一次提交【该分支】
创建分支,新分支基于上一次的提交建立
git branch 《分支名称》
修改分支名称,不指定原名称默认当前分支[m修改, M强制修改]
git branch -m [原分支名称] 《新分支名称》
git branch -M [原分支名称] 《新分支名称》
删除分支 d删除 D强制删除
git branch -d 《分支名称》
git branch -D 《分支名称》
git checkout ( 创建)切换分支
主要用于切换分支,如果加上-d,–orphan则会创建分支再切换
切换到已经存在的分支
git checkout 《分支》
创建并切换到指定分支, -d会创建并保留提交记录,--orphan会创建删除
git checkout -b《分支名称》
git checkout --orphan 《分支名称》
替换本地改动新增的文件和已经到暂存区index的不受影响
git checkout 《文件路径》
git cherry-pik 《commit ID》 已经提交记录合并到当前分支
该命令相当于将某个提交push到当前分支进行合并
git add 提交文件到暂存区
将文件改动由工作区提交到暂存区
将指定文件添加到暂存区
git add 《文件路径》
添加所有修改、已经删除的文件到暂存区
git add -u 《文件路径》 / --update
添加所有的修改,删除,新增 到暂存区
git add .
git add -A 《文件路径》 / --all
查看所有修改、已删除,但是没有提交【暂存区】 进入子命令系统
git add -i 《文件路径》 / --interactive
git commit 暂存区的文件提交到本地仓库
将文件由暂存区提交都本地仓库
提交到本地仓库,会调编辑器来书写本次commit信息
git commit
提交并添加描述
git commit -m "描述"
把所有的修改删除文件体提交,,不包括不被版本库跟踪的文件
git commit -a -m "描述"
修改上次提交的描述信息
git commit --amend
git fetch 将远程仓库获取最新版本拉取到本地
git fetch和git pull类似
拉取远程仓库所有的分支最新版本到本地
git fetch 《远程仓库别名》
指定分支
git fetch 《远程仓库别名》 《分支》
git merge 《分支名称》 指定分支合并到当前分支
可以将指定分支内容合并到当前分支,比如微服务不同的微服务在不同的分支,最终merge为一个完整的项目
git diff 比较版本差异
比较当前文件和暂存区的差异,显示没有暂存的更改
git diff
可以比较暂存区文件和上次提交的差异 --cached和--staged
git diff --cached
git diff --staged
比较当前文件和上次提交差异
git diff HEAD
查看从指定版本后的改动,比较差异
git diff 《commit ID》
git pull 拉取远程最新版本到本地
git pull 类似git fetch;可以当作git fetch的功能使用
从远程仓库拉取最新版本并且合并所有分支后到本地相当于git fetch和git merge
git pull
拉取远程仓库指定分支的最新版本到本地,和git fetch功能相同
git pull 《远程仓库别名》 《分支》 eg: git pull origin master
git push 将本地仓库的commit推送到远程仓库
推送的时候可以指定远程仓库的别名和远程仓库的分支 【可以多个远程仓库】【多个分支】
git push 《远程仓库别名》 《分支》 git push origin master 推送到origin仓库的master分支
删除指定的远程仓库分支
git push 《远程仓库别名》:《分支》
git push 《远程仓库别名》 --delete 《分支》
git log 显示提交记录
可以使用该命令显示所有的提交
打印所有的提交
git log
打印从第一次到指定ID的提交
git log <Commit ID》
打印指定数量的最新的记录
git log 数量
git reset 还原提交记录【版本回退】
还原提交记录,版本回退
重置暂存区,文件不受影响,不指定默认当前ID
git reset 《文件路径》
将HEAD的指向改变,撤销到指定的提交记录,文件不受影响
git reset <Commit ID》
将HEAD指向改变,撤销到指定的文件记录, 文件也修改
git reset --hard 《commit ID》
git revert 《commit ID》 生成一个新的提交撤销某次提交
此前提交之前的所有提交都会保留
git tag 操作标签
显示所有的标签
git tag
添加标签 ,可以指定之前的提交记录
git tag 《标签名称》[提交ID]
切换到指定标签
git checkout 《标签名称》
删除 -d , 查看show 提交标签push 所有的-tags
git show《标签名称》
git tag -d 《标签名称》
git push 《远程仓库别名》 《标签名称》
git push 《远程仓库别名》 -tags
git mv 《源文件》 《目标文件》 重命名文件
重命名指定文件或者文件夹
git rm 删除文件或者文件夹
移除跟踪指定文件,从本地仓库文件夹删除
git rm 《文件路径》
git rm -r 《文件路径》 删除
git rm --cached 在本地仓库中保留该文件
Git快速实践 – 提交本地代码到Remote仓库
代码的流向: work space —> index --> repository --> remote
首先初始化项目所在目录作为本地仓库
git init
建立本地仓库的远程仓库,一般建立的别名都是origin,简单项目只有master分支
git remote add origin master
查看当前工作区的修改目录
git status
将所有的修改目录提交到暂存区
git add .
将修改从暂存区提交到本地的仓库
git commit -m "message"
如果是第一次提交,先拉取remote的master分支最新的版本到本地【fetch】,pull更好
git pull origin master
将所有的修改从本地仓库提交到remote仓库
git push origin master 【提交到master分支】
---------------------------版本管理,回退版本------------------------------
首先可以通过查看提交日志
git log
还可以git reflog查看
之后选择CommitID回退
git reset --hard 'CommitID'
---------------------------分支控制--------------------------
项目分为不同的branch,最后需要合并
git merge 分支 将分支合并到当前分支
CentOS7搭建java环境
这个主要涉及的部分就是项目的打包部署到服务器,如果发行版使用的Centos7,里面是自带不完整的jdk的,不管是基于Docker部署,还是直接在服务器上运行,都需要灵活掌握环境搭建的技术,这里就以java为例review一次
- 首先需要查看系统是否自带openjdk,如果有,则卸载
[root@localhost ~]# java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
说明自带了jdk,需要卸载这个不完整的jdk
之后查找相关的文件并且删除:rpm -qa|grep java rpm -e nodeps XXX
pcsc-lite-libs-1.8.8-8.el7.x86_64
[root@localhost ~]# clear
[root@localhost ~]# rpm -qa|grep java
java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2020a-1.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
[root@localhost ~]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
[root@localhost ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
[root@localhost ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
[root@localhost ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
[root@localhost ~]# rpm -qa|grep java
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2020a-1.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
在usr/local下面创建java文件夹,将下载的tar传入到该文件夹下加压后删除压缩包
使用xftp传输即可,协议使用SFTP,因为端口的占用问题
cd /usr/local
mkdir java
cd java
[root@localhost java]# ls
jdk1.8.0_251 jdk-8u251-linux-x64.tar.gz
[root@localhost java]# rm -f jdk-8u251-linux-x64.tar.gz
[root@localhost java]# ls
jdk1.8.0_251
接下来配置环境变量即可,Linux系统中环境变量在==/etc/profile==中设置【spring boot项目和maven都有profile,windows的环境变量通过%XX%引用】
vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_251
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
之后source /etc/profile保存配置使之生效就完成了Centos的java环境配置
[root@localhost java]# rm -f jdk-17.0.2_linux-x64_bin.tar.gz
[root@localhost java]# ls
jdk-17.0.2
[root@localhost java]# vim /etc/profile
[root@localhost java]# source /etc/profile
[root@localhost java]# java -version
java version "17.0.2" 2022-01-18 LTS
这里因为we构建项目使用的java17,部署到 服务器发生错误,jdk1.8不能满足要求,因此重新在Java Archive Downloads - Java SE 17 (oracle.com) 下载了jdk17 Linux版本,重新上述流程,只需要修改JAVA_HOME环境变量即可
[root@localhost cfeng]# java -jar cfeng-test-demo-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.7.2)
2022-07-31 10:07:08.935 INFO 4001 --- [ main] com.Jning.cfengtestdemo.DemoApplication : Starting DemoApplication v0.0.1-SNAPSHOT using Java 17.0.2 on localhost.localdomain with PID 4001 (/root/cfeng/cfeng-test-demo-0.0.1-SNAPSHOT.jar started by root in /root/cfeng)
2022-07-31 15:16:13.588 INFO 8158 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index
2022-07-31 15:16:14.340 INFO 8158 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 1 endpoint(s) beneath base path '/actuator'
2022-07-31 15:16:14.472 INFO 8158 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8081 (http) with context path ''
2022-07-31 15:16:14.523 INFO 8158 --- [ main] com.Jning.cfengtestdemo.DemoApplication : Started DemoApplication in 18.263 seconds (JVM running for 21.615)
这样就可以运行java17构建的springBoot项目;这样打包为jar就可以放到服务器上面运行
CentOS7搭建MySQL8环境
服务器除了jdk环境,还有就是最基本的mysql环境,才能正常运行jar类型的web项目
- 首先要卸载centos的开源的数据库MariaDB,因为会冲突
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
- 可以直接到官网下载压缩包MySQL :: Begin Your Download ;
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
直接下载下来之后使用XFTP传到/usr/local/mysql文件夹下面
- 解压安装,卸载安装包,重命名文件夹
[root@localhost mysql]# ls
mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
[root@localhost mysql]# tar -Jxvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
mysql-8.0.27-linux-glibc2.12-x86_64/bin/
[root@localhost mysql]# ls
mysql-8.0.27-linux-glibc2.12-x86_64 mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
[root@localhost mysql]# rm -f mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
[root@localhost mysql]# mv mysql-8.0.27-linux-glibc2.12-x86_64 mysql8
[root@localhost mysql]# ls
mysql8
- 接下来就是配置环境变量【和windows一样都是为了任意位置使用mysql指令,配置PATH即可】
[root@localhost bin]# pwd
/usr/local/mysql/mysql8/bin
[root@localhost bin]# vim /etc/profile
[root@localhost bin]# source /etc/profile
直接在PATH配置的JAVA后面 :XXXX
退出到~目录,执行mysql --version查看环境变量是否配置成功
[root@localhost ~]# mysql --version
mysql Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL)
- 创建存放数据的文件夹
[root@localhost mysql8]# mkdir data
[root@localhost mysql8]# ls
bin data docs include lib LICENSE man README share support-files
- 创建操作用户组mysql,和mysql组用户cfeng,并给cfeng授权; 整个mysql8文件夹的属主; 利用chown改变属主,chgrp改变属组
[root@localhost mysql8]# groupadd mysql
[root@localhost mysql8]# useradd -g mysql cfeng
useradd:用户“cfeng”已存在
[root@localhost mysql8]# useradd -g mysql mysqlCfeng
[root@localhost mysql8]# id mysqlCfeng
uid=1001(mysqlCfeng) gid=1001(mysql) 组=1001(mysql)
[root@localhost mysql8]# chown -R mysqlCfeng /usr/local/mysql/mysql8
[root@localhost mysql8]# cd ..
[root@localhost mysql]# ll
总用量 0
drwxr-xr-x 10 mysqlCfeng root 141 7月 31 11:39 mysql8
[root@localhost mysql]# chgrp mysql /usr/local/mysql/mysql8
[root@localhost mysql]# ll
总用量 0
drwxr-xr-x 10 mysqlCfeng mysql 141 7月 31 11:39 mysql8
- 在/usr/local/etc下面创建myMysql.conf用于创建初始的配置,指定相关内容:安装目录,数据目录等
vim /usr/local/etc/myMysql.conf
数据目录 : /usr/local/mysql/mysql8/data [login-bin----/data/mysql-bin ]
安装server目录:/usr/local/mysql/mysql8
[root@localhost mysql8]# cat /usr/local/etc/myMysql.conf
[mysql]
default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
server-id = 3306
user = mysqlCfeng
socket = /tmp/mysql.sock
# 安装目录
basedir = /usr/local/mysql/mysql8
# 数据存放目录
datadir = /usr/local/mysql/mysql8/data
log-bin = /usr/local/mysql/mysql8/data/mysql-bin
innodb_data_home_dir =/usr/local/mysql/mysql8/data
innodb_log_group_home_dir =/usr/local/mysql/mysql8/data
# 日志及进程数据的存放目录
log-error =/usr/local/mysql/mysql8/data/mysql.log
pid-file =/usr/local/mysql/mysql8/data/mysql.pid
# 服务端字符集
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
##### 配置相关的数据量
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
- 初始化数据库, 使用mysqld命令初始化
mysqld --defaults-file=/usr/local/etc/myMysql.conf --basedir=/usr/local/mysql/mysql8 --datadir=/usr/local/mysql/mysql8/data --user=mysqlCfeng --initialize-insecure
- –defaults-file: 指定配置文件,必须在initialize前面
- –user: 指定用户
- –basedir: 安装目录
- –datadir: 指定初始化数据目录
- –initialize-insevure: 初始化无密码【否则会生成随机密码】
初始化之后,启动mysql,先查看/bin下面是否包含命令mysqld_safe
之后安全启动后台服务【&】 启动的方式和mysql相同,指定配置文件,同时指定后台启动
[root@localhost bin]# ls
ibd2sdi my_print_defaults mysqld mysql_migrate_keyring mysql_upgrade
innochecksum mysql mysqld-debug mysqlpump perror
lz4_decompress mysqladmin mysqld_multi mysql_secure_installation zlib_decompress
myisamchk mysqlbinlog mysqld_safe mysqlshow
myisam_ftdump mysqlcheck mysqldump mysqlslap
myisamlog mysql_config mysqldumpslow mysql_ssl_rsa_setup
myisampack mysql_config_editor mysqlimport mysql_tzinfo_to_sql
[root@localhost bin]# mysqld_safe --defaults-file=/usr/local/etc/myMysql.conf &
[1] 6064
[root@localhost bin]# 2022-07-31T05:07:17.818091Z mysqld_safe Logging to '/usr/local/mysql/mysql8/data/mysql.log'.
2022-07-31T05:07:17.852992Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/mysql8/data
可以看到自动执行命令将登录日志写入mysql.log,将databases数据来源data
- 登录时如果没有使用–initialize-insecure初始化,首次登录跳过密码
mysql -u root --skip-password
首次登录修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'XXXX'
FLUSH PRIVILEGES
平时修改:
mysqladmin -u命令行 -p旧密码 password 新密码
SET PASSWORD FOR '用户名'@'主机' = PASSWORD
FLUSH PRIVILEGES
退出服务可以使用quit,exit
修改root的主机信息,为远程登录【创建之后授权GRANT】
mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> SELECT user,host FROM user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
整个表就是系统的用户
创建一个可以远程登录的用户
mysql> CREATE user 'cfeng'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> ALTER USER 'cfeng'@'%' IDENTIFIED WITH mysql_native_password BY 'XXXXX';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'cfeng'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql> SELECT user,host FROM user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| cfeng | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
%就是匹配所有的IP,类似于之前的redis的0.0.0.0
关闭防火墙之后就可以连接了【i的防火墙自redis后就没关过,stop即可】
在其他电脑上远程连接
C:\Users\OMEY-PC>mysql -h 192.168.204.100 -u cfeng -p
Enter password: ************
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.27 MySQL Community Server - GPL
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> USE mysql;
Database changed
mysql> SELECT user,host FROM user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| cfeng | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
同时本机也可以以localhost登录
mysql> USE cfengtest
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> SHOW TABLES;
+---------------------+
| Tables_in_cfengtest |
+---------------------+
| hibernate_sequence |
| test_user |
+---------------------+
2 rows in set (0.01 sec)
mysql> SELECT * FROM test_user;
+----+----------+------------+-----------+----------+
| id | user_age | user_class | user_name | user_pwd |
+----+----------+------------+-----------+----------+
| 1 | 12 | HC2005 | Cfeng | 123456 |
只要对应的主机上也有mysql环境,可以访问server即可
设置服务器Mysql开机自启动,首先需要设置systectl管理mysql的配置文件
touch /usr/lib/systemd/system/mysql.service
这里的文件必须是.service结尾
进入配置文件中配置
[root@localhost system]# touch mysql.service
[root@localhost system]# vim mysql.service
[root@localhost system]# cat mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysqlCfeng
Group=mysql
ExecStart=/usr/local/mysql/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/myMysql.conf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false
ExeStart标识systemctl启动mysql时要执行的命令
这个时候就可以利用systemctl管理mysql
systemctl start mysql #启动
systemctl enable mysql #开机自启动
[root@localhost ~]# systemctl enable mysql
Created symlink from /etc/systemd/system/multi-user.target.wants/mysql.service to /usr/lib/systemd/system/mysql.service.
[root@localhost ~]# systemctl status mysql;
● mysql.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; vendor preset: disabled)
Active: active (running) since 日 2022-07-31 17:32:14 CST; 3min 30s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Main PID: 1154 (mysqld_safe)
Tasks: 42
Memory: 572.9M
CGroup: /system.slice/mysql.service
├─1154 /bin/sh /usr/local/mysql/mysql8/bin/mysqld_safe --defaults-...
└─1841 /usr/local/mysql/mysql8/bin/mysqld --defaults-file=/usr/loc...
7月 31 17:32:14 localhost.localdomain systemd[1]: Started MySQL Server.
7月 31 17:32:15 localhost.localdomain mysqld_safe[1154]: 2022-07-31T09:32:15...
7月 31 17:32:15 localhost.localdomain mysqld_safe[1154]: 2022-07-31T09:32:15...
Hint: Some lines were ellipsized, use -l to show in full.
再将上面的项目的数据库连接改为服务器的数据库,运行即可
[root@localhost ~]# ps -ef| grep test-demo
root 8158 2837 29 15:15 pts/0 00:00:48 java -jar cfeng-test-demo-0.0.1-SNAPSHOT.jars
在虚拟机和主机上都可以访问网站,success🥂