记一次springboot访问linux的mysql数据库

今天使用springboot连接linuxmysql,期间一直报错,这里简单记录一下过程。

工具:idea-2017,linux-7.x,mysql-5.6.40。

首先说一下这几个注解的作用:

1Spring Boot@SpringBootApplication@EnableAutoConfiguration@ComponentScan注解,我经常在启动类上傻傻分不清,

2@EnableAutoConfiguration这个注解是是Springboot根据我们所引入的jar包自动配置的,假设我们有自己的配置类则会覆盖

3@ComponentScan是告诉springboot进行包扫描的

(4)@SpringBootApplication注解等价于以默认属性使用@Configuration  @EnableAutoConfiguration@ComponentScan

 

由于springboot自动扫描启动类目录和子目录,所以一般是把启动类放在包的最外层,见下图:cn.buding就是公司名或者项目名。

 记一次springboot访问linux的mysql数据库_第1张图片

 

启动springboot要是要下面错误:

 记一次springboot访问linux的mysql数据库_第2张图片

这个是springboot整合mybatis时启动没有发现mapper,这是一般是mapper没交给springboot管理啦,可能有挺多方式把mapper交给springboot管理,这里就使用一种吧。见下图,在之前的基础上加@MapperScan注解,括号里面就是你mapper的类路径。

 记一次springboot访问linux的mysql数据库_第3张图片

下面是springboot成功启动的信息,拉到最下面就可以看见了,可以看见端口号。

 

下面是我的控制层:

 记一次springboot访问linux的mysql数据库_第4张图片

启动完之后,浏览器访问http://localhost:8080/getUserInfo报错:

 记一次springboot访问linux的mysql数据库_第5张图片

再看看后台:

 记一次springboot访问linux的mysql数据库_第6张图片

连接超时了,看看数据库配置文件:

 记一次springboot访问linux的mysql数据库_第7张图片

登录安装mysql的虚拟机:

(这里补充一下linux安装mysql的命令start

执行:#yum install -y mysql-server

要是出现下面的错误:

 记一次springboot访问linux的mysql数据库_第8张图片

再把命令执行一遍,要是还报同样的错,那说明你的虚拟机配置文件有问题,稍微百度一下就可以了。

要是报下面这个错误:

 记一次springboot访问linux的mysql数据库_第9张图片

可以这样解决:

首先,执行:sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.

如下图:

 

再接着执行:#  yum install mysql mysql-server mysql-libs mysql-server

如下图:

 记一次springboot访问linux的mysql数据库_第10张图片

这样就成功安装了。

配置开机自启:# chkconfig mysqld on

启动mysql服务:# service mysqld start

接着执行:# yum install -y mysql-connector-java

 

进入mysql# mysql

 

设置密码:update mysql.user set password=PASSWORD('123456') where user='root';

 

刷一下:flush privileges;

 

退出:quit

重新登录:# mysql -uroot -p123456

 

创建数据库: create database eshop default character set utf8;

 

查看数据库: show databases;

 记一次springboot访问linux的mysql数据库_第11张图片

进入数据库 use eshop;

 

查看表:show tables;

 

创建表: create table user (

    -> age int(11),

    -> name varchar(20)

-> );

 记一次springboot访问linux的mysql数据库_第12张图片

查看表:show tables;

 记一次springboot访问linux的mysql数据库_第13张图片

插入数据:insert user values(18,"yu");

 

查看数据库ip访问权限:select host from mysql.user;select host,user from mysql.user;(这里要是报错,试着把两个这样mysql.user换成user

 记一次springboot访问linux的mysql数据库_第14张图片

更新一下:update mysql.user set host = '%' where user = 'root';

出现下面这个错误不用理。

 

再查看数据库:select host from mysql.user;

 记一次springboot访问linux的mysql数据库_第15张图片

刷一下:flush privileges;

 

退出:quit;

开放3306端口;

进入:# cd /etc/sysconfig

要是没有iptables

 记一次springboot访问linux的mysql数据库_第16张图片

就创建一个:# vi iptables

把下面这段话粘贴过去。

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

 记一次springboot访问linux的mysql数据库_第17张图片

退出,重启网络:# service iptables restart

要是报下面的错误:

 

就执行:# yum install iptables-service

要是显示的错误:

 记一次springboot访问linux的mysql数据库_第18张图片

就执行:# systemctl stop firewalld  

    # systemctl mask firewalld  

 

再执行:# yum install iptables-services

 记一次springboot访问linux的mysql数据库_第19张图片

设置开机启动:# systemctl enable iptables

再重启网络:# service iptables restart

 

查看开放的端口:# iptables -L -n

 记一次springboot访问linux的mysql数据库_第20张图片

这里补充一下linux安装mysql的命令end

到这里就基本结束了,使用springboot就可以访问数据库了,重新启动一下springboot项目,就可以看见:

 记一次springboot访问linux的mysql数据库_第21张图片

最后,再记一下mysql数据库登陆的问题:

要是登录mysql报:

 

查了好多百度,改了好多文件,还没得,最后使用联接工具Navicat打开连接,找到mysql数据库打开user表,

 记一次springboot访问linux的mysql数据库_第22张图片

 

上面是我改好的,打开后要是发现localhost那行的userpassword为空,就把127.0.0.1那行的userpassword复制到localhost,然后就把localhost那行除了password_expired这个不改之外,其他为N的全改为Y就可以了。

相关代码已上传到了github上:https://github.com/DreamJieEn/springboot-linux-mysql

转载于:https://www.cnblogs.com/DengJieEn/p/9215157.html

你可能感兴趣的:(记一次springboot访问linux的mysql数据库)