cenos7 下yun安装mysql5.7 以及jdk 1.7

 因为项目需要  需要用到mysql5.7 便在网上找安装mysql5.7的方法 。。。。    

之前都是下载了传到虚拟机下安装  于是这次 便尝试其他方法


如果是直接在Linux中下载,则使用:

wget  http://dev.mysql.com/get/mysql57-community-release-el7-5.noarch.rpm  

以为是安装的最小化的cenos7 故wget命令提示找不到 于是( yum -y install wget)

本地安装YUM源

 yum localinstall mysql57-community-release-el7-8.noarch.rpm 

3、安装MySQL

# yum install mysql-community-server

4、启动MySQL并加入开机启动
[plain]  view plain  copy
  1. # systemctl start mysqld  
  2. # systemctl enable mysqld   
  3. # systemctl daemon-reload  

4.启动MySQL服务

  systemctl start mysqld.service

MySQL安装完成之后,在/var/log/mysqld.log文件中root用户生成了一个随机的默认密码。可以通过以下方式查看,之后可登陆MySQL进行修改:

#grep 'temporary password' /var/log/mysqld.log


 登录 mysql -uroot -p   

 然后需要马上修改密码 You must reset your password using ALTER USER statement before executing this statement.

这里需要注意:MySQL5.7默认的密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误。   

 alter user 'root'@'localhost' identified by 'xxxxxxx';  

flush privileges;

6、添加远程登陆用户

      在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库。缺省状态下,mysql的用户没有远程访问的权限。

      以下语句赋予root用户从任意主机访问MySQL服务器:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;

注:'%'代表任意地址,也可以指定IP

提示 Query OK, 0 rows affected, 1 warning (0.00 sec)

下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了。

一旦开启 only_full_group_by ,感觉,group by 将变成和 distinct 一样,只能获取受到其影响的字段信息,无法和其他未受其影响的字段共存,这样,group by 的功能将变得十分狭窄了

only_full_group_by 模式开启比较好。

因为在 mysql 中有一个函数: any_value(field) 允许,非分组字段的出现(和关闭 only_full_group_by 模式有相同效果)。

具体出错提示:

[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

1、查看sql_mode

01
select @@global.sql_mode;

查询出来的值为:

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

2、去掉ONLY_FULL_GROUP_BY,重新设置值。

01
set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

3、上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行:

1
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';


先查看默认的sql_mode

   # set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
#select @@global.sql_mode;



以前都用service命令管理mysql,现在liunx系统升级了,又有了新的更好的方法管理系统进程,现在我们来学习如何用systemctl命令管理mysql。

Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。 
Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。 
在Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。Systemd通常是所有其它守护进程的父进程,但并非总是如此

注意: 因为项目转移时 , 

mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by


sql_mode为了统一  就设置了之前运维弄的那种sql mode   

(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)  新安装的是这个(默认的sessionmode 与global.sql_mode

运维弄的是这个   :   STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION、

于是尝试改变sql_mode;

set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION '; 

set @@SESSION.sql_mode ='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION '; 


注意:我们这里设置的sql_mode都是session级别的。另外,可以直接修改my.ini文件,找到sql_mode,然后设置新的模式即可!

例如: 

    vi /etc/my.cnf

在[mysqld]下面添加如下列:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES



于是改变了数据库的sqlmode 

启动mysql服务

systemctl start mysqld.service
  • 1

停止mysql服务

systemctl stop mysqld.service
  • 1

重启mysql服务

systemctl restart mysqld.service
  • 1

查看mysql服务当前状态

systemctl status mysqld.service

3306端口放行 
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
将该设置添加到防火墙的规则中

/etc/rc.d/init.d/iptables save


忘记密码解决  

# 最简单最粗暴的方法 找到mysql的配置文件直接编辑
vim /etc/my.cnf
  # 在 [mysqld] 中加上一行跳过权限限制
skip- grant -tables
# 保存退出 重启mysql服务
service mysqld restart
# 用户登录
mysql -uroot -p (直接点击回车,密码为空)
# 选择数据库
use mysql;
# 但是在5.7版本中不存在 password 字段,所有我们要用以下修改进行重置密码
update user set authentication_string= password ( 'new password' ) where user = 'root' ;
# 刷新权限
flush privileges ;
# 退出mysql
quit;
# 将最开始修改的配置文件my.cnf中的skip- grant -tables删除 重启mysql
service mysqld restart

1.安装jdk
a.检测是否安装了jdk  运行java -version
b.若有需要将其卸载
c.查看安装那些jdk
rpm -qa | grep java
d.卸载
先卸载 openjdk 1.7
rpm -e --nodeps 卸载的包
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.i686
再卸载 openjdk 1.6
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686
e.安装jdk
上传jdk 通过ftp软件上传(上传到root目录下)
在 /usr/local创建一个 java目录
mkdir java
将上传的jdk复制到 java目录下
cp /root/jdk.xxxxx.tar /usr/local/java
将其解压
tar -xvf jdk.xxx.tar
f.安装依赖
yum install glibc.i686
g.配置环境变量
编辑  vi /etc/profile
在文件最后添加一下信息
#set java environment
JAVA_HOME=/usr/local/java/jdk1.7.0_72
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
保存退出 (wq)
source /etc/profile  使更改的配置立即生效


输入java -version 显示以下表明成功了   java -version


····Java(TM) SE Runtime Environment (build 1.7.0_72-b14)

···Java HotSpot(TM) Client VM (build 24.72-b04, mixed mode)




3.安装tomcat
a.在/usr/local/ 创建tomcat目录
b.复制tomcat 到 /usr/local/tomcat
c.解压tomcat
d.启动tomcat 进入 bin
方式1:
sh startup.sh
方式2:
./startup.sh
e.开启端口号 8080
8080端口放行 
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
将该设置添加到防火墙的规则中
/etc/rc.d/init.d/iptables save

注意:
查看日志文件
tail -f logs/catalina.out
退出 ctrl+c


二、firewalld

 

Centos7默认安装了firewalld,如果没有安装的话,可以使用 yum install firewalld firewalld-config进行安装。

1.启动防火墙

systemctl start firewalld 

2.禁用防火墙

systemctl stop firewalld

3.设置开机启动

systemctl enable firewalld

4.停止并禁用开机启动

sytemctl disable firewalld

5.重启防火墙

 

firewall-cmd --reload

 

6.查看状态

systemctl status firewalld或者 firewall-cmd --state

7.查看版本

firewall-cmd --version

8.查看帮助

firewall-cmd --help

9.查看区域信息

firewall-cmd --get-active-zones

10.查看指定接口所属区域信息

firewall-cmd --get-zone-of-interface=eth0

11.拒绝所有包

firewall-cmd --panic-on

12.取消拒绝状态

firewall-cmd --panic-off

13.查看是否拒绝

firewall-cmd --query-panic

14.将接口添加到区域(默认接口都在public)

firewall-cmd --zone=public --add-interface=eth0(永久生效再加上 --permanent 然后reload防火墙)

15.设置默认接口区域

firewall-cmd --set-default-zone=public(立即生效,无需重启)

16.更新防火墙规则

firewall-cmd --reloadfirewall-cmd --complete-reload(两者的区别就是第一个无需断开连接,就是firewalld特性之一动态 添加规则,第二个需要断开连接,类似重启服务)

17.查看指定区域所有打开的端口

 

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

18.在指定区域打开端口(记得重启防火墙)

 

firewall-cmd --zone=public --add-port=80/tcp(永久生效再加上 --permanent)

 

 

说明:
–zone 作用域
–add-port=8080/tcp 添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值