1. 程式人生 > >記一次springboot訪問linux的mysql數據庫

記一次springboot訪問linux的mysql數據庫

enable rac boot data jar expire 訪問權限 默認 登錄

今天使用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要是要下面錯誤:

技術分享圖片

這個是springboot整合mybatis時啟動沒有發現mapper,這是一般是mapper沒交給springboot管理啦,可能有挺多方式把mapper交給springboot管理,這裏就使用一種吧。見下圖,在之前的基礎上加

@MapperScan註解,括號裏面就是你mapper的類路徑。

技術分享圖片

下面是springboot成功啟動的信息,拉到最下面就可以看見了,可以看見端口號。

技術分享圖片

下面是我的控制層:

技術分享圖片

啟動完之後,瀏覽器訪問http://localhost:8080/getUserInfo報錯:

技術分享圖片

再看看後臺:

技術分享圖片

連接超時了,看看數據庫配置文件:

技術分享圖片

登錄安裝mysql的虛擬機:

(這裏補充一下linux安裝mysql的命令start

執行:#yum install -y mysql-server

要是出現下面的錯誤:

技術分享圖片

再把命令執行一遍,要是還報同樣的錯,那說明你的虛擬機配置文件有問題,稍微百度一下就可以了。

要是報下面這個錯誤:

技術分享圖片

可以這樣解決:

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

如下圖:

技術分享圖片

再接著執行:# yum install mysql mysql-server mysql-libs mysql-server

如下圖:

技術分享圖片

這樣就成功安裝了。

配置開機自啟:# 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;

技術分享圖片

進入數據庫 use eshop;

技術分享圖片

查看表:show tables;

技術分享圖片

創建表: create table user (

-> age int(11),

-> name varchar(20)

-> );

技術分享圖片

查看表:show tables;

技術分享圖片

插入數據:insert user values(18,"yu");

技術分享圖片

查看數據庫ip訪問權限:select host from mysql.user;select host,user from mysql.user;(這裏要是報錯,試著把兩個這樣mysql.user換成user

技術分享圖片

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

出現下面這個錯誤不用理。

技術分享圖片

再查看數據庫:select host from mysql.user;

技術分享圖片

刷一下:flush privileges;

技術分享圖片

退出:quit;

開放3306端口;

進入:# cd /etc/sysconfig

要是沒有iptables

技術分享圖片

就創建一個:# 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

技術分享圖片

退出,重啟網絡:# service iptables restart

要是報下面的錯誤:

技術分享圖片

就執行:# yum install iptables-service

要是顯示的錯誤:

技術分享圖片

就執行:# systemctl stop firewalld

    # systemctl mask firewalld

技術分享圖片

再執行:# yum install iptables-services

技術分享圖片

設置開機啟動:# systemctl enable iptables

再重啟網絡:# service iptables restart

技術分享圖片

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

技術分享圖片

這裏補充一下linux安裝mysql的命令end

到這裏就基本結束了,使用springboot就可以訪問數據庫了,重新啟動一下springboot項目,就可以看見:

技術分享圖片

最後,再記一下mysql數據庫登陸的問題:

要是登錄mysql報:

技術分享圖片

查了好多百度,改了好多文件,還沒得,最後使用聯接工具Navicat打開連接,找到mysql數據庫打開user表,

技術分享圖片

上面是我改好的,打開後要是發現localhost那行的userpassword為空,就把127.0.0.1那行的userpassword復制到localhost,然後就把localhost那行除了password_expired這個不改之外,其他為N的全改為Y就可以了。

記一次springboot訪問linux的mysql數據庫