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