2023年1月5日 星期四

Navicat Mysql 8出現1251- Client does not support authentication protocol 排除方式

 最近在升級系統,資料庫升級到mysql8後,用程式或第三方工具連資料庫時出現了

1251- Client does not support authentication protocol  

或 Unable to load authentication plugin 'caching_sha2_password' 的錯誤訊息

上網查了一下,發現mysql8之前的版本使用的密碼加密規則是mysql_native_password,但是在mysql8則是caching_sha2_password,所以需要修改密碼加密規則。

網路上的解法就是要連入改密碼規則,可以使用

输入use mysql和select user,host,plugin,authentication_string from user;  查看目前使用者的密碼加密規則,如要調整,請執行以下語法:

alter user 'root' @'localhost' identified with mysql_native_password by 'yourpassword';

但這種解法還是用舊有加密規則,所以如要用新版加密規則,你的第三方資料庫連線工具就要升級才行,像Navicat 升到最新就可以支援了

2021年6月21日 星期一

eclipse svn 安裝

 全新的Eclipse ,預設沒有版本控管的程式,所以就要另外加裝,目前已經有非常多資源也很好安裝套件,安裝的方式如下:


Step 1. 在上方選單 H > Eclipse Marketplace  




Step 2. 在Marketplace 下svn 關鍵字,即可找到相關資源
這裡要注意,第一個 Subversive 請不要安裝,因為中間會卡住,沒仔細看,看來版本可能不符,所以別浪費時間安裝再排除問題了,直接往下拉找subclipse 這項套件,就按下install吧


Step 3.就一直往下安裝吧 會有選擇套件,REVIEW LICENSES等 就一直往下走

在此我有遇到一個問題,這只是遇到未加簽的軟體警告,直接按install anyway 

這樣就裝完啦,這時再去New Project,就會看到SVN選項了
END








eclipse IDE for JAVA全新安裝在windows平台

十多年沒有重裝eclipse ,換新電腦就更新至最新版吧

Step 1 .  先到Eclipse官網 下載安裝版



下載windows x86_64,目前只有64位元可以選啦,下載後就直接執行安裝吧

Step 2. 執行安裝檔


然後目前可以選擇要裝哪什麼樣的IDE工具,真是方便,古早先前如要各版本都要不同的安裝檔下載,然後就選擇 Eclipse IDE for Java Developers  
這個版本,他可以內建安裝JRE,我是改自己安裝OpenJDK ,windows 編譯檔在此



不過要注意,目前這個版本eclipse他只支援JDK 11 以上,所以你的版本在這之下,是無法設定上去的

Step 3.  結束

就這麼簡單,現在安裝太容易了!!



2020年5月7日 星期四

PHP程式更新後確沒有更新,有沒有想到是程式碼cache(opcache)?


最近在維護一個客戶的PHP系統
建置及虛擬空間都是別人的,所以很多設定都是不明確的

因此程式碼調整後更新上去,發現似乎沒有作用
花了不少時間確認自己的寫法,最後確認應該不是自己的問題
才想到會不會是 cache  造成?

寫了幾隻小程式,新寫的程式一丟上顯示符合預期
再改再丟上去更新後,顯示還是舊的版本,Shit 真的猜中了

再用個phpinfo() 來看看設定

嗯.....出現了以下錯誤

Warning:phpinfo() has been disabled

很好,沒有php 沒有啟用 phpinfo ,多半管這麼多的,一定設定了很多怪東東
上網查了一下php 的 cache 解決方案

最多人在提的就是 APC  及OPcache

先來試試APC,查了一下 除了設定參數外,可以用以下函式來清除快取,這種最好測試了

apc_clear_cache();
執行後出現了  undefined function ...所以看來不是啟用APC
再來換OPcache,查了一下,一樣他有函式就可以清除快取,執行如下:

opcache_reset();
用了,哈~真的就是它,程式總算可以正常了


相關參考連結:
http://blog.roachking.net/blog/2012/11/30/apc-for-faster-php/
https://www.php.net/manual/en/function.opcache-reset.php

2020年4月29日 星期三

如何隱藏Apache的版本資訊

弱掃被掃到這項 Http Server Type and Version
現在資安這麼嚴格,像這種資訊都是不能讓別人知道,以免被駭客利用該版本的弱點進行攻擊

好的,要隱藏版本資訊也是非常容易,只要在http.conf中加上以上兩個參數即可


ServerTokens Prod
ServerSignature Off

存檔後再重啟即可,要驗證是否有效時,可以使用cUrl工具進行檢查,指令如下:

curl -I -k https://www.yourdomain.com

加上-k 是因為要讀https的,要請工具忽略驗證憑證
原本會看到

HTTP/1.1 200 OK
Date: Wed, 27 April 2020 14:25:00 GMT
Server: Apache/2.4.18 (Ubuntu)
Last-Modified: Wed, 27 April 2020 14:25:00 GMT

Accept-Ranges: bytes
Content-Length: 2432
Vary: Accept-Encoding
Content-Type: text/html

加上後會變成這樣

HTTP/1.1 200 OK
Date: Wed, 27 April 2020 14:25:00 GMT
Server: Apache/2.4.43 (Ubuntu)
Last-Modified: Wed, 27 April 2020 14:25:00 GMT
Accept-Ranges: bytes
Content-Length: 2432
Vary: Accept-Encoding
Content-Type: text/html

如何關閉Apache的80 Port


因資安弱點掃描,原本有一對外的服務走的是Https 443 port,不過弱掃出來 中了這項

Web Servers HTTP TRACE / TRACK Methods  Allowed  Port 80

雖然對外防火牆只開443Port, 應該不會造成問題才是,不過即然掃出來了就封起來吧
預設apache是開啟80 Port ,443 Port是要另外開啟的,往往都另外開啟 443 Port  就忘了應該關閉80 Port,其實關閉的方式很簡單,只要在 httpd.conf 中找尋

Listen 80

把這行加上 # ,註解掉,再重啟 apache 即可

當然如果你是用VirtualHost,就要再去VirtualHost裡去改設定


話說目前各家瀏覽器對安全性要求愈來愈高,看來之後apache內建的預設版本可能會是預設啟用https


2020年3月20日 星期五

Fullcalendar 如何更改游標為手指

 Fullcalendar 行事曆套件蠻強大的,在許多案子上均有使用
但預設移至行事曆上游標是沒有手指符號的,其實Goggle行事曆也是沒有
不過真的要達到時,要如何處理呢?

測了很多,因為大多都是舊版的作法,新版 4.x 資訊很少
所以蠻多都無用途,不過有找到以下作法,加以調整後測試是可行的

照著下面加上後,就可以達到效果

.fc-today {
       cursor: pointer;
}
.fc-future:not(.fc-sat):not(.fc-sun) {
    cursor: pointer;
}
.fc-td-emptycell {
    pointer-events: none;
}
.fc-bgevent-skeleton {
    pointer-events: none;
}

.fc-bgevent-skeleton .fc-bgevent {
        pointer-events: auto;
}

.fc-content-skeleton {
    pointer-events: none;
}

 .fc-content-skeleton .fc-event {
        pointer-events: auto;
 }

記下來方便日後使用

參考資料:
https://stackoverflow.com/questions/58526184/fullcalendar-tooltip-not-working-correctly-when-events-rendering-option-is-equa