Linux-命令

Linux常用命令

1.Linux基本的目录结构

在这里插入图片描述
● bin (binaries)存放二进制可执行文件
● sbin (super user binaries)存放二进制可执行文件,只有root才能访问
● etc (etcetera)存放系统配置文件
● usr (unix shared resources)用于存放共享的系统资源
● home 存放用户文件的根目录
● root 超级用户目录
● dev (devices)用于存放设备文件
● lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块
● mnt (mount)系统管理员安装临时文件系统的安装点
● boot 存放用于系统引导时使用的各种文件
● tmp (temporary)用于存放各种临时文件
● var (variable)用于存放运行时需要改变数据的文件

2.vagrant默认的挂载目录

Vagrantfile所在目录,默认挂载到虚拟机/vagrant

在这里插入图片描述
自定义挂载

在这里插入图片描述

3.常用命令

补充:常用快捷键及命令
ctrl+l:清屏 = clear命令
tab:自动补全
方向的上下键:历史命令=history
ctrl + c:停止进程
ctrl + r:搜索历史命令

3.1echo命令

打印命令,只能进行文件操作

#打印
echo hello linux
#覆盖
echo hello v3 > v3.txt 
#追加
echo hello v3 >> v3.txt 

3.2ls命令

#详细查看,所有文件和目录
ls -la 

● -l (long)详细列表
● -la (all) 显示隐藏文件、特殊目录.和…
● ll = ls -l

3.3man命令

查看命令的帮助

man ls

● ctrl+f:下一页
● ctrl+b:上一页
● :q退出

3.4cd命令

1.进入目录,~ 代表是home目录,也就是家目录, / 代表的是根目录
2.用户登录后在 家目录 ,可用pwd命令查看,普通用户为 /home/用户名,root用户为/root
3.根目录是在最顶端的目录(因为已经不能cd …到上一级目录了 )
4.根目录是所有用户的都可以操作的,家目录用户才有权限操作(管理员可以分配权限)

#绝对路径
[root@s1 ~]# cd /vagrant
[root@s1 vagrant]# ls
bootstrap.sh  centos_v1.box  centos_v2.box  centos_v3.box  lua-demo  Vagrantfile

#进入用户的宿主目录
cd ~ 

#进入上级目录
cd .. 

# ./ 不写,都是代表当前目录

#进入上一个历史目录
cd - 

[root@s1 man]# cd ~
[root@s1 ~]# pwd
/root
[root@s1 ~]# cd -
/usr/local/share/man
[root@s1 man]# pwd
/usr/local/share/man
[root@s1 man]#

3.5pwd命令

显示当前工作目录

[root@s1 vagrant]# cd ~
[root@s1 ~]# ls
anaconda-ks.cfg  post_install.log  v3.txt
[root@s1 ~]# pwd
/root

注:使用vagrant安装的虚拟机默认2个用户
● 用户名:vagrant (普通用户),密码vagrant
● 用户名:root(管理员),密码vagrant

[vagrant@s1 ~]$ pwd
#vagrant的宿主目录
/home/vagrant

3.6su命令

切换用户

[vagrant@s1 /]$ cd /root/
-bash: cd: /root/: Permission denied #使用vagrant不能访问/root

[vagrant@s1 /]$ su root
Password:
[root@s1 /]# cd /root/

3.7mkdir命令

创建目录
-p 父目录不存在情况下先生成父目录

[vagrant@s1 ~]$ cd ~ #进入宿主目录
[vagrant@s1 ~]$ ll
total 0
[vagrant@s1 ~]$ mkdir /home/vagrant/java-project/src #创建目录
mkdir: cannot create directory ‘/home/vagrant/java-project/src’: No such file or directory
[vagrant@s1 ~]$ mkdir -p /home/vagrant/java-project/src #-p自动产生父目录
[vagrant@s1 ~]$ ll
total 0
drwxrwxr-x 3 vagrant vagrant 16 Jul  6 11:16 java-project
[vagrant@s1 ~]$ cd java-project/
[vagrant@s1 java-project]$ ll
total 0
drwxrwxr-x 2 vagrant vagrant 6 Jul  6 11:16 src
[vagrant@s1 java-project]$

3.8tree命令

以树列表目录

#安装tree不能使用普通用户vagrant,需切换管理员root
su root 
yum install -y tree

[root@s1 vagrant]# su vagrant
[vagrant@s1 ~]$ tree java-project
java-project
├── resources
│   └── db
└── src

3.9touch命令

创建空文件

[vagrant@s1 src]$ touch Hello.java
[vagrant@s1 src]$ ll
total 0
-rw-rw-r-- 1 vagrant vagrant 0 Jul  6 14:01 Hello.java
[vagrant@s1 src]$

在这里插入图片描述

3.10cp命令

拷贝文件,目录
-r:递归拷贝,即先拷贝子文件再拷贝父文件

在这里插入图片描述

[vagrant@s1 ~]$ cp java-project/src/Hello.java ./java-project/src/main/java/
[vagrant@s1 ~]$ tree java-project/
java-project/
├── resources
│   └── db
└── src
    ├── Hello.java
    ├── main
    │   └── java
    │       └── Hello.java
    └── test

在这里插入图片描述

递归拷贝

[vagrant@s1 ~]$ cp -r  java-project/resources/ java-project/src/main/
[vagrant@s1 ~]$ tree java-project/
java-project/
├── resources
│   └── db
│       └── jdbc.properties
└── src
    ├── main
    │   ├── java
    │   │   └── Hello.java
    │   └── resources
    │       └── db
    │           └── jdbc.properties
    └── test

8 directories, 3 files

3.11rm命令

删除文件或者目录
-r:递归删除
-f:强制删除
rm -rf:强制删除

[vagrant@s1 ~]$ rm java-project/src/Hello.java
[vagrant@s1 ~]$ tree java-project/
java-project/
├── resources
│   └── db
└── src
    ├── main
    │   └── java
    │       └── Hello.java
    └── test

3.12mv命令

移动文件或目录

[vagrant@s1 ~]$ mv  java-project/resources/ java-project/src/main/
[vagrant@s1 ~]$ tree java-project/
java-project/
└── src
    ├── main
    │   ├── java
    │   │   └── Hello.java
    │   └── resources
    │       └── db
    │           └── jdbc.properties
    └── test

6 directories, 2 files

mv可以修改文件名

[vagrant@s1 ~]$ tree java-project/
java-project/
└── src
    ├── main
    │   ├── java
    │   │   └── Hello.java
    │   └── resources
    │       └── db
    │           └── jdbc.properties
    └── test

6 directories, 2 files
[vagrant@s1 ~]$ mv java-project/src/main/java/Hello.java java-project/src/main/java/HelloWorld.java
[vagrant@s1 ~]$ tree java-project/
java-project/
└── src
    ├── main
    │   ├── java
    │   │   └── HelloWorld.java
    │   └── resources
    │       └── db
    │           └── jdbc.properties
    └── test

6 directories, 2 files

在这里插入图片描述

3.13cat命令

只能对文件进行操作,显示文本文件内容

cat OAuth2Config.java
#把a.txt内容覆盖到b.txt
cat a.txt > b.txt 
#吧a.txt追加到b.txt
cat a.txt >> b.txt 

3.14more、less 命令

分页显示文本文件内容

#more命令查看完内容后自动退出
more OAuth2Config.java
#less命令查看完内容后需手动退出
less OAuth2Config.java

3.15head命令

-n显示前几行内容(默认10行)
#显示前10行内容
在这里插入图片描述

3.16tail命令

-n 显示后几行数据(默认10行)
-f 循环读取

#显示后10行
tail -n 10 OAuth2Config.java

场景
启动两个session(两个session的用户必须一致,推荐都用vagrant)
在其中一个session追加内容

[vagrant@s1 ~]$ echo "hello 1111" >> OAuth2Config.java
[vagrant@s1 ~]$ echo "hello aaaaa" >> OAuth2Config.java
[vagrant@s1 ~]$ echo "hello bbbbb" >> OAuth2Config.jav

在另一个session中,可以刷新最新的日志

tail -n 20 -f OAuth2Config.java

3.17wc命令

统计文本的行数、字数、字符数
-m 统计文本字节数
-w 统计文本字数
-l 统计文本行数

echo "hello java welcome to beijing" > a.txt
wc -w -l -m a.txt

3.18find命令

查找文件

find -name Hello*.java

[vagrant@s1 ~]$ tree java-project/
java-project/
└── src
    ├── java -> app
    ├── main
    │   ├── java
    │   │   └── HelloWorld.java
    │   └── resources
    │       └── db
    │           └── jdbc.properties
    └── test

6 directories, 3 files
[vagrant@s1 ~]$ find -name Hello*.java
./java-project/src/main/java/HelloWorld.java
[vagrant@s1 ~]$ find -name jdbc.*
./java-project/src/main/resources/db/jdbc.properties

3.19grep命令

查找文本,grep 在指定的文本文件中查找指定的字符串
-n显示行数
-i不区分大小写

grep class OAuth2Config.java -n -i -o

补充:
管道符 |
后面的命令处理前面命令的结果,前面的命令必须能在屏幕上产生信息
在这里插入图片描述

3.20ln命令

格式

ln -s 目标地址 文件名

创建软连接

ln -s /home/vagrant/java-project/src/main/java/HelloWorld.java app

echo "hello spring" >> app #通过软连接添加内容

cat app #通过软连接查看文件内容

4.系统命令

4.1du命令

显示指定的文件(目录)已使用的磁盘空间
-h 显示单位
-s 显示总的大小

cd ~
du -s -h

在这里插入图片描述

4.2free命令

显示当前内存和交换空间的使用情况

free

4.3netstat命令

显示网络状态信息,查看端口占用情况
-a 显示所有连接和监听端口
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字
-p 显示建立相关链接的程序名

#sudo:得到管理员权限执行命令
sudo yum install net-tools -y 
netstat -tunpl

4.4ifconfig命令

网卡网络配置详解

4.5ping命令

测试网络的连通性

4.6top命令

显示当前系统中耗费资源最多的进程 (实时)

4.7ps命令

显示瞬间的进程状态(快照)
-e /-A 显示所有进程,环境变量
-f 全格式
-a 显示所有用户的所有进程(包括其它用户)
-u 按用户名和启动时间的顺序来显示进程
-x 显示无控制终端的进程

ps -aux
ps -aux | grep tail

在这里插入图片描述

4.8kill命令

根据进程ID(pid)杀死进程

kill -9 (进程id)

#4620即为进程id
在这里插入图片描述

5.压缩和打包命令

5.1gzip命令

把文件和目录压缩成gz格式

#压缩
gzip OAuth2Config.java 
#解压
gzip -d OAuth2Config.java.gz 

5.2bzip2命令

以bzip2格式压缩和解压

  bzip2 OAuth2Config.java
  bzip2 OAuth2Config.java.bz2 -d

注: gzip和bzip2不能压缩目录

5.3tar(推荐)

-打包目录成tar文件
-整合gzip和bzip2压缩
-c 建立一个压缩文件的参数指令(create)
-x 解开一个压缩文件的参数指令(extract)
-z 是否需要用 gzip 压缩
-j 是否需要用 bzip2 压缩
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在 f 之后要立即接档名(file)

5.3.1打包
#打包java-project目录
tar -cvf java-project.tar ./java-project/ 
#删除java-project
rm -rf java-project 
tar -xvf java-project.tar
5.3.2以gzip方式压缩
#z表示以gz格式压缩
tar -czvf java-project.tar.gz ./java-project 
#解压
tar -zxvf java-project.tar.gz 
5.3.3以biz2方式压缩和解压
#压缩
tar -cjvf java-project.tar.bzip2 ./java-project
#解压
tar -xjvf java-project.tar.bzip2

6.vim命令

vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大

6.1vim的模式

在这里插入图片描述

6.2底行命令

注: 在一般模式下执行
● :wq 保存退出
● :q! 不保存退出
● :q 退出,如果内容有改变不能退出
● :set number 显示行号
● :set nonumber 隐藏行号
● :w filename 另存为文件
● :e! 撤销所有操作
● :行号 调到指定的行

6.3移动命令

注: 在一般模式下执行
● w b 下一个,上一个单词
● 0, $ 行首,行尾
● gg 第一行
● G 最后一行
● xG 到x行

6.4替换命令

注: 在一般模式下执行
:1,$s/private/public/g 将第一行到最后一行的private替换为public

:1,$s/public/protected/c 将第一行到最后一行的public替换为protected(有提示)

6.5编辑命令

注: 在一般模式下执行
● x删除一个字符
● dd删除一行
● yy复制一行
● p粘贴
● 输入v进入选择模式,选择内容,输入y复制,调到要黏贴的位置输入p粘贴
● 输入u 撤销操作
● 在一般模式中输入/8080查找8080,输入n查找下一个
● 在一般模式输入r+替换的字符,执行替换

7.用户管理

linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰

7.1用户管理的配置文件

● 保存用户信息的文件:/etc/passwd
● 保存密码的文件:/etc/shadow
● 保存用户组的文件:/etc/group
● 保存用户组密码的文件:/etc/gshadow
● 用户配置文件:/etc/default/useradd

7.2用户的分类

● 超级用户:(root,UID=0)
● 普通用户:(UID在1000以上)
● 伪用户:(UID在1到999)
○ 系统和服务相关的:bin、daemon、shutdown等
○ 进程相关的:mail、news、games等
○ 伪用户不能登陆系统,而且没有宿主目录

7.3/etc/passwd格式

在这里插入图片描述

在这里插入图片描述

7.4/etc/shadow格式

密码配置文件
在这里插入图片描述

7.5用户的组

● 每个用户至少属于一个用户组
● 如果创建用户,没有指定组,此用户指定跟用户名同名组
● 每个用户组可以包含多个用户
● 同一个用户组的用户享有该组共有的权限
在这里插入图片描述

7.6用户和组管理命令

1.用户管理命令
● useradd:添加用户
○ -u 指定组ID(uid)
○ -g 指定用户所属的用户组
○ -G 指定用户所属的附加组(若有多个附加组,则每个附加组之间用逗号分开)
○ -c 用户描述(comment)
○ -e 失效时间(expire date)
● usermod:修改用户
○ -l 修改用户名 (login)usermod -l a b(b改为a)
○ -g 指定用户所属的用户组
○ -G 指定用户所属的附加组
○ -L 锁定用户账号密码(Lock)
○ -U 解锁用户账号(Unlock)
● userdel:删除用户
○ -r 删除账号时同时删除目录(remove)
2.组管理命令
● 添加组:groupadd
○ -g 指定gid
● 修改组:groupmod
○ -n 更改组名(new group)
● 删除组:groupdel
● groups 显示用户所属组
注:
1.-g指定的是用户的所属组,当为用户指定了这个组后,在vim group中查看,组后面并不会出现用户的名字;-G指定的是用户的附加组,当为用户指定了这个组后,在vim group中查看,组后面会出现用户的名字。在id 用户名 中可以查看用户的所属组以及附加组
-g:
在这里插入图片描述
在这里插入图片描述
-G:
在这里插入图片描述
在这里插入图片描述
id 用户名:
红色:
红色:用户id
蓝色:组id
黄色:用户所属组
紫色:用户附加组
2.-G有覆盖作用,若之前已为用户指定附加组sys,root,users,再为用户指定附加组sale,则用户的附加组为sale
3.若创建用户时指定了组,则在vim group中不会有一个跟用户名同名的组,但在 ll(ls) -home下会有一个跟用户名同名的主目录
在这里插入图片描述
在这里插入图片描述

如下图,vim group中没有与用户名相同的组
在这里插入图片描述

若创建用户时不指定组,则在vim group中会有一个跟用户名同名的组,在 ll(ls) -home下也会有一个跟用户名同名的目录
在这里插入图片描述

在这里插入图片描述
4. ll(ls) /home 查看的是用户的主目录
5. 用户的主目录默认在根目录下的"/home"目录中。每个用户都有一个独立的子目录,以用户名命名,用于存储用户的个人文件和配置信息等。例如,用户Bob的主目录就是"/home/Bob"
6. 无论添加用户时是否为用户指定组,在vim passwd中都有用户信息生成
添加用户时不指定组
在这里插入图片描述
在这里插入图片描述
添加用户时指定组
在这里插入图片描述
在这里插入图片描述

实战案例
1.添加一个用户

useradd yeonjun

在这里插入图片描述

2.查看home目录下的文件

ls(ll) /home

在这里插入图片描述
3.删除用户

userdel yeonjun
#参数 -r表示删除用户的同时删除目录
userdel -r yeonjun
#id yeonjun表示查看用户信息

在这里插入图片描述
4.修改用户的组

#把用户yeonjun的组改为sale组
usermod -g sale yeonjun

在这里插入图片描述
5.指定用户所属的附加组

usermod -G sys,root,users yeonjun

在这里插入图片描述

usermod -G yeonjun yeonjun

在这里插入图片描述
6.显示用户yeonjun所属的组

groups yeonjun

在这里插入图片描述
7.把用户yeonjun从sale组中删除

gpasswd -d yeonjun sale

在这里插入图片描述
在这里插入图片描述

8.添加一个组idol

groupadd idol

#添加后的组在vim group中查看
在这里插入图片描述
9.将用户yeonjun添加到idol组中

usermod -G idol yeonjun

在这里插入图片描述
10.修改sale组为hr组

groupmod -n hr sale

在这里插入图片描述
在这里插入图片描述
11.为用户设置密码

passwd yeonjun

在这里插入图片描述
12.使用户无密码登录

#参数-d:使该用户无密码登录
passwd -d yeonjun

在这里插入图片描述

8.权限管理

8.1权限表示符号

在这里插入图片描述
1.执行ls-l(ll)
在这里插入图片描述
● 第1位:文件类型(d 目录,- 普通文件,l 链接文件)
● 第2-4位:所属用户权限,用u(user)表示
● 第5-7位:所属组权限,用g(group)表示
● 第8-10位:其他用户权限,用o(other)表示第
● 2-10位:表示所有的权限,用a(all)表示
2.三种基本权限
● r 读权限(read)4
● w 写权限(write)2
● x 执行权限 (execute)1
3.权限含义的解释
首先,读、写、执行权限对文件和目录的作用是不同的
(1)权限对文件的作用
●读(r):
对文件有读(r)权限,代表可以读取文件中的数据
如果把权限对应到命令上,那么一旦对文件有读(r)权限,就可以对文件执行cat、more、less、head、tail等文件查看命令
●写(w):
对文件有写(w)权限,代表可以修改文件中的数据
如果把权限对应到命令上,那么一旦对文件有写(w)权限,就可以对文件执行vim、echo等修改文件数据的命令
注:对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。如果要想删除文件,则需要对文件的上级目录拥有写权限
●执行(x):
对文件有执行(x)权限,代表文件拥有了执行权限,可以运行。
在Linux中,只要文件有执行(x)权限,这个文件就是执行文件了。
这个文件到底能不能正确执行,不仅需要执行(x)权限,还要看文件中的代码是不是正确的语言代码
对文件来说,执行(x)权限是最高权限
(2)权限对目录的作用
●读(r):
对目录有读(r)权限,代表可以查看目录下的内容,也就是可以查看目录下有哪些子文件和子目录
如果把权限对应到命令上,那么一旦对目录拥有了读(r)权限,就可以在目录下执行ls命令,查看目录下的内容了
●写(w):
对目录有写(r)权限,代表可以修改目录下的数据,也就是可以在目录中新建、删除、复制、剪切子文件或子目录
如果把权限对应到命令上,那么一旦对目录拥有了写(w)权限,就可以在目录下执行touch、rm、cp、mv命令
对目录来说,写(w)权限是最高权限
●执行(x):
目录是不能运行的,那么对目录拥有执行(x)权限,代表可以进入目录
如果把权限对应到命令上,那么一旦对目录拥有了执行(x)权限,就可以对目录执行cd命令,进入目录(也就是执行权限对于目录来讲没有危险)
4.在这里插入图片描述

8.2chmod命令

chmod是修改文件权限的命令(change mode)
● 参数:-R 下面的文件和子目录做相同权限操作(Recursive递归的)
● 修改权限的两种方式
○ 用字母来表示权限,例如:chmod u+x a.txt,给a.txt增加当前用户的执行权限,具体参考下图
在这里插入图片描述

○ 用数字来表示权限(r=4,w=2,x=1,-=0) 例如:chmod 750 b.txt :表示b.txt的权限为:当前用户rwx,当前用户的组rx,其他用户没有权限,具体参考下图
在这里插入图片描述
注:
1.使用"+“、”-“和”="来更改权限
“+”:添加权限。例如,使用命令"chmod +x file"可以向文件添加执行权限
“-”:移除权限。例如,使用命令"chmod -w file"可以从文件中移除写入权限
“=”:设置权限。例如,使用命令"chmod u=rw,go=r file"可以将文件的用户权限设置为读取和写入,而群组和其他用户的权限设置为只读
2.更改其他目录或文件的权限通常需要使用 root 用户或具有 root 权限的用户。Root 用户是具有系统最高权限的用户,可以访问和修改系统中的所有文件和目录,root可以操作一切文件夹,比较危险,不会通过提示直接删掉文件。只有 root 用户才能更改其他用户或组的文件和目录的权限。一般用户只能更改自己拥有的文件和目录的权限,如下

(1)用户yeonjun更改自己目录下文件的权限为777在这里插入图片描述
(2)切换到用户vagrant更改用户yeonjun拥有的文件的权限,发现报错,原因是用户vagrant没有更改其他用户文件的权限在这里插入图片描述
(3)切换为用户root更改用户yeonjun文件的权限,更改成功,原因是root用户为管理员,可以访问和修改系统中的所有文件和目录在这里插入图片描述

实战案例:让其他人可以查看/home/yeonjun目录
1.一开始vagrant用户没有查看yeonjun目录的权限
在这里插入图片描述
由下图可以看出其他用户是没有查看yeonjun目录的权限的
在这里插入图片描述
2.切换管理员用户root,更改yeonjun目录的权限

su root
cd /home
ll
chmod 707 yeonjun

在这里插入图片描述
3.再次切换到用户vagrant,查看目录yeonjun,此时可以查看
在这里插入图片描述

8.3chown命令

改变文件所属用户,文件所属的组
● 参数:-R:递归
在这里插入图片描述

9.安装JDK

9.1把下载的文件上传到虚拟机

在这里插入图片描述

9.2创建安装目录

一般程序安装的目录/user/local

mkdir /usr/local/java

9.3移动安装文件到目录

mv ~/jdk-8u11-linux-x64.tar.gz /usr/local/java/

9.4解压文件

tar -zxvf jdk-8u11-linux-x64.tar.gz

9.5配置Java环境变量

  • JAVA_HOME:java程序访问的jdk根目录,也是jdk的安装根目录,比如tomcat就要访问这个目录
  • path:命令的寻址目录
whereis java #查找java在哪
vim /etc/profile
#输入G到文件末尾,增加2个环境变量
JAVA_HOME=/usr/local/java/jdk1.8.0_11
export PATH=$JAVA_HOME/bin:$PATH

#重新加载文件
source /etc/profile
java -version
...JDK1.8

9.6实战案例

创建一个java文件

cd ~
vim Hello.java

输入如下内容

public class Hello {

  public static void main(String[] args) {
     System.out.println("hello java");

  }

}

编译

javac Hello.java

运行

java Hello

10.安装TomCat

10.1上传到虚拟机

在这里插入图片描述

10.2创建目录解压

mv ~/apache-tomcat-8.5.56.tar.gz /usr/local/java
tar -zxvf apache-tomcat-8.5.56.tar.gz

10.3运行

/usr/local/java/apache-tomcat-8.5.56/bin/startup.sh #启动
#cd /usr/local/java/apache-tomcat-8.5.56/bin
#./startup.sh
#jps是java的一个工具,跟javac一样,查看java的进程
netstat -tunpl

10.4测试

在宿主机浏览器访问http://192.168.56.71:8080/index.jsp

测试修改/usr/local/java/apache-tomcat-8.5.56/webapp/ROOT/index.jsp

vim /usr/local/java/apache-tomcat-8.5.56/webapp/ROOT/index.jsp

10.5使用curl命令

curl http://localhost:8080/index.jsp

11.安装Mysql

11.1下载Mysql

下载地址 https://downloads.mysql.com/archives/community/,如图所示

在这里插入图片描述

11.2安装Mysql

1.拷贝mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz到/root目录下

cd ~
tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

2.解压完成后重命名

mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql-5.7.28
mv mysql-5.7.28 /usr/local/

3.检查mysql组和用户是否存在,如果没有则创建

cat /etc/group|grep mysql
groupadd mysql
useradd -r -g mysql mysql  
#useradd -r参数表示mysql用户是系统用户,不可用于登录系统

11.3安装数据库

创建data目录
cd /usr/local/mysql-5.7.28
mkdir data

1.将/usr/local/mysql-5.7.28的所有者及所属组改为mysql

chown -R mysql.mysql /usr/local/mysql-5.7.28

2.进行文件配置

(1)在/usr/local/mysql-5.7.28/support-files目录下创建my_default.cnf

cd /usr/local/mysql-5.7.28/support-files
vim my_default.cnf

(2)具体配置内容如下

[mysqld]

#设置mysql的安装目录
basedir =/usr/local/mysql-5.7.28
#设置mysql数据库的数据存放目录
datadir = /usr/local/mysql-5.7.28/data
#设置端口
port = 3306

socket = /tmp/mysql.sock
#设置字符集
character-set-server=utf8
#日志存放目录
log-error = /usr/local/mysql-5.7.28/data/mysqld.log
pid-file = /usr/local/mysql-5.7.28/data/mysqld.pid
#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

(3)拷贝配置文件,是否覆盖选择是

cp my_default.cnf /etc/my.cnf

11.4初始化Mysql

cd /usr/local/mysql-5.7.28/
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.28/ --datadir=/usr/local/mysql-5.7.28/data/

注: 如果报错:./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or 就安装libaio,如果没有则跳过

yum install libaio

初始化完成之后查看日志

cat /usr/local/mysql-5.7.28/data/mysqld.log

蓝框里的是临时密码,如图所示
在这里插入图片描述

11.5启动mysql

1.把启动脚本放到开机初始化目录

cp support-files/mysql.server /etc/init.d/mysql

2.启动

service mysql start

11.6更改密码

进入mysql并更改密码

cd /usr/local/mysql-5.7.28
./bin/mysql -u root -p 上面生成的初始化密码
mysql> set password=password('123456');
mysql> grant all privileges on *.* to root@'%' identified by '123456';
mysql> flush privileges;

11.7添加权限

添加远程访问权限

mysql> use mysql;
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;

如果更改时报错:ERROR 1062 (23000): Duplicate entry ‘%-root’ for key ‘PRIMARY’,就先查询一下是否已更改,最后执行刷新

重启mysql生效

service mysql restart

常用命令
● 启动service mysql start
● 关闭service mysql stop
● 重启service mysql restart

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值