1. 程式人生 > >Access denied for user(這個幾乎讓我懷疑人生的異常)

Access denied for user(這個幾乎讓我懷疑人生的異常)

昨天一時興起,打算根據自己的某些想法,業餘時間寫一個簡單的專案,用以鞏固那些重要的知識,以及練手一些即將學習的技術。
然而才一開始,便有一盆冷水迎面而來,在搭建整個框架環境的時候竟然就被卡住了!主要是兩個問題,第一個還好說,可是第二個,讓我抓狂,讓我差點懷疑人生!
最終結果是,一個是因為單詞拼寫錯誤,一個是因為多餘的空格!
拼寫錯誤害死人,空格害死人啊!
這個跟頭真是一摔再摔,前赴後繼!

這個專案我打算依舊以常規的spring+spring+spring mvc的整體架構來進行,於是便根據自己之前寫的一篇框架搭建開始動手:http://blog.csdn.net/tuzongxun/article/details/51153773?locationNum=2&fps=1


原本,對於這個整體框架搭建我是信心滿滿的,因為之前認真的弄過好久,對於上邊這篇文章所寫的內容也是相當自信。
雖然我寫的那些文章不一定有深度,但是除開一些理論性的,其他都絕對是自己親自嘗試過的,實用性和可行性我敢保證。

然而就在我確認搭建好,該修改的配置也都一一修改完以後,一啟動tomcat居然報錯了:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from relative location [spring-MybatisConfig.xml
] Offending resource: class path resource [spring.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from URL [file:/D:/eclipseWorkspace1/.metadata/.plugins/org.eclipse.wst.server.core/tmp2/webapps/myBlog/WEB-INF/classes/spring-MybatisConfig.xml]; nested exception is java.io.FileNotFoundException: D:\eclipseWorkspace1\.metadata\.plugins\org.eclipse.wst.server.core\tmp2\webapps\myBlog\WEB-INF\classes\spring-MybatisConfig.xml (系統找不到指定的檔案。)
at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:70) at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85) at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)

好吧,這個提示太直白,系統找不到指定的檔案!
根據以往的經驗,我略一思索變想到多半是單詞拼寫錯誤,於是自然而然的自看了一眼檔名,果不其然,我的這個檔案是這樣的:
這裡寫圖片描述
原來是spring打成了srping。

既然找到了問題,解決起來自然不是問題,我一直覺得問題不可怕,可怕的是找不到問題在哪兒!

然而,就在我以為大功告成的時候,再一啟動tomcat,居然還是報錯了,這次的錯是:

十一月 29, 2016 10:29:10 上午 com.alibaba.druid.pool.DruidDataSource error
嚴重: init datasource error
java.sql.SQLException: Access denied for user 'tzx  '@'tuzongxun' (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:996)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3887)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3823)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870)
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1659)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1206)

看到這個錯,我就有點不淡定了,因為這個錯也是似曾相識的啊,如果我沒記錯,那就是密碼錯誤的問題。
但是!我的密碼分明沒有問題!config.properties檔案相關的內容如下:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.0.7:3306/myblog?useUnicode=true&characterEncoding=utf-8
jdbc.username=tzx  
useUnicode=true&characterEncoding=utf-8  
jdbc.password=123456  

為了驗證究竟是不是密碼問題,我還特意寫了一個jdbc來連線:

public static void mysqlTest() {
        String driver = "com.mysql.jdbc.Driver";// 資料庫驅動
        String url = "jdbc:mysql://192.168.0.7:3306/myblog";// **指的是資料庫名稱
        String username = "tuzongxun";// 資料庫使用者名稱
        String password = "123456";// 資料庫密碼
        Connection conn = null;
        Statement stat = null;
        ResultSet rs = null;
        try {
            Class.forName(driver);// 載入資料庫驅動
            conn = DriverManager.getConnection(url, username, password);// 連線Connection物件
            stat = conn.createStatement();// 建立Statement物件
            String sql = "select * from emlog_ad";
            rs = stat.executeQuery(sql);// 執行sql語句返回結果集
            while (rs.next()) {
                System.out.println(rs.getInt("id"));
                System.out.println(rs.getInt("status"));
                System.out.println(rs.getInt("position"));
                System.out.println(rs.getString("title"));
                System.out.println(rs.getInt("weight"));
                System.out.println(rs.getString("content"));
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

結果自然是正常連線的。
這下我就蒙圈了:使用者名稱和密碼一模一樣,框架和之前的也幾乎沒有差別,難道是見鬼了?難道是我之前的文章有問題麼?
可是,我每次發出去的,分明都是一而再再而三的驗證過的,不該如此啊!
萬般無奈之下,我清了tomcat快取,我清了eclispe快取,甚至我重啟了eclipse,我重啟了電腦。
然而,問題他依舊在那裡靜靜的看著我,彷彿在說“啊哈,你找不到我,你找不到我!”

這下我有點從蒙圈進入抓狂的狀態了,根據經驗實在無法定位問題所在了,只好上網搜尋。
經過一頓百度,答案是如此的千篇一律,不是說使用者名稱密碼錯誤的問題,就是說需要新建使用者。
好吧,不管怎樣,先試試再說。
於是,我重新建立了一個使用者,重新啟動了mysql。甚至由於之前寫那個框架搭建時用的是mysql5.5,而我現在用的是mysql5.6,所以我又弄了個mysql5.5。
結果呢。。。有點不想說話!

該試的都試了,不該試的我也試了,懷疑人生模式正式開啟。。。
於是,我開始漫無目的的一行行程式碼、一個個字元的開始了游標的漫長旅行。
令我意外的是,山重水複疑無路,柳暗花明又一村,問題竟然就這樣突如其來的被窩尋到了蹤跡!
在游標一個字元一個字元的移動中,我發現我的config.properties檔案居然是這樣的:
這裡寫圖片描述
這裡寫圖片描述
明眼人大概已經看到了問題所在,正是我的使用者名稱和密碼後邊多出了兩個空格,當我把這兩個空格幹掉之後,再次啟動tomcat,那個異常終於乖乖的溜之大吉了!

如此沒有技術含量的兩個錯,我已犯了多次,粗心大意犯的錯,空格字元太坑人,說多了都是淚啊!

相關推薦

Access denied for user這個幾乎懷疑人生異常

昨天一時興起,打算根據自己的某些想法,業餘時間寫一個簡單的專案,用以鞏固那些重要的知識,以及練手一些即將學習的技術。 然而才一開始,便有一盆冷水迎面而來,在搭建整個框架環境的時候竟然就被卡住了!主要是兩個問題,第一個還好說,可是第二個,讓我抓狂,讓我差點懷疑人

安裝mysql後連接出錯錯誤:Access denied for user 'root'@'localhost' (using password: YES)"的解決辦法

access 設置 lec 提示 回車 eight png varchar oot   前幾天下載了mysql5.7正常安裝後,用navicat for mysql連接時提示“Access denied for user [email protec

新手PHP連接MySQL數據庫出問題Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES)

admin 提示 文件 無法 sin for serve 方法 onf 我用的環境是wampServer集成的軟件包 在php連接MySQL數據庫的時候老是出現這個問題Warning: mysqli_connect(): (HY000/1045): Access denie

Windows下重置MySQL密碼(最開始是因為Access denied for user 'root'@'localhost'這個原因,無法登陸 'root'@'localhost')

root 分享圖片 font 任務管理器 nts 技術分享 date 沒有 for 本人使用的MySQL5.5,其他版本未測試過。 1. 進入命令行窗口,停止MySQL服務 net stop mysql 2. 輸入mysqld --skip-grant-tab

ubuntu下 mysql安裝以後無法登陸的的解決方法(ERROR 1698 (28000): Access denied for user 'root'@'localhost')

sta mysql安裝 nat where 數據 move sel 方法 client 1. 刪除mysql sudo apt-get autoremove --purge mysql-server-5.0 sudo apt-get remove

access denied for user ''@'localhost' to databaseWindow 已親測

新安裝的資料庫建立新資料庫的時候通常會出現access denied for user ''@'localhost' to database的錯誤,原因是用的是匿名使用者,需要更改密碼。網上流程的解決方案是Linux系統下的解決方法,這裡說下在Window下怎麼解決(親測)。 1.進入mysq

Error:1045, "Access denied for user 'root'@'localhost' (using password: YES) Phon3.6+Mysql8.1

哇,鬧了一個大烏龍,昨天,寫了個指令碼給之前移植的mysql新增資料,結果一個小問題困了我0.75天。 指令碼程式碼如下:(期間有個小插曲,我把port=“3306”,報錯了,但是很快排查到,去除可雙引號) from pymysql import cursors, connect #

Ubuntu/DebianRaspbian進入MySQL報錯:ERROR 1698 (28000): Access denied for user 'root'@'localhost'的解決方法

樹莓派安裝MySQL未提示設定密碼,之後在sudo下無需密碼即可連線,其它輸入報錯ERROR 1698 (28000) 附:遠端連線MySQL出現1130錯誤解決方法 問題場景: 在樹莓派3B+,系統Raspbian(Debian9.4),安裝MySQL: sudo apt-g

ubuntu14.04 安裝mysql 失敗經歷Access denied for user 'root'@'localhost' (using password: YES)

# mysql -uroot -p  輸入密碼: -----》Access denied for user 'root'@'localhost' (using password: YES)   # cat /etc/mysql/debian.cnf [clie

Ubuntu安裝mysqlAccess denied for user 'mysql'@'localhost' (using password: NO)

作業系統:Ubuntu16.04 1.安裝mysql的服務端 sudo apt-get install mysql-server 2.安裝mysql的客戶端(需要注意安裝過程中會詢問是否設定登陸密碼)) sudo apt install mysql-client 3

匯出匯入資料庫 解決了MySQL Access denied for user 'root'@'IP地址'問題

匯出一.【停止MySQL服務】方法一:1.開啟cmd;2.命令列輸入 net stop mysql可能出現問題【輸入服務名無效】 用方法二方法二:1.右擊我的電腦——管理——服務與應用程式——服務——找到mysql停掉服務二.【修改my.ini檔案程式碼】1.找到my.ini

解決Navicat for MySQL開啟連線時出現錯誤提示1045 access denied for user 'root'@'localhost' using password yes的問題

        買了新電腦,裝上MySQL建立連線後打不開,提示“1045 access denied for user 'root'@'localhost' (using password yes)”,我是吃瓜群眾一個,網上搜了好久,其實早就看到解決辦法了,但是由於自己水平

access denied for user ''@'localhost' to databaseWindow 已親測

新安裝的資料庫建立新資料庫的時候通常會出現access denied for user ''@'localhost' to database的錯誤,原因是用的是匿名使用者,需要更改密碼。網上流程的解決方案是Linux系統下的解決方法,這裡說下在Window下怎麼解決(親測)。

1045 access denied for user 'root'@'localhost' using password yes 以及Can't connect to MySQL解決方法簡單方法

昨天還可以連結,今天突然無法訪問資料庫,經過嘗試發現了原因 在網上搜了很多方法,似乎都很麻煩,最後找到了解決方法,我的是mysql 5.7  導致這種情況發生的原因是:mysql服務未啟動 解決方法如下: 開始-->控制面板-->管理工具-->服務--&g

MYSQL: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

tar new ica host star init upd pass skip 1) /etc/init.d/mysqld stop2) mysqld_safe --skip-grant-tables &3) mysql -u root4) Setup new M

MySQL提示Access denied for user ''@'localhost'”的解決

bsp con sta class safe starting sin 改錯 pri 記得那時由於沒有網絡,把rootpassword改錯了寫成了: update user set password="122" where user="root"; 之後mysql就開始

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

centos 解決 ice 個數 oca 用戶 acc 登錄 use 在centos下安裝好了mysql,用root帳號連上mysql,然後創建一個數據庫,提示下圖錯誤:   提示:ERROR 1044 (42000): Access denied for user [e

mariadb mysql 報'Access denied for user 'root'@'localhost' (using password: NO)'錯誤的解決

min other oca rac none mysql oot com command C:\Program Files\MariaDB 10.2\bin>mysql admin -u root password "x123456789" mysql Ver

Access denied for user 'Administrator'@'localhost' (using password: YES)

pro 方式 chan bsp user mini hold 文件中 rri 在Spring容器中通過配置 <context:property-placeholder location="classpath:/jdbc.properties"/> 調用prope

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

註釋 .cn tables table 數據 mysql數據庫 using ice 登錄 解決: (1)修改my.cnf中[mysqld]中增加skip-grant-tables (2)重啟mysql數據庫:service mysqld restart (3)無密碼登錄my