前言:推荐使用yum指令自动安装JDK、Tomcat以及MariaDB数据库(Mysql的分支),它可以让你免受配置各种环境变量之苦,安装完直接就可以用,无需配置。
开发环境:Centos7.7 mininal
安装版本:JDK1.8+Mysql 5.7+Tomcat 8.5
一、yum源安装JDK1.8
Centos7中安装Java环境,在安装前先查看有无安装过Java环境。直接运行java 命令,会提示命令未找到,则是没有安装过java环境。
1.1、查看yum源的java包
yum list java*
1.2、安装jdk1.8
yum -y install java-1.8.0-openjdk
安装完成后会在最下面显示完成
1.3、查看版本,检测安装是否成功
java -version
若出现上述提示表示JDK已经成功安装啦!
1.4、输入“java -verbose”用来查看jdk的安装路径
1.5、查看Java Home路径
使用readlink命令可以查看当前系统链接的目标文件,从而找到JavaHome的路径。
readlink -f $(which java) | sed 's:/bin/java::'
运行以上命令可以得到JavaHome的路径,例如:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.372.b07-1.el7_9.x86_64/jre
二、yum源安装Mysql5.7
现在CentOS上默认是没有Mysql的yum源,yum源默认的是 MariaDB。所以我们需要自己先配置Mysql yum源。
MariaDB闲谈:
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因是:自从Sun被Oracle收购以后,原来Sun旗下的MySQL的所有权也落入Oracle的手中。MySQL未来存在闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
过去一年中,大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是MySQL的创始人Michael Widenius另起炉灶开发了完全兼容MySQL的数据库系统。它是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。Centos7的发行版默认就包含了MariaDB。
首先检查 MySQL 是否已安装
yum list installed | grep mysql
//如果有的话 就全部卸载
yum -y remove 数据库名称
2.1、更换yum源安装Mysql5.7
a、下载并安装MySQL5.7的yum源
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum localinstall -y mysql57-community-release-el7-7.noarch.rpm
b、使用清华源替换官方源
cp /etc/yum.repos.d/mysql-community.repo /etc/yum.repos.d/mysql-community.repo.bak
sed -i 's#http://repo.mysql.com/#https://mirrors.tuna.tsinghua.edu.cn/mysql/#g' /etc/yum.repos.d/mysql-community.repo
sed -i 's#/el/7/#-el7-#g' /etc/yum.repos.d/mysql-community.repo
yum makecache
c、查看有哪些版本的mysql
yum repolist all | grep mysql
d、yum安装Mysql
安装GPG 公钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
安装mysql5.7
yum install -y mysql-community-server
至此MySQL就安装完成了
查看MySQL安装版本
mysql -V
2.2、启动Mysql,验证是否安装成功
要知道在centos7中,没有了service命令,都是使用systemctl命令。(centos6中,使用service mysqld start)
systemctl start mysqld
注意启动的时候是start mysqld而不是mysqlsystemctl status mysqld
查看MySQLl运行状态systemctl enable mysqld 设置开机自启
如图所示已经启动Mysql了,接下来会进行Mysql相关配置。
2.3、MySQL数据库的配置
2.3.1、登录数据库,修改数据库密码
mysql5.7的新特性之一就是在初始化的时候会生成一个自定义的随机密码,然后你需要找到这个临时密码,登录的时候输入。注意,输入密码的时候是不显示。
a、启动Mysql
systemctl start mysqld
b、找到密码: 红框的地方就是密码
grep 'temporary password' /var/log/mysqld.log
c、找到了密码之后,输入以下指令进入数据库
mysql -u root -p
此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库。
d、修改密码
#
这里的'new password'即为你自己要更改的密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
这里有个问题,新密码设置的时候如果设置的过于简单会报错。 原因是因为MySQL有密码设置的规范,具体是与validate_password_policy的值有关。
此时,通过进行这两个操作即可.(设置密码的验证强度等级为弱)
set global validate_password_policy=0;
set global validate_password_length=1;
然后再进行密码的设置,就成功了.
上面提到Mysql密码设置规范的validate_password_policy,详细请参考:安装MySQL报错 : Your password does not satisfy the current policy requirements
2.3.2、设置Mysql支持远程连接
Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接。比如我的VMware的CentOS7中安装的MySQL需要支持远程连接方便数据库备份,现在这样是无法在本地用工具比如Navicat for Mysql登录访问的。
MySQL默认是没有开启远程控制的,必须添加远程访问的用户,即默认是只能自己访问,别的机器是访问不了的。现在要做两件事,第一件事是将云服务器上的3306端口开放;另一件事是配置Mysql远程可以访问。
①先设置刚才的密码可以远程登录,然后使用flush命令使配置立即生效。
#
允许root用户在任何地方进行远程登录,并具有所有库任何操作权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'new password' WITH GRANT OPTION;
允许任何ip地址(%表示允许任何ip地址)的电脑用
root
帐户和密码(Admin123
)来访问这个mysql server。
#
重载授权表flush privileges;
②云服务器开放3306端口
Mysql默认监听端口就是3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
注意:如果还不行可以尝试重启一下数据库
这时,在本地电脑的navicat 上的连接远程的MySQL,显示连接成功:
参考链接:Centos7下无法远程连接mysql数据库的原因与解决
2.3.3、Mysql其他简单配置
Mysql的配置文件真的很多,有的还很蛋疼。比如默认的字符集是拉丁字符集,每次创建数据库的时候要设置字符集;默认还不支持group by语句,默认的时区也不是我们现在的北京时间(东八区),会导致我们的时间差了13个点。针对以上说几个简要的配置,更多的配置在以后遇到了再加上。
先输入exit退出数据库客户端。
打开配置文件,yum安装的默认在/etc文件夹下:
vim /etc/my.cnf
在[mysqld]下面添加,不需要分号
字符集:注意是utf8而不是utf-8!
character-set-server=utf8
这时候使用show variables like 'char%';就可以查看到字符集都是utf8了
sql支持group by语句
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
设置时区为东八区
default-time_zone = '+8:00'
最后重启数据库,使配置生效:
systemctl restart mysqld
2.4、Mysql常用命令
a、设置安全选项
mysql_secure_installation
b、关闭MySQL
systemctl stop mysqld
c、重启MySQL
systemctl restart mysqld
d、查看MySQL运行状态
systemctl status mysqld
e、设置开机启动
systemctl enable mysqld
f、关闭开机启动
systemctl disable mysqld
g、配置默认编码为utf8:
vi /etc/my.cnf #添加 [mysqld] character_set_server=utf8 init_connect='SET NAMES utf8'
其他默认配置文件路径:
配置文件:/etc/my.cnf 日志文件:/var/log//var/log/mysqld.log 服务启动脚本:/usr/lib/systemd/system/mysqld.service socket文件:/var/run/mysqld/mysqld.pid
h、查看版本
select version();
参考链接: