1.系统路径

    1.1/表示根目录
1.2 ~表示/root,表示最高权限用户
1.3 etc 存放系统配置目录,服务型文件
1.4 home 除了root以外的所有用户都会在home下面新建一个以用户名命名的文件夹
1.4.1 用户xxx对/home/xxx文件夹下的内容有完全操作权限
1.5 root 用户root的单独文件夹
1.6 usr所有用户的安装的软件都在该文件夹,一般推荐在其中usr/local新建一个文件夹来操作
各个文件夹及其作用:
/bin 二进制可执行命令。该目录下存放着普通用户的命令
/dev 系统的设备文件,即设备的驱动程序
/home 存放用户文件的主目录,用户数据
/lib 存放着和系统运行相关的库文件
/mnt 存放临时的映射文件,通常是一些用来安装其他设备的子目录
/boot 存放启动linux的核心文件
/media 存放着可移除的设备,比如软盘,光盘

/proc 存放着用户与内核的交互信息
/sbin 系统的管理命令,这里存放的是系统管理员使用的程序
/srv 系统启动服务时可以访问的数据库目录
/tmp 临时文件,重启后自动清空
/var 存放系统产生的经常变化的文件
/etc 系统所有的配置文件都在这个目录中
/opt (option : 自由选择)主要给源码安装软件时选择的安装目录位置
/root 超级用户的目录
/selinux 主要用来加固操作系统,提高系统的安全性
/sys 管理设备文件
/usr 最大的目录,存放着应用程序和文件
/lost-found 这个目录平时是空的,当系统非正常关机而留下的“无家可归”的文件便会储存

2.常用命令

getconf LONG_BIT 查看自己的系统是32位还是64位

   2.1  pwd 打印工作路径,当前所在文件夹quan全路径
2.2 cd 进入文件夹
2.2.1 cd ..返回上一级
2.2.2 cd /路径 直接从根目录开始
2.2.3 cd -返回上一次所在的目录
2.3 mkdir 新建空文件夹
常用选项:
-p –parents 可以是一个路径名称。此时若路竞争的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
-m –mode=MODE 将新建目录的存取权限设置为MODE,存取权限用给定的八进制数字表示。

2.4 ls 文件平铺展示 ll 文件详细展示
常用选项:
-a :列出目录下的所有文件,包括以 . 开头的隐含文件。
-d :将目录像文件一样显示,而不是显示其他文件。
-i :输出文件的i节点的索引信息。
-k :以k字节的形式表示文件的大小。
-l :列出文件的详细信息。
-r : 按反次序列出文件

2.5 vi 和 vim编辑文件,如果没有就新建一个
2.5.1 vi 普通编辑 vim 高级编辑(带有颜色)
2.5.2 进入到编辑器后是非可编辑状态,点击i或insert启用编辑,点击esc退出编辑状态
2.5.3 输入:wq 表示保存退出。:q表示只退出 不保存。:q!表示强制退出
2.6 touch 创建一个空文件
2.7cat 查看文件全部内容
2.8 cat 命令之后 输入 head【-n】文件名,表示查看前n行内容,不输入n默认查看前十行
2.9 tai命令和head类似,表示后n行或后10行
2.9.1 taif表示动态显示文件后n行内容(实时显示文件新加入的内容),常用于显示tomcat日志文件功能

2.10 echo '内容' >>文件名 向文件中添加一些内容
2.11 ifconfig 打印网卡信息,查看ip
2.12 reboot 重启
2.13 tar zxvf 文件名
格式:tar [-cxtzjvf] 文件与目录… 参数
功能:打包/解包,不打开它,直接看内容。
-c 建立一个压缩文件的参数指令(create的意思)。
-x 解开一个压缩文件的参数指令。
-t 查看tarfile里面的文件。
-z 是否同时具有gzip的属性?亦即是否需要用gzip压缩?
-j 是否同时具有bzip的属性?亦即是否需要用bzip压缩?
-v 压缩的过程中显示文件。这个常用,不建议用在背景执行过程。
-f 使用档名,请留意,在f之后要立即接档名,不要再加参数。
-C 解压到指定目录。
安装命令 sudo yum -y install lrzsz

2.14 cp【-r】 原文件 复制文件 (-r)表示复制文件夹
2.15 Ctrl +c 中断
2.16 mv 原文件 新文件 剪切,并有重命名功能(剪切文件夹不用加-r)
2.17 rm【-f】【-r】 删除,会弹出确认命令,y确定,f不确定 (-f)表示强制删除,不会提示
(-r)表示删除文件夹,如果删除文件夹又不想确认,用(-rf)
2.18 clear 清屏
2.19 find 路径 -name 文件名 (按照名字查找)
2.20 zip/unzip命令
格式:zip 压缩文件.zip 目录或文件
zip -r filename.zip filesdir
unzip filename.zip
功能:将目录或文件压缩成zip格式。
常用选项:
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
安装命令yum install -y unzip zip

2.21 rz命令,上传文件
2.22 sz命令 下载文件

3. 不同用户登录问题

  3.1普通用户

Linux_数据库

3.2root用户

Linux_表名_02

4.支持两种路径写法

 1.全路径:以/开头
2.相对路径:

5.JDK的配置安装

1.把JDK上传到服务器
2.解压压缩包(#tar zxvf 文件名)
3.把解压后的文件复制到/usr/local/jdk下(# cp -r 文件名 /usr/local/jdk)
4.配置环境变量,执行命令
4.1#vim /etc/profile
4.2修改文件中内容
#export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
4.2.1分隔使用的是冒号$变量名表示引用
4.2.2export 表示添加或修改变量
4.3解析文件(# source /etc/profile)或重启服务器
4.4验证是否配置成功(java -version)

tomcat的配置安装

   1.把tomcat压缩包上传到服务器
2.解压tomcat(#tar zxvf 文件名)
3.解压后的压缩包复制到/usr/local/tomcat # cp -r apache-tomcat-9.0.27 /usr/local/tomcat
4.配置环境变量
4.1# vim /etc/profile
4.2 添加内容
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
5.放行8080端口
5.1#vim /etc/sysconfig/iptables
5.2把包含22 的一行复制,把22转换成8080
5.2.1 8080:9000 从8080到9000全放行
5.3重启服务
#systemctl restart iptables.service
5.3.1 restart 重启
5.3.2 start 启动
5.3.3 stop停止
6.启动 tomcat,进入tomcat/bin 目录下
#./startup.sh
#./startup.sh & tailf /usr/local/logs/catalina.out(启动tomcat并且打印)

mysql的安装

  1.把mysql压缩包传输到服务器
2.解压压缩包
3.把压缩包复制到/usr/local/mysql
4.添加用户组 命名为mysql(groupadd mysql)
4.1创建用户,mysql 指定群组为mysql(useradd -r -g mysql mysql)
4.1.1 -r是用户名 -g是用户组名 后面顺序一样
5.所有命令必须保证已经在mysql目录中)
5.1变更mysql用户组的有操作当前文件夹的权限(命令:chgrp -R mysql .)最后有个点
5.2变更mysql用户具有操作本级目录的权限(命令:chown -R mysql .)最后也有个点
5.1 和5.2可合并成一条命令(chown -R mysql:mysql ./)
6.mysql初始化
6.1判断/etc/my.cnf是否存在,如果存在就删除
命令(ls /etc/my.cnf)
6.2初始化数据库 ./scripts/mysql_install_db --user=mysql
注意:5.7版本用./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
7.修改配置文件
7.1复制my.cnf文件(# cp support-files/my-default.cnf /etc/my.cnf)
7.2复制启动文件(cp support-files/mysql.server /etc/rc.d/init.d/mysql)
8.如果输入mysql进入到mysql编辑模式(mysql -u root -p)会提示输入密码
**先执行命令 service mysql start 让mysql启动**
8.1如果提示没有mysql服务,添加软连接(ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql )
9.修改msyql用户名和密码和修改访问host
(忘记root密码如何修改密码)
{进入/etc/my.cnf 在[mysql]下添加skip-grant-tables 启动安全模式
命令 vi /etc/my.cnf}
9.1进入mysql
9.2使用mysql数据库 use mysql;
9.3修改密码
update user set password=password("新密码") where user='用户名';
5.7使用update user set authentication_string=password('123') where user='root';
9.4刷新权限FLUSH PRIVILEGES;
完成
10.修改访问host
在Windows用Navicat访问服务器mysql访问不了,一是因为端口3306没有放开,二是因为mysql没有允许用IP地址访问。更改这两个设置即可。
9.1 进入mysql编辑 mysql -u root -p然后use mysql;
9.2执行命令 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'wxw123456789' WITH GRANT OPTION;
9.3打开端口,在/etc/sysconfig/iptables中把22端口的命令复制,写成3306
9.4重启iptables 服务

数据库命令

1.连接数据库
命令: use <数据库名>

2.查看表的引擎类型等状态信息
SHOW TABLE STATUS [FROMdb_name] [LIKE 'pattern']

3.当前数据库包含的表信息
show tables;

4.查看当前使用的数据库
select database();

5.删除数据库
命令:drop database <数据库名>;

6.显示所有的数据库
命令:show databases;(注意:最后有个s)

7.创建数据库
命令:create database <数据库名>;

8.建立表
create table <表名> (<字段名1> <类型1> [,..<字段名n> <类型n>]);
补充:根据已有的表创建新表。
8.1 create table tab_new like tab_old; (只有表结构)
8.2 create table tab_new as select * from tab_old; (既包含表结构,又包含表数据)

9.获取表结构
命令:
desc 表名;
or
show columns from 表名;

命令:drop table <表名>;
11.更改表名
命令:rename table 原表名 to 新表名;

12.在表中增加字段
命令:alter table 表名 add 字段 类型 其他;
例如:alter table myclass add passtest int(4) default '0';

13.插入数据
命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )];
例如:
insert into myclass (id, name, sex, degree, passtest) values(1, 'david', 1, 80.56, 78);
insert into myclass values(2, 'sandy', 0, 100, 90);
insert into myclass (id, name, sex, degree) values(3, 'renee', 0, 90.34);

14.导出整个数据库
命令:mysqldump -u 用户名 -p 数据库名 > 导出的文件名

15.导出一个表
命令:mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

16.导出一个数据库结构
命令:mysqldump -u root -p -d --add-drop-table test > test_db.sql
-d 没有数据 --add-drop-table 在每个create 语句之前增加一个drop table

17.常用source 命令
source "路径名"+/mytest_emp_dept.sql

show open tables;
能够查看当前有那些表是打开的。In_use列表示有多少线程正在使用某张表,Name_locked表示表名是否被锁,这一般发生在Drop或Rename命令操作这张表时。
所以这条命令不能帮助解答我们常见的问题:当前某张表是否有死锁,谁拥有表上的这个锁等。
show open tables from database;
show OPEN TABLES where In_use > 0;

SELECT * FROM information_schema.`PROCESSLIST`;
添加索引
ALTER TABLE t_cms_home ADD INDEX IDX_SID(C_SID);

查看表索引索引
show INDEX from t_cms_home;
show keys from t_u_basic;

SHOW PROCESSLIST显示哪些线程正在运行
show processlist;只列出前100条,如果想全列出请使用show full processlist;

查看服务器状态。
show status like '%lock%';
日志:二进制文件记录
show variables like 'log_bin';

记录二进制数据的文件具体信息
show master status;

explain命令显示了mysql如何使用索引来处理select语句以及连接表
EXPLAIN的使用方法:
在select语句前加上explain就可以了。

显示系统变量的名称和值
show variables;

显示服务器所支持的不同权限
show privileges;

显示create database 语句是否能够创建指定的数据库
show create database database_name;

显示create database 语句是否能够创建指定的数据表
show create table table_name;

显示安装以后可用的存储引擎和默认引擎。
show engies;

显示innoDB存储引擎的状态
show innodb status;

显示BDB存储引擎的日志
show logs;

显示最后一个执行的语句所产生的错误、警告和通知
show warnings;

只显示最后一个执行语句所产生的错误
show errors

18 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;

19.说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
insert into b(a, b, c) select d,e,f from b in ‘具体数据库' where 条件
例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..

20、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 数值1 and 数值2

21、说明:一条sql 语句搞定数据库分页
select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段
desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

22、
select * from table1, table2 where *= --------
左外部连接, table1 中有的而 table2 中没有得以 null表示 =* -------- 右外部连接

23、delete from table_name where Stockid = 3
truncate table_name ----------- 删除表中所有行,仍保持表的完整性
drop table table_name --------------- 完全删除表

CentOS7在线安装mysql5.7

• 先下载 mysql源安装包

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

1.png

• 安装mysql源

yum -y localinstall mysql57-community-release-el7-11.noarch.rpm

2.png

• 检查源是否安装成功

sudo yum repolist enabled | grep “mysql.-community.”

3.png

• 安装 MySQL(这个过程可能有点久,请耐心等待)

sudo yum -y install mysql-community-server

4.png

• 启动 MySQL

sudo systemctl start mysqld

• 检查 MySQL 的启动状态

sudo systemctl status mysqld

5.png

• 此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码

• 编辑etc目录下的my.cnf文件

6.png

• 按a 或者 i进入编辑状态

7.png

• 在文档内搜索mysqld定位到[mysqld]文本段,在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程

8.png

• 按Esc,:wq保存退出

• 接下来我们需要重启MySQL:

service mysqld restart

9.png

• 输入:mysql进入到数据库

10.png

• 设置密码

update mysql.user set authentication_string=password(‘你的密码’) where user=‘root’ ;

alter user ‘root’@‘localhost’ identified by ‘youpassword’; 赋予权限

11.png

• 刷新

flush privileges;

image.png

• 退出mysql(Ctrl+z)

• 编辑 /etc/my.cnf,把skip-grant-tables去掉,保存退出

• 重启数据库

systemctl restart mysqld.service

13.png

• 再次登录(输入你修改后的密码),终于解决问题!

14.png

二、在本地远程连接mysql

• 在windows-cmd窗口ping linux IP地址。出现如下说明可以

15.png

• 在linux,mysql窗口查看mysql的端口

show variables like ‘%port%’;(如果没有,请跳过这个步骤)

16.png

• 这个其实与validate_password_policy的值有关。

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。

必须修改两个全局参数:

修改validate_password_policy参数的值

set global validate_password_policy=0;

validate_password_length(密码长度)参数默认为8,我们修改为1

set global validate_password_length=1;

18.png

• 完成之后再次执行修改密码语句即可成功

alter user ‘root’@‘localhost’ identified by ‘123456’;

• 再次show variables like ‘%port%’;成功查看

19.png

• 你想root使用123456从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;

• 如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON . TO ‘root’@‘192.168.1.3’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

20.png

• 连接本地的mysql

21.png

• 查看3306端口是否开启,如果没有开启

firewall-cmd --zone=public --query-port=3306/tcp

22.png

• 打开防火墙3306远程端口

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent

sudo firewall-cmd --reload

23.png

*再次连接本地的mysql

24.png

配置mysql开机启动

vi /etc/rc.local

在文件中添加 service mysqld start即可

• 重启虚拟机

reboot

• 查看3306端口是否开启,如果没有开启

firewall-cmd --zone=public --query-port=3306/tcp

• mysql开机启动设置成功

防火墙的一些操作命令:

*查看防火墙端口开放的情况

firewall-cmd --zone=public --list-ports

• 防火墙随系统开启启动 :

systemctl enable firewalld.service

• 执行启动防火墙命令:

service firewalld start

• 查看防火墙状态:

systemctl status firewalld.service

• 执行开机禁用防火墙自启命令 :

systemctl disable firewalld.service