【Boot开发】Git工具详解,服务器搭建java和mysql环境由systemctl管理

SpringBoot


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常用命令

img

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一次

  1. 首先需要查看系统是否自带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
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 731 11:39 mysql8
[root@localhost mysql]# chgrp mysql /usr/local/mysql/mysql8
[root@localhost mysql]# ll
总用量 0
drwxr-xr-x 10 mysqlCfeng mysql 141 731 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...

731 17:32:14 localhost.localdomain systemd[1]: Started MySQL Server.
731 17:32:15 localhost.localdomain mysqld_safe[1154]: 2022-07-31T09:32:15...
731 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🥂

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值