Linux操作系统学习03

安装配置mysql

想了想,还是以日记的形式写播客吧

首先打开了我们亲爱的虚拟机,然后在网上查教程,第一个命令应该是查看你的Linux系统是否以及安装了mysql:rpm -e mysql请添加图片描述

看起来好像没有安装,然后调了一篇文章开始,先是看了一下版本:

Linux操作系统学习03_第1张图片

然后开始安装:yum install -y mysql-server mysql mysql-deveLinux操作系统学习03_第2张图片

Linux操作系统学习03_第3张图片

安装完才发现,咦,怎么是mariadb?这是啥玩意?我不是要安装mysql吗?然后查阅资料才发现,原来是“阉割版”mysql…哎,醉了,开始卸载…(刚开始安装就卸载…)

卸载的命令也是网上奇奇怪怪,莫i一篇文章说先看看电脑是不是安装了mariadb?用这个指令:grep mariadb请添加图片描述

一看确实有!那就一次执行下面命令Linux操作系统学习03_第4张图片

然后终于删除了

Linux操作系统学习03_第5张图片

这里说一下自己第一次使用yum remove mariabd这个命令是没有删除干净的!它并没有删除mariabd-libs,所以在使用了这个命令以后还需要使用上面的三个命令才可以删除彻底!

然后开始正式安装MySQL,按照博客所说我是应该先下载rpm(红帽子软件管理器)然后安装MYSQL

1:在官网下载对应版本的rpm文件,如:

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

2:安装MySQL源,使用sudo rpm-Uvh命令安装,选择上面下载的文件,如:

sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

3:安装MySQL

sudo yum install mysql-community-server

4:启动MySQL

sudo systemctl start mysqld.service


4.启动和停止
启动MySQL
sudo systemctl start mysqld.service

查看状态
sudo systemctl status mysqld.service

停止MySQL
sudo systemctl stop mysqld.service

重启MySQL
sudo systemctl restart mysqld.service

Linux操作系统学习03_第6张图片
Linux操作系统学习03_第7张图片

终于安装完成了!!

然后就开始了我很头疼的地方,刚开始安装好他会默认给你一个密码,然后那个密码很复杂,你需要通过sudo grep 'temporary password' /var/log/mysqld.log这个命令来查看密码,请添加图片描述

然后mysql -u root -p登陆输入刚刚的密码进入MySQL,然后让我傻眼的情况来了,我们都知道MySQL安装好第一步是需要改密码对吧?合情合理,可是当我使用这个命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

我要把密码改成123456,结果呢?报错了!

请添加图片描述

你看这个报错,他的意思是你这个密码安全性太低了,需要换个复杂点的,然后我开始网上查出现这种报错该怎么办。答案是修改它那个密码复杂度控制的文件

Linux操作系统学习03_第8张图片

查看MySQL密码策略

在MySQL命令行中输入:
select @@validate_password_policy;

显示:

+----------------------------+
| @@validate_password_policy |
+----------------------------+
| MEDIUM                     |
+----------------------------+
1 row in set (0.00 sec)

·······························································
在MySQL命令行中输入:
SHOW VARIABLES LIKE 'validate_password%';

显示:

+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.00 sec)

参数说明:

validate_password_dictionary_file:插件用于验证密码强度的字典文件路径。

validate_password_length:密码最小长度,参数默认为8,它有最小值的限制

最小值为:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
validate_password_mixed_case_count:密码至少要包含的小写字母个数和大写字母个数。

validate_password_number_count:密码至少要包含的数字个数。

validate_password_policy:密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。


然后我照做对吧,结果呢,又报错了!(气鼓鼓)

请添加图片描述

他这次报错是You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘mysql> select @@validate_password_policy’ at line 1

然后我再继续查这个报错怎么解决…原来是用错了命令,这个是MySQL5的命令,我安装的是MySQL8,好好好那我换个命令去试试,查了会发现是自己上面那个show variables大写了。。。不好意思,前面说的那个关于版本问题的不是这里,这里就是大小写错了,我看的网上的文章,哎,博主就写错了嘛,那个MySQL5.7.6前后版本是在修改密码的时候有了不同:

Linux操作系统学习03_第9张图片

继续回到刚刚,这次输对了结果又出来了新的问题:You must reset your password using ALTER USER statement before executing this statement

通过自己的搜索知道了这个报错的原因,就是MySQL在刚刚安装好后没有设置新密码之前是不可以进行任何命令操作的,你无论输入上面都会报刚刚这个错误,然后我进入了短暂的蒙圈:都怪第一个博主文章写的乱!首先你安装好了MySQL需要使用自动生成的密码登陆,然后修改密码的话因为要求太多修改不了,那就修改MySQL对密码格式的要求,但是你不修改密码就无法执行修改密码格式的命令。。。。这不就是在套娃嘛??哎,搞不懂第一个博主怎么直接修改了密码格式然后修改密码的…自己又开始摸索摸索,终于找了好多篇博文找到了解决方案,那就是先修改一个自己可以记得住的符合规范的密码!(我居然第一下没想到,我是憨批),同时也悲哀网上好多文章都说不清,都在解释其他的东西…

言归正传,这次我通过修改密码的指令先把密码改成:Root_12root

请添加图片描述

然后开始继续上面的操作修改密码格式,这里也有一个MySQL5和8的区别:

Linux操作系统学习03_第10张图片


set global validate_password.policy=0;
set global validate_password.length=1;

接着来开始远程连接:首先使用show databases;查看Linux操作系统学习03_第11张图片

然后选择这个表请添加图片描述

执行select user,host from user;选中这个用户

Linux操作系统学习03_第12张图片

自己在这里第二次配置了,之前弄错好多次,多亏了拍照,我的理解就是,现在我们看到在这个表中。root用户后面的作用范围是host,是只有本地才可以,所以我们需要将后面的这个作用范围改成全局:

update user set host='%' where user='root';

然后再次选择:select user,host from user;Linux操作系统学习03_第13张图片

我们发现root后面已经变啦

然后连接一下:

Linux操作系统学习03_第14张图片

成功!(待解决的疑问:mysql8报错:ERROR 1410 (42000): You are not allowed to create a user with GRANT,哎做了好长时间忘了这个怎么解决的了,应该就是在设置用户后面的范围的时候遇到的…)

我是分割线!!!!!!下面是配置tomcat!(现在是凌晨1.45)

哎真的累死我了,来我慢慢梳理一下我的配置,首先,在网上开始了查看教程,有好多通过命令去直接下载tomcat压缩包的指令,但是我用了好多个都是连接不上,请添加图片描述

我还以为是我没网络,ping了百度也有效果呀:Linux操作系统学习03_第15张图片

然后就不是找不到网站就是证书过期了,害,弄了半天,然后发现有的博客是通过远程连接工具上传的资料,那么自己也先通过这种方法哇,我使用了xftp这个软件Linux操作系统学习03_第16张图片

然后将tomcat压缩包传到了user/loacl/下面Linux操作系统学习03_第17张图片

当时不是直接传的文件,我是先传的压缩包,然后使用的Linux命令解压的,这里分享一下解压命令:

解压

tar –xvf file.tar  解压 tar包
tar -xzvf file.tar.gz 解压tar.gz
tar -xjvf file.tar.bz2   解压 tar.bz2
tar –xZvf file.tar.Z   解压tar.Z
unrar e file.rar 解压rar
unzip file.zip 解压zip

当时用到的是第二个:tar -xzvf file.tar.gz 解压tar.gz,因为官网下载的就是tar.gz格式

Linux操作系统学习03_第18张图片
Linux操作系统学习03_第19张图片

然后我就开始找自己的java在哪里,(也就是这里有一个大坑导致我后面一直在解决问题!!!),因为centos它自带一个java,而且存放的地方很诡异,而且他自带1.7和1.8!!而且他自带的那个jdk有很大的问题!在usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64/jre/bin/java这里,Linux操作系统学习03_第20张图片 你看这里有一堆,然后我们该配置环境变量了,哎就是这里气死我了!!!,给你们看他自带的那个有一个叫java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64,还有一个叫jre-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64,你以为我是没有分清除他两区别吗?nonono,不是的,给你看两个图:

Linux操作系统学习03_第21张图片

Linux操作系统学习03_第22张图片

java开头那个打开以后不是bin和lib,他还有一层jre文件夹,这就为我后续找不到文件埋下了伏笔我还一直傻傻的去配置防火墙!!!我起码配置了50次防火墙各种端口包括它本身的开关…

好先不说了我们继续,首先我们需要配置java的环境变量然后启动tomcat,配置环境变量的文章也是一堆都说不清楚害!气死我了,有的说直接在tomcat里面的startup里面配置有的说在vi + /etc/sysconfig/iptables里面配置还有在vim /etc/profile这样的,其实应该是都可以,只不过一开始以为自己的java路径导致我第一次使用在tomcat启动文件中配置一直失败!!,害得我以为这样是错的(误会人家了),然后我就选择了在vim /etc/profile里面添加这样的语句:

export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

使配置生效,重新启动tomcat即可
source /etc/profile 刷新状态

然后开始启动tomcat:/usr/local/tomcat/bin/startup.sh你猜这么着?权限不够!请添加图片描述

我当时心里一个崩溃,我可是管理员啊,我权限都不够了???看来#这个字符不是万能的呀,然后这个方法帮了我,就是设置777开放权限:

Linux操作系统学习03_第23张图片

看来自己对chmod还是不熟悉,之前的「粘滞权限」这个任务没擦干净屁股,害,该来的总会来的,当时就没有太理解这个~~~~

Linux操作系统学习03_第24张图片
Linux操作系统学习03_第25张图片

chmod命令使用数字修改文件权限
Linux 系统中,文件的基本权限由 9 个字符组成,以 rwxrw-r-x 为例,我们可以使用数字来代表各个权限,各个权限与数字的对应关系如下:
r --> 4
w --> 2
x --> 1

由于这 9 个字符分属 3 类用户,因此每种用户身份包含 3 个权限(r、w、x),通过将 3 个权限对应的数字累加,最终得到的值即可作为每种用户所具有的权限。

拿 rwxrw-r-x 来说,所有者、所属组和其他人分别对应的权限值为:
所有者 = rwx = 4+2+1 = 7
所属组 = rw- = 4+2 = 6
其他人 = r-x = 4+1 = 5

所以,此权限对应的权限值就是 765。

使用数字修改文件权限的 chmod 命令基本格式为:
[root@localhost ~]# chmod [-R] 权限值 文件名

-R(注意是大写)选项表示连同子目录中的所有文件,也都修改设定的权限。

例如,使用如下命令,即可完成对 .bashrc 目录文件的权限修改:
[root@localhost ~]# ls -al .bashrc
-rw-r--r--. 1 root root 176 Sep 22 2004 .bashrc
[root@localhost ~]# chmod 777 .bashrc
[root@localhost ~]# ls -al .bashrc
-rwxrwxrwx. 1 root root 176 Sep 22 2004 .bashrc

好了我们直接设置成777让大家都可以操作哇!(反正也就我一个哈哈)Linux操作系统学习03_第26张图片

你看这不就跑起来啦?当时觉得已经OK啦,然而。。。。自己访问不到外网访问不到,然后就是无休止的防火墙命令的研究(忽略了是java本身环境有问题)Linux操作系统学习03_第27张图片

一系列防火墙的操作和端口的操作:

# 查看监听的端口
netstat -lnpt

# 查询8080端口是否开放
firewall-cmd --query-port=8080/tcp

# 开放8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent

# 移除8080端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent

# 配置立即生效
firewall-cmd --reload

····································································································

查看防火墙状态: systemctl status firewalld.service

绿的running表示防火墙开启

启动:systemctl start firewalld.service

执行关闭命令: systemctl stop firewalld.service

再次执行查看防火墙命令:systemctl status firewalld.service

执行开机禁用防火墙自启命令 : systemctl disable firewalld.service

防火墙随系统开启启动 : systemctl enable firewalld.service


····································································································


#开放8080端口
firewall-cmd --add-port=8080/tcp --permanent 
 
#输入命令重启防火墙;
systemctl restart firewalld.service
 
#重新加载防火墙规则
firewall-cmd --reload


········································································

查找tomcat的进程

ps -ef|grep tomcat

就上述的一些操作搞了我无数遍,知道为什么我不想是环境配置错误的原因嘛,是以为这个tomcat启动成功了!但是是一种假象!,我觉得启动成功就不会又环境的问题了,导致自己陷入了死胡同!!Linux操作系统学习03_第28张图片

看自己一堆尝试,他总是显示拒绝连接,然后网上一搜拒绝连接绝对是防火墙有关的回答,本来我都防火墙就没事!!!就是环境的错误,哎,真的超级崩溃当时,我多少次尝试已经发现自己防火墙就都放通了啊!!!

直到我尝试关掉tomcat服务器,一切才出现了转机!有句话感觉说的很对:当新的报错出现的时候,你就距离真相更加进了一步!我出现了新的报错:请添加图片描述

看,这个报错说我就没有这个文件或目录!然后我根据这个报错找到了/usr/local/tomcat/bin/catalina.sh:行531:

Linux操作系统学习03_第29张图片

就是这里!第一行,那个地方没有找到,那说明就是环境没有找到呀!!然后我开始找自己的系统中java目录,这里感谢一位博主的好方法:

1. 终端输入:

which java
输出为:

/usr/bin/java
2. 终端输入:

ls -lr /usr/bin/java
输出为:

/usr/bin/java -> 
3. 终端输入

ls -lrt /etc/alternatives/java
输出:

/etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre/bin/java

然后我就接上了上面说的,发现了那个小细节,就是因为java那个文件夹打开以后第一个子目录不是lib和bin而是jre!!Linux操作系统学习03_第30张图片

黎明的到来!成功开启和关闭Linux操作系统学习03_第31张图片Linux操作系统学习03_第32张图片

日后还需要多看看这篇博客,系统自带的open-java到底是什么,等等等等,还有很多需要我去了解!!!

:今天完成了子任务三的一部分,明天补齐子任务三开启子任务四!加油!!

你可能感兴趣的:(Linux学习,1024程序员节)