阿里云服务器搭建(二)--mysql配置+部署web项目

阿里云服务器搭建(一)java环境配置+tomcat配置

阿里云服务器搭建(二)--mysql配置+部署web项目


四、linux下配置mysql

1、安装mysql

安装方式有两种,一种可以使用 yum 来安装 mysql。一种是到官网下载安装包后上传解压安装。

这里我使用的是yum来安装的

首先检查一下本机上面是否安装有mysql(我的并没有安装过mysql):rm -qa | grep mysql

图2-1

PS:如果安装了, 普通删除模式 rpm -e mysql

查看有没有安装mariadb,都没有,很好,开始安装mysql,我们需要安装三个东西如图2、3、4:

①安装MySQL官方的Yum Repository

# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

②下载rpm包

# yum -y install mysql57-community-release-el7-10.noarch.rpm

③安装MySQL服务

# yum -y install mysql-community-server

阿里云服务器搭建(二)--mysql配置+部署web项目_第1张图片
图2-2
阿里云服务器搭建(二)--mysql配置+部署web项目_第2张图片
图2-3
阿里云服务器搭建(二)--mysql配置+部署web项目_第3张图片
图2-4

启动mysql服务(注意:是mysqld哦),但是我这里报错了:

# systemctl start mysqld.service

阿里云服务器搭建(二)--mysql配置+部署web项目_第4张图片
图2-5

从图5的信息上看,我们可以输入命令systemctl status mysqld.service或者 journalctl -xe查看错误信息。

图6为输入命令 journalctl -xe 看到的信息。从报错信息可以看出来,是配置目录里面有东西。

阿里云服务器搭建(二)--mysql配置+部署web项目_第5张图片
图2-6

需要进入到配置文件里面,查看数据目录是什么

vi /etc/my.cnf 

阿里云服务器搭建(二)--mysql配置+部署web项目_第6张图片
图2-7

再启动mysql,没问题了。

图2-8

使用命令 # service mysqld status 或者 # service mysql status 命令来查看mysql 的启动状态

如果是 mysqld is stopped 那就说明mysql服务是停止状态,

如果是 mysqld is running 那就说明mysql服务是启动状态

阿里云服务器搭建(二)--mysql配置+部署web项目_第7张图片
图2-9

2、设置 mysql 开机自启

为什么要设置呢?因为每次关机重启后,mysql 服务都会被停止,处于 stop 状态,这时要使用 mysql,就得执行 service mysqld start 命令,比较繁琐,所以设置一下开机自启,可以减少麻烦。

systemctl enable mysqld

# systemctl daemon-reload 刚刚配置的服务需要让systemctl能识别,就必须刷新配置

图2-10

3、设置mysql密码

执行以下命令,查找到初始临时密码后,登陆mysql:

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

阿里云服务器搭建(二)--mysql配置+部署web项目_第8张图片
图2-11

注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误,如下图12: 

图2-12

通过msyql环境变量可以查看密码策略的相关信息:

mysql> show variables like '%password%';

阿里云服务器搭建(二)--mysql配置+部署web项目_第9张图片
图2-13

validate_password_policy:密码策略,默认为MEDIUM策略 

validate_password_dictionary_file:密码策略文件,策略为STRONG才需要 

validate_password_length:密码最少长度 

validate_password_mixed_case_count:大小写字符长度,至少1个 

validate_password_number_count :数字至少1个 

validate_password_special_char_count:特殊字符至少1个 

上述参数是默认策略MEDIUM的密码检查规则。

共有以下几种密码策略:

阿里云服务器搭建(二)--mysql配置+部署web项目_第10张图片
图2-14

修改密码策略

在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略

validate_password_policy=0

图2-15

如果不需要密码策略,在my.cnf文件中添加如下配置禁用即可:

validate_password = off

重新启动mysql服务使配置生效:

systemctl restart mysqld

找到临时密码后,登陆,然后设置新的密码:

登陆mysql:mysql -u用户名(一般为root) -p临时密码【比如我的就是:mysql -uroot -pjCjIdBpqB3+A

注意-p后面紧接着密码

然后在修改密码:alter user root@localhost identified by '你要修改成的密码';

图2-16

4、删除

至此设置完成,但还有一点小问题,因为安装了Yum Repository,以后每次操作yum都会自动更新需要卸载它。

阿里云服务器搭建(二)--mysql配置+部署web项目_第11张图片
图2-17

5、配置远程登录:

MySQL默认root用户只能本地登录,如果要远程连接,要简单设置下,这里直接用root来远程登录不添加其他角色。

# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '4008' WITH GRANT OPTION;

库名:要远程访问的数据库名称,所有的数据库使用“*” 

表名:要远程访问的数据库下的表的名称,所有的表使用“*” 

用户名:要赋给远程访问权限的用户名称 

IP地址:可以远程访问的电脑的IP地址,所有的地址使用“%” 

密码:要赋给远程访问权限的用户对应使用的密码

图2-18

冲刷权限

# flush privileges;

图2-19

注意:(这一段我没有用到,看看就好q^q)

需要注意mysql的配置文件中的bindaddress 的参数和skip-networking 配置

bindaddress : 设定哪些ip地址被配置,使得mysql服务器只回应哪些ip地址的请求),最好注释掉该参数或设置成为127.0.0.1以外的值

skip-networking : 如果设置了该参数项,将导致所有TCP/IP端口没有被监听,也就是说出了本机,其他客户端都无法用网络连接到本mysql服务器,所以应该注释掉该参数

阿里云服务器搭建(二)--mysql配置+部署web项目_第12张图片
图2-20

这时使用navicat连接,依然失败。因为我们需要在服务器端添加3306端口

阿里云服务器搭建(二)--mysql配置+部署web项目_第13张图片
图2-21

6、添加3306端口

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

命令含义: 

--zone #作用域 

--add-port=80/tcp #添加端口,格式为:端口/通讯协议 

--permanent #永久生效,没有此参数重启后失效 

图2-22

结果说没有运行防火墙,在之前的安装tomcat的时候,我将防火墙打开了,现在需要关闭防火墙了。并且之前配置tomcat时打开的端口,需要再次设置。

首先,将防火墙打开:

# systemctl status firewalld  查看防火墙状态

# systemctl start firewalld  打开防火墙

阿里云服务器搭建(二)--mysql配置+部署web项目_第14张图片
图2-23

然后再输入那个开放3306端口的命令就行了

再重启防火墙

firewall-cmd --reload  重启防火墙

阿里云服务器搭建(二)--mysql配置+部署web项目_第15张图片
图2-24

查看端口监听状态:netstat -an|grep 3306

如果显示不是如上图所示,则需要修改配置文件。找到my.cnf,一般在/etc/mysql/下面,具体情况根据实际而定。注释掉其中的bind-address属性。如下

阿里云服务器搭建(二)--mysql配置+部署web项目_第16张图片
图2-25

7、MySQL设置utf8:

打开/etc/my.cnf也就是数据库的配置文件,然后在底部复制粘贴:

[mysqld]

character_set_server=utf8

init_connect='SET NAMES utf8'

阿里云服务器搭建(二)--mysql配置+部署web项目_第17张图片
图2-26

查看:

阿里云服务器搭建(二)--mysql配置+部署web项目_第18张图片
图2-27

PS:采用navicat新建数据库时,需要将编码方式设置为,字符集:utf8 -- UTF-8 Unicode ,排序规则:utf8_general_ci

如果在运行sql语句时,出现以下问题:

[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c

原因:

MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。(5.7.5之前,MySQL没有检测到功能依赖关系,默认情况下不启用ONLY_FULL_GROUP_BY。有关5.7.5之前的行为的说明,请参见“MySQL 5.6参考手册”)。

解决办法:

打开: /etc/my.cnf

滚动到文件底部复制并粘贴

[mysqld]

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=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

到文件的底部

保存并退出输入模式

阿里云服务器搭建(二)--mysql配置+部署web项目_第19张图片
图2-28

重启MySQL:systemctl  restart mysqld.service

8、开启阿里云安全组端口策略

登陆阿里云,进入控制台,网络和安全->安全组->配置规则(和之前的步骤一样)将MySQL监听端口开放即可,如下:

阿里云服务器搭建(二)--mysql配置+部署web项目_第20张图片
图2-29

再用navicat连接就可以了

阿里云服务器搭建(二)--mysql配置+部署web项目_第21张图片
图2-30

配置文件的说明:

/etc/my.cnf 这是mysql的主配置文件

/var/lib/mysql mysql数据库的数据库文件存放位置

/var/log mysql数据库的日志输出存放位置

五、部署项目

1、导出导入数据

由于是新服务器,上面没有数据,作为一个web项目,肯定是有数据库的使用的。所以第一步是将本地数据导入。

在本地的windows系统下,按键“win”+r 进入cmd命令,切换到mysql安装目录下,我的mysql路径为:C:\Program Files\MySQL\MySQL Server 5.7\bin

导出数据库:mysqldump -u [用户名] -p  [要导出的数据库]>[导出的路径//[文件名].txt]

如我输入的命令行:mysqldump -u root -p jyb > jyb.txt   (输入后会让你输入进入MySQL的密码)

阿里云服务器搭建(二)--mysql配置+部署web项目_第22张图片
图2-31

然后使用xftp将文件上传至服务器

图2-32

在xshell中,登陆mysql,创建数据库:create database jyb;

直接使用source [所在的路径//*.txt] 将文件进行导入

图2-33

查看数据库:show databases;

阿里云服务器搭建(二)--mysql配置+部署web项目_第23张图片
图2-34

2、打war包

我用的是idea。

阿里云服务器搭建(二)--mysql配置+部署web项目_第24张图片
图2-35

将打好的war包上传至服务器tomcat的webapps下:

阿里云服务器搭建(二)--mysql配置+部署web项目_第25张图片
图2-36

至此,就可以使用啦。

你可能感兴趣的:(阿里云服务器搭建(二)--mysql配置+部署web项目)