文章目录
Linux目录简介
- bin -> usr/bin:这个目录存放最经常使用的命令
- boot:这个目录存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
- dev:dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,Linux中的设备也是以文件的形式存在
etc
:这个目录存放所有的系统管理所需要的配置文件home
:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名- lib->user/lib:这个目录存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。
- mnt:系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容
- opt:这是给linux额外安装软件所存放的目录。比如你安装一个Oracle数据库则就可以放到这个目录下,默认为空。
root
:该目录为系统管理员目录,root是具有超级权限的用户- tmp:这个目录是用来存放一些临时文件的。
usr
:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。- var:这个目录存放着在不断扩充着的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件。
一、基本命令
1.1 关机和重启
关机:
命令 | 说明 |
---|---|
shutdown -h now | 立刻关机 |
shutdown -h 5 | 5分钟后关机 |
poweroff | 立刻关机 |
重启:
命令 | 说明 |
---|---|
shutdown -r now | 立刻重启 |
shutdown -r 5 | 5分钟后重启 |
reboot | 立刻重启 |
1.2 帮助命令
–help命令:
命令 | 说明 |
---|---|
ifconfig --help: | 查看网卡信息 |
man命令(命令说明书)
- man shutdown
注意:man shutdown打开命令说明书之后,使用按键q退出
二、目录操作命令
2.1 目录切换 cd
命令:cd 目录
- 带
/
表示绝对路径,不带/
表示相对路径
命令 | 说明 |
---|---|
cd / | 切换到根目录 |
cd /usr | 切换到根目录下的usr目录 |
cd ../ | 切换到上一级目录 或者 cd … |
cd ~ | 切换到当前用户的家目录,root用户为/root,其余用户为/home/用户名 |
cd - | 切换到上次访问的目录 |
2.2 目录查看 ls [-al]
命令:ls [-al]
命令 | 说明 |
---|---|
ls | 查看当前目录下的所有目录和文件 |
ls -a | 查看当前目录下的所有目录和文件(包括隐藏的文件) |
ls -l 或 ll | 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息) |
ls /dir | 查看指定目录下的所有目录和文件 如:ls /usr |
2.3 目录操作【增,删,改,查】
2.3.1 创建目录【增】 mkdir
命令:mkdir 目录
命令 | 说明 |
---|---|
mkdir aaa | 在当前目录下创建一个名为aaa的目录 |
mkdir /usr/aaa | 在指定目录下创建一个名为aaa的目录 |
2.3.2 删除目录或文件【删】rm
命令:rm [-rf] 目录
参数解释:
- r:递归删除(删除文件夹用)
- f:删除时不询问
删除文件:
命令 | 说明 |
---|---|
rm 文件 | 删除当前目录下的文件 |
rm -f 文件 | 删除当前目录的的文件(不询问) |
删除目录:
命令 | 说明 |
---|---|
rm -r aaa | 递归删除当前目录下的aaa目录 |
rm -rf aaa | 递归删除当前目录下的aaa目录(不询问) |
全部删除:
命令 | 说明 |
---|---|
rm -rf * | 将当前目录下的所有目录和文件全部删除 |
rm -rf /* | 【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除 |
注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包
2.3.3 目录修改【改】mv 和 cp
一、重命名目录
命令:mv 当前目录 新目录
命令 | 说明 |
---|---|
mv aaa bbb | 将目录aaa改为bbb |
注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作
二、剪切目录
命令:mv 目录名称 目录的新位置
命令 | 说明 |
---|---|
mv /usr/tmp/aaa /usr | 将/usr/tmp目录下的aaa目录剪切到 /usr目录下面 |
注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作
三、拷贝
- 拷贝文件:
命令:cp 被复制的文件名 新文件名
参数说明:-f:不询问复制
命令 | 说明 |
---|---|
cp -f anaconda-ks.cfg /usr/tmp/aa.txt | 复制当前路径的anaconda-ks.cfg文件到/usr/tmp/aa.txt |
- 拷贝目录:
命令:cp -rf 目录名称 目录拷贝的目标位置 -r代表递归
参数说明:-r:代表递归
命令 | 说明 |
---|---|
cp /usr/tmp/aaa /usr | 将/usr/tmp目录下的aaa目录复制到 /usr目录下面 |
2.3.4 搜索目录【查】find
命令:find 目录 option file
命令 | 说明 |
---|---|
find -name april* | 在当前目录下查找以april开始的文件 |
find -name april* > a.txt | 在当前目录下查找以april开始的文件,并把结果输出到a.txt中 |
find -name ap* -o -name may* | 查找以ap或may开头的文件 |
find /tmp -name wa* -type l | 在/tmp下查找名为wa开头且类型为符号链接的文件 |
find /home -mtime -2 | 在/home下查最近两天内改动过的文件 |
find /home -atime -1 | 查/home下1天之内被存取过的文件 |
find /home -mmin +60 | 在/home下查60分钟前改动过的文件 |
find /home -amin +30 | 在/home下查最近30分钟前被存取过的文件 |
find /home -newer tmp.txt | 在/home下查更新时间比tmp.txt近的文件或目录 |
find /home -anewer tmp.txt | 在/home下查存取时间比tmp.txt近的文件或目录 |
find /home -used -2 | 列出/home中文件或目录被改动过之后,在2日内被存取过的文件或目录 |
find /home -user cnscn | 列出/home目录内属于用户cnscn的文件或目录 |
find /home -uid +501 | 列出/home目录内用户的识别码大于501的文件或目录 |
find /home -group cnscn | 列出/home内组为cnscn的文件或目录 |
find /home -gid 501 | 列出/home内组id为501的文件或目录 |
find /home -nouser | 列出/home内不属于本地用户的文件或目录 |
find /home -nogroup | 列出/home内不属于本地组的文件或目录 |
find /home -maxdepth 4 -name tmp.txt | 列出/home内的tmp.txt 查时深度最多为3层 |
find /home -mindepth 3 -maxdepth 5 -name tmp.txt | 在/home的第二层到第四层之间查tmp.txt |
find /home -empty | 查找/home中大小为0的文件或空目录 |
find /home -size +512k | 查/home中大于512k的文件 |
find /home -size -512k | 查/home中小于512k的文件 |
find /home -links +2 | 查/home中硬连接数大于2的文件或目录 |
find /home -perm 0700 | 查/home中权限为700的文件或目录 |
find -type f -exec ls -l {} ; | 查当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出 |
find -name a.txt -ok rm {} ; | 查当前目录下的a.txt并询问是否删除 |
常用命令:
-
把当前目录下的file移动到/test下:
find -type f -exec mv {} /test \;
-
删除指定时间之前的文件:
find -type f -name *.log -mtime +180 -exec rm {} \;
三、文件操作命令
3.1 文件操作【增,删,改,查】
3.1.1 新建文件【增】touch
命令:touch 文件名
命令 | 说明 |
---|---|
touch aa.txt | 在当前目录创建一个名为aa.txt的文件 |
3.1.2 删除文件 【删】 rm
命令:rm -f 文件名
3.1.3 修改文件【改】 vi或vim
【vi编辑器的3种模式】
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
-
命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及进入Insert mode下,或者到 last line mode。
命令行模式下的常用命令:
【1】控制光标移动:↑,↓,←,→,h,j,k,l,
【2】删除当前行:dd
【3】查找:/字符,按n下一个,按N上一个
【4】进入编辑模式:i o a
【5】进入底行模式::
【6】文件头文件尾:gg G
【7】撤销上一次操作:u
【8】删除一行:dd
【9】复制一行内容:yy
【10】粘贴复制的内容:p -
编辑模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
编辑模式下常用命令:
【1】ESC 退出编辑模式到命令行模式;
【2】粘贴:shift + insert -
底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
底行模式下常用命令:
【1】退出编辑: :q
【2】强制退出(不保存退出): :q!
【3】保存并退出: :wq
【4】设置行号::set nu
3.1.4 文件的查看【查】cat/more/less/tail
命令 | 说明 | 示例 | 示例说明 |
---|---|---|---|
cat | 看最后一屏 | cat sudo.conf | 查看/etc/sudo.conf文件,只能显示最后一屏内容 |
more | 百分比显示 | more sudo.conf | 可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看 |
less | 翻页查看 | less sudo.conf | 可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看 |
head | 查看文件开头的n行数据 | head -n 10 sudo.conf | 查看/etc/sudo.conf文件的前10行 |
tail | 查看文件末尾n行数据 | tail -n 10 sudo.conf | 查看/etc/sudo.conf文件的后10行 |
3.1.5 文件内搜索: grep
在文件中(可以多个文件同时)搜索字符串,可以使用正则表达式
命令: grep [参数] 搜索的字符串内容 文件名1 [文件n]
参数:
- -i:忽略字符串的大小写
- -w:搜索整个单词
命令 | 说明 |
---|---|
grep java aa.txt | 在aa.txt中搜索文本”java”,默认是区分大小写的搜索,使用参数-i忽略大小写 |
grep “java is” aa.txt | 搜索的文本中有空格,使用引号括起来 |
grep -w java aa.txt | 搜索整个单词,是其他字符串的一部分的不符合条件 |
grep “^java” aa.txt | 使用正则, 以java开头的行 |
grep java aa.txt test.txt | 在多个文件搜索 |
3.1.6 文件上传与下载 sz/rz
-
sz :从Linux下载文件到本机 , 在Linux终端输入命令回车后,选择本地存储路径即可。
- 命令格式:
sz filename
下载文件filenamesz file1 file2
下载多个文件sz dir/*
下载dir目录下所有文件
- 命令格式:
-
rz:从本地上传文件到Linux,在Linux终端输入命令回车后,选择本地要上传的文件即可,可一次指定多个文件
- 命令格式:
rz -y
选择文件并上传到执行命令所在的目录
- 命令格式:
注意:
-
如果机器上没有安装过
lrzsz
安装包,则无法使用 rz 和 sz 命令。-
使用yum命令安装:
yum install -y lrzsz
-
下载源码进行安装。下载地址:https://ohse.de/uwe/software/lrzsz.html
-
-
上传和下载都默认使用Linux当前登录的用户,使用时要根据个人需要修改文件的权限。
3.2 权限修改 chmod
rwx:r代表可读,w代表可写,x代表该文件是一个可执行文件,如果rwx任意位置变为-则代表不可读或不可写或不可执行文件。
示例:给aaa.txt文件权限改为可执行文件权限,aaa.txt文件的权限是-rw-------
第一位:-就代表是文件,d代表是文件夹,l可以理解为windows中的快捷方式
第一段(3位):代表拥有者(U)的权限
第二段(3位):代表拥有者所在的组(G)组员的权限
第三段(最后3位):代表的是其他用户(O)的权限
4 2 1 4 2 1 4 2 1
- r w - - - - - - -
命令:chmod UGO权限 文件/目录
常见的三种权限:644、755、777
参数:
-R
:同时修改目录及其子目录、文件的权限
命令 | 说明 |
---|---|
chmod 644 aaa.txt | aaa.txt最后的权限为:-rw-r–r-- |
3.2 文件拥有者修改 chown
命令:
chown 新的拥有者用户 被修改的文件
chown 新的组.新的拥有者用户 被修改的文件
四、压缩文件操作
4.1 打包和压缩
Windows的压缩文件的扩展名 .zip/.rar
linux中的打包文件:aa.tar
linux中的压缩文件:bb.gz
linux中打包并压缩的文件:.tar.gz
Linux中的打包文件一般是以.tar结尾的,压缩的文件一般是以.gz结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。
命令:tar -zcvf 打包压缩后的文件名 要打包的文件
参数:
- z:调用gzip压缩命令进行压缩
- c:打包文件
- v:显示运行过程
- f:指定文件名
命令 | 说明 |
---|---|
tar -zcvf ab.tar aa.txt bb.txt 或tar -zcvf ab.tar * | 示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar |
4.2 解压
命令:tar [-zxvf] 压缩文件 [-C] 解压到指定的目录
其中:
- x:代表解压
- C:解压到指定的目录,不写默认为当前路径
命令 | 说明 |
---|---|
tar -zxvf /usr/tmp/ab/tar.gz | 将/usr/tmp 下的ab.tar.gz解压到当前目录下 |
tar -zxvf ab.tar -C /usr | 将/usr/tmp 下的ab.tar解压到根目录/usr下 |
4.3 查看压缩文件的内容
命令:tar -tf 归档文件名
t : 列出归档(压缩)文件的内容
f : 归档文件名
五、su、sudo
5.1 su
su用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。
命令:su 用户名
命令 | 说明 |
---|---|
su test | 切换到test用户,注意命令提示符“#”变为“$” , root@localhost 变为 test@localhost |
su root | 从普通用户切换到root用户,需要输入root用户密码 |
退出返回之前的用户:exit
su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。
5.2 sudo
sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。
- 进入sudo配置文件命令:
- vi /etc/sudoer或者visudo
案例:
- 允许hadoop用户以root身份执行各种应用命令,需要输入hadoop用户的密码。
- hadoop ALL=(ALL) ALL
- 只允许hadoop用户以root身份执行ls 、cat命令,并且执行时候免输入密码。
- hadoop ALL=NOPASSWD: /bin/ls, /bin/cat
六、管道与重定向
6.1 重定向输出覆盖: >
作用:将命令输出的内容重定向到其它位置,通常是文件,若文件不存在则新建文件再输出;若文件存在先清空文件,再写入内容
命令 | 说明 |
---|---|
echo “write some” > t1.txt | 向t1.txt文件输出内容“write some”。 |
6.2 重定向输出追加: >>
作用:与 > 相似,不同的是,若文件存在,则新的内容追加到文件的后面。
6.3 管道 |
管道就是用“|”连接两个命令,将前面一个命令的输出作为后面命令的输入,用于把管道左边的输出作为右边的输入。
命令 | 说明 |
---|---|
ps -ef | grep “cat” | 查看cat这个进程是否存在 |
七、网络通信
7.1 查看ip信息: ifconfig
7.2 测试网络连通: ping
命令: ping ip或者域名
命令 | 说明 |
---|---|
ping www.baidu.com | 查看之后,ctrl+c,退出查看,回到Linux命令行 |
7.3 查看端口号:netstat
命令:netstat [-an]
常用参数:
- -a或–all 显示所有连线中的Socket
- -n或–numeric 直接使用IP地址,而不通过域名服务器
- -t或–tcp 显示TCP传输协议的连线状况
- -p或–programs 显示正在使用Socket的程序识别码和程序名称。
命令 | 说明 |
---|---|
netstat -an | 查看端口号 |
netstat -an | grep 8080 | 搜索指定端口的端口号8080 |
lsof -i:80 | 查看端口占用 |
7.4 查看系统进程: ps -ef
命令:ps [-ef]
常用参数:
- -e:显示当前所有进程
- -f:显示UID,PPID,C与STIME栏位信息
表头:
- UID:拥有改程序的用户
- PID:程序的进程id
- PPID:父进程的id
- C:CPU使用的资源百分比
- STIME:系统启动时间
- TTY:登录系统的终端位置(客户端的标识)
- TIME:使用掉的CPU时间
- CMD:进程是有哪些程序启动的
命令 | 说明 |
---|---|
ps -ef | grep mysql | 查找指定的名字的进程 |
7.5 杀死进程:kill
命令:kill [-9] pid (先使用 ps -ef 查询进程的pid, 然后再使用 kill pid)
常用参数:
- -9:强制杀掉进程
7.6 重启网络
命令:service network restart
八、安装软件命令:yum
8.1 查找软件包
命令:yum search 安装包名称中的部分关键字
8.2 安装指定的软件
命令:yum install 安装包名称
8.3 删除软件包命令
命令:yum remove 安装包名称
8.4 列出所有已安装的软件包
命令:yum list installed
8.5 清除已安装软件包的下载文件
命令:yum clean all (yum命令下载的安装包都放在/var/cache/yum目录)
九、其它命令
9.1 查看当前目录:pwd
9.2 显示当前系统时间:date
9.3 命令行清屏:clear
命令:clear
快捷键:ctrl+l
9.4 防火墙相关命令
查看防火墙状态:systemctl status firewalld
让防火墙可用:systemctl enable firewalld
让防火墙不可用:systemctl disable firewalld
开启防火墙:systemctl start firewalld
禁用防火墙:systemctl stop firewalld
永久关闭防火墙:先执行systemctl stop firewalld,再执行systemctl disable firewalld
9.5 磁盘相关命令
查看磁盘总体使用情况:df -h
查看某个目录下文件的大小:du -sh 目录或文件
9.6 设置开机自启脚本
-
在
/etc/init.d
目录下创建脚本:$ cd /etc/init.d/ $ vim nginx.sh #!/bin/bash # chkconfig: 3 88 88 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf $ chmod 755 nginx.sh
-
添加到 chkconfig,开机自启动
$ chkconfig --add nginx.sh
-
其它 chkconfig 命令
# 查看 chkconfig 列表 $ chkconfig --list nginx.sh nginx.sh 0:off 1:off 2:off 3:on 4:off 5:off 6:off # 关闭开机自启 $ chkconfig nginx.sh off # 从chkconfig管理中删除nginx.sh $ chkconfig --del nginx.sh
https://www.linuxprobe.com/linux-open-sh.html
9.7 shell脚本中使用其他用户执行脚本
- 切换用户只执行一条命令的可以用:
su - user_name-c your_command
- 切换用户执行一个shell文件可以用:
su - user_name -s /bin/bash your_shell.sh
https://www.cnblogs.com/bigben0123/archive/2013/05/07/3064843.html
十、JDK8安装
下载地址:https://www.oracle.com/java/technologies/javase-downloads.html
下载Linux版本的JDK8,通过Xftp将下载好的JDK上传到Linux中,
10.1 解压
在JDK文件解压到/usr/local目录下,执行命令:
tar -zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local/
10.2 配置环境变量
首先:java -version查看JDK版本,发现系统默认是使用的OpenJDK
修改/etc目录下的profile文件,在profile文件的最后加上:
注意:如果担心文件修改错误,可以先备份文件, 执行cp 命令
export JAVA_HOME=/usr/local/jdk1.8.0_121 # jdk解压的位置,需要根据具体情况进行修改
export PATH=$JAVA_HOME/bin:$PATH # jdk中bin文件夹的位置,不需要修改
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar #jar包位置,不需要修改
10.3 执行source命令
profile文件修改完成后,执行 source /etc/profile
让上面的配置生效
source命令:通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
10.4 执行java -version检查是否配置成功
十一、Tomcat安装
tomcat官网:http://tomcat.apache.org/
下面的地址国内的镜像地址,下载速度比较快。
8.5版本:
http://124.202.164.12/files/223600000A5B3B20/mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.16/bin/apache-tomcat-8.5.16.tar.gz
9.0版本:
http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.0.M26/bin/apache-tomcat-9.0.0.M26.tar.gz
11.1 解压
使用Xftp上传 apache-tomcat-9.0.0.M26.tar到Linux系统中,解压缩:
tar -zxvf apache-tomcat-8.5.16.tar.gz -C /usr/local/
解压后的目录:
11.2 启动Tomcat
tomcat解压缩后就可以使用了,用cd命令切换到tomcat主目录下的bin
目录
在tomcat安装目录/bin下执行:./startup.sh
启动tomcat并打印启动日志,在/bin下执行:./startup.sh | tail -f tomcat安装目录/logs/catalina.out &
(加&
表示后台启动,日志文件一变化就会打印,可以不加&
,只打印一次)
11.3 关闭Tomcat
在tomcat安装目录/bin下执行:./shutdown.sh
11.4 查看日志
Tomcat启动后会在Tomcat安装目录/logs下生成日志文件
catalian.out
控制台输出的日志文件(在eclippse中的console窗口的内容),查看此文件。可以使用cat , more , less , grep , 常用查看日志 tail -f catalina.outlocalhost_access_log.2017-08-16.txt
tomcat接收到的http请求日志。tomcat服务器上运行的web应用接收的请求,请求方式(get,post),请求地址,请求参数(get请求),处理是否成功都在此文件记录。
文件命名:localhost_access_log_yyyy-MM-dd.log。
11.5 .war包部署项目
把web应用打包为 .war扩展名的文件。把xxx.war文件部署到tomcat的webapps目录,即可在tomcat中运行web应用。Tomcat会自动解压war包
注意:war包的名字即为部署完后项目的网站名。如果直接将 war 包中的内容部署到 ROOT 文件夹下,则访问不需要网站名。
十二、MySQL安装
下载地址:https://dev.mysql.com/downloads/mysql/
12.1 先检查是否安装了mariadb
检查linux是否安装了mariadb数据库,mariadb数据库是mysql的分支。是免费开源的。mariadb和msyql会有冲突。首先要检查安装了mariadb, 卸载掉。
- 检查检查命令:
yum list installed | grep mariadb
若linux中安装了mariadb数据库,先卸载掉,mariadb数据库可能与安装mysql发生冲突,
- 执行卸载命令:
yum -y remove mariadb-libs.x86_64
其中mariadb-libs.x86_64是第2步搜索出来的mariadb软件包,不同机器可能不一样, -y参数确认删除。
等待卸载完成:提示Complete ,卸载完成
12.2 解压并重命名MySQL
首先使用Xftp上传文件mysql-5.7.18-linux-glibc2.5-x86_64.tar
然后解压MySQL:
- 执行命令:
tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
将解压后的mysql-5.7.18-linux-glibc2.5-x86_64改名为mysql-5.7.18 或者 mysql,为了明确mysql的版本,建议改名为mysql-5.7.18
- 执行命令:
mv mysql-5.7.18-linux-glibc2.5-x86_64 mysql-5.7.18
12.3 创建data文件夹
data文件夹是mysql用来存放数据库文件的,数据库的表数据都放在data目录。
默认没有data目录,可以手工创建data目录,在mysql-5.7.18文件夹目录下创建一个data文件夹,切换到mysql-5.7.18目录,执行创建文件夹命令
- 在mysql-5.7.18根目录下执行命令
mkdir data
12.4 创建用户
创建mysql用户,用来执行MySQL的命令mysqld ,此命令用来初始化msyql基础信息。
执行命令:
useradd mysql
12.5 初始化MySQL
使用mysql的 mysqld 命令初始化数据库的基本信息。切换到mysql-5.7.18/bin目录下执行。
(1)生成随机的root密码
在mysql-5.7.18/bin目录下执行命令:
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql-5.7.18/data --basedir=/usr/local/mysql-5.7.18
参数说明:
- –initialize:初始化mysql,创建mysql的root, 随机生成密码。记住密码,登录msyql使用。
- –user:执行msyqld 命令的linux用户名
- –datadir:mysql数据文件的存放位置,目录位置参照本机的设置。
- –basedir:msyql安装程序的目录,目录位置参照本机的设置。
该命令执行后,会生成一个临时的mysql数据库root用户的密码,请先拷贝出来记住,后续第一次登录mysql需要使用
(2)不生成密码(密码为空)
在mysql-5.7.18/bin目录下执行命令:
./mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql-5.7.18/data --basedir=/usr/local/mysql-5.7.18
参数说明:
- –initialize-insecure:不随机生成密码。密码为空
12.6 启用安全功能
在服务器与客户机之间来回传输的所有数据进行加密。通过证书提供了身份验证机制,mysql命令程序,mysql_ssl_rsa_setup提供了开启数据加密功能,生成数字证书。
- 在mysql-5.7.18/bin目录下执行命令:
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.18/data
12.7 修改mysql安装目录的权限
mysql安装后,需要更改mysql-5.7.18整个文件夹目录权限,更改所属的用户和组,是之前创建的mysql用户。在mysql安装目录的上级(/usr/local/)位置,执行命令chown .
在mysql安装目录的上级(/usr/local/)位置,执行命令:
chown -R mysql:mysql /usr/local/mysql-5.7.18/
参数说明:
- mysql:mysql 表示文件夹的所属用户,所属组
- R : 表示递归,更改目录中所有子文件夹的权限。
查看原目录所有者
12.8 启动MySQL
启动MySQL服务,
在mysql-5.7.18/bin目录下执行命令:
./mysqld_safe &
参数说明:
- & 符号表示后台启
mysqld_safe程序会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它。用mysqld_safe程序来启动MySQL服务器的做法在unix/linux系统上很常见
确认msyql是否启动,查看进程 ,使用ps -ef | grep mysql
12.9 登录MySQL并修改密码
登录进入mysql,在mysql-5.7.18/bin目录下执行命令:
./mysql -uroot -p
参数说明:
- -u 表示使用root用户登录系统,使用第8步生成的密码。
- -p 表示使用密码登录,第一次登录要使用刚才生成的密码进行登录
第12.5步的root用户密码是临时的,要修改才能使用。所以第一次登入之后,当执行sql语句时,第一次使用将会提示修改mysql的root用户密码:
修改mysql的root用户的密码,命令语法:alter user ‘用户名’@‘主机域名或ip’ identified by ‘新密码’
在mysql中执行命令:
alter user 'root'@'localhost' identified by '123456';
修改root用户的密码成功后,再执行sql语句就没有问题了。
12.10 授权远程访问
授权远程访问,在没有授权之前只能在本机访问msyql, 远程授权就是让其他计算机通过网络访问mysql(这样远程客户端才能访问)
授权命令:grant
语法:grant all privileges on *.* to root@'%' identified by '123456';
参数:
*.*
: 的第一个*表示所有数据库名,第二个*表示所有的数据库表;root@'%'
: root表示用户名,%表示ip地址,%也可以指定具体的ip地址,比如root@localhost,root@192.168.10.129'123456'
:为要授权用户名的密码
- 在mysql中执行授权命令,并刷新权限:
grant all privileges on *.* to root@'%' identified by '123456';
flush privileges;
12.11 关闭防火墙
操作防火墙的命令:
查看防火墙状态:systemctl status firewalld
running说明防火墙正在运行,所以要禁用防火墙
禁用防火墙:systemctl stop firewalld
12.12 关闭MySQL服务
关闭,停止mysql服务器
在mysql-5.7.18/bin目录下执行:
./mysqladmin -uroot -p shutdown 输入密码关闭
12.13 其它操作
1. 乱码问题
具体表现为:查询时无中文乱码问题,写数据时中文乱码
解决:
在项目中配置数据库url的地址后面加上参数:
jdbc.url=jdbc:mysql://localhost:3306/crm?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8