異常原因在于服務(wù)器端的密碼管理協(xié)議陳舊,使用的是舊有的用戶密碼格式存儲(chǔ);但是客戶端升級(jí)之后采用了新的密碼格式。mysql5.6版本遇到這種不一致的情況就會(huì)拒絕連接。
十多年的高陽(yáng)網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整高陽(yáng)建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“高陽(yáng)網(wǎng)站設(shè)計(jì)”,“高陽(yáng)網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
詳見(jiàn)mysql手冊(cè)“Server Command
Options”一節(jié)中“--secure-auth"選項(xiàng)的說(shuō)明:
/server-options.html#option_mysqld_secure-auth
解決方法有如下三種:
1、服務(wù)器端升級(jí)啟用secure_auth選項(xiàng);
2、客戶端連接時(shí)off掉secure_auth,即連接時(shí)加上--secure_auth=off,如:mysql -p10.51.1.11 -P3308 -uroot --secure_auth=off
3、找到對(duì)應(yīng)的mysql用戶把密碼改為新的加密方式,PASSWORD(‘your password'),如:
復(fù)制代碼代碼如下:
SET PASSWORD FOR root=PASSWORD('123456');
對(duì)于方法二,使用在程序做相應(yīng)mysql配置即可,以php為例,在php.ini中設(shè)置secure_auth=off
一樣配置,只需要配置好數(shù)據(jù)庫(kù)連接參數(shù)(一般配置在settings即可,或者單獨(dú)的一個(gè)配置文件),使用MySQLdb進(jìn)行連接mysql即可,在需要展示頁(yè)面的viewspy處理好數(shù)據(jù)之間的交互即可(執(zhí)行mysql語(yǔ)句,7788),然后整合傳到前端即可python+django能夠同時(shí)使用mongodb和mysql兩種數(shù)據(jù)
前邊介紹了負(fù)載均衡,mysql同步,接下來(lái)介紹tp6分布式部署多個(gè)數(shù)據(jù)庫(kù),實(shí)現(xiàn)讀寫(xiě)分離。
tp6的分布式部署讀和寫(xiě)仍然是一個(gè)系統(tǒng),這里我們分開(kāi)操作,給用戶展示的就是從數(shù)據(jù)庫(kù),后端添加文章就是主庫(kù),然后同步到從庫(kù)。
1、配置數(shù)據(jù)庫(kù)鏈接參數(shù)
目標(biāo):實(shí)現(xiàn)隨機(jī)使用數(shù)據(jù)庫(kù)展示信息,只是讀操作。
測(cè)試:前臺(tái)可以讀取表中內(nèi)容(存放的不一致),查看是否是隨機(jī)顯示的。
打開(kāi).env文件進(jìn)行編輯
說(shuō)明:
2、編輯database.php
找到deploy設(shè)置為1分布式部署,下邊不要改,都是讀,寫(xiě)入的也就是后端的我們單獨(dú)建站連接主庫(kù)。
配置完成,tp6使用的是mt_rand取隨機(jī)數(shù)判斷使用哪個(gè)數(shù)據(jù)庫(kù)。
3、數(shù)據(jù)庫(kù)交互寫(xiě)操作
比如瀏覽量沒(méi)必要每次都去更新數(shù)據(jù)庫(kù),可以先使用redis緩存,存夠1000的整數(shù)倍,再去更新數(shù)據(jù)庫(kù)。
4、后臺(tái)獨(dú)立,也就是寫(xiě)
可以前后端分離,單獨(dú)做一個(gè)網(wǎng)站(沒(méi)有前端)使用ip訪問(wèn)或者獨(dú)立的域名連接后臺(tái)。
5、上傳附件(jquery ajax跨域上傳)
使用了nginx負(fù)載均衡,肯定是多個(gè)一樣的網(wǎng)站,如果圖片存放到一個(gè)站,別的就不能訪問(wèn)了,可以單獨(dú)設(shè)置一個(gè)附件(壓縮包,圖片等)服務(wù)器,可以使用二級(jí)域名連接,這就要求我們上傳附件的時(shí)候,是上傳到附件服務(wù)器。
jqueryURL
API控制器apdpic方法
說(shuō)明:
也可以先傳到后臺(tái)服務(wù)器然后使用(php)ftp上傳,或者是通過(guò)curl上傳到附件服務(wù)器,感覺(jué)那樣畢竟麻煩,直接設(shè)置跨域會(huì)比較簡(jiǎn)單。
也測(cè)試了使用jsonp跨域,但是不能上傳附件。
6、thinkphp6實(shí)現(xiàn)讀寫(xiě)分離(在一個(gè)站點(diǎn))
我個(gè)人是不喜歡這樣的,負(fù)載均衡應(yīng)該是均衡地讀,也就是前臺(tái)單獨(dú)一個(gè)站點(diǎn),后端的寫(xiě)是另一個(gè)獨(dú)立的站點(diǎn),看個(gè)人喜好吧。
獨(dú)立后臺(tái)的優(yōu)點(diǎn):可以提升安全性,因?yàn)槲覀兊暮笈_(tái)網(wǎng)址是不公開(kāi)的,避免用戶猜測(cè)一些后臺(tái)的信息。
.env配置按照1所述編輯,默認(rèn)第一個(gè)是主庫(kù)。
database.php
愿大家在新的一年心想事成,萬(wàn)事如意?。?!
PDO擴(kuò)展為PHP訪問(wèn)數(shù)據(jù)庫(kù)定義了一個(gè)輕量級(jí)的、一致性的接口,它提供了一個(gè)數(shù)據(jù)訪問(wèn)抽象層,這樣,無(wú)論使用什么數(shù)據(jù)庫(kù),都可以通過(guò)一致的函數(shù)執(zhí)行查詢和獲取數(shù)據(jù)。
在一些PHP管理系統(tǒng)需要開(kāi)啟PDO和PDO_MySQL擴(kuò)展,方法很簡(jiǎn)單:
1、找到php.ini文件
2、打開(kāi)后,搜索 extension=php_pdo.dll 和 extension=php_pdo_mysql.dll ,去掉前面“;”的注釋。
最終這兩行配置內(nèi)容如下:
extension=php_pdo.dll
extension=php_pdo_mysql.dll
重新啟動(dòng)apache或者iis后,在phpinfo函數(shù)中查看,是否開(kāi)啟。
連接mysql數(shù)據(jù),用到的工具Navicat Premium,步驟如下:
打開(kāi)Navicat Premium,點(diǎn)擊連接按鈕下的mysql。
2.連接名可以任意,輸入主機(jī)ip或者主機(jī)名,端口一般默認(rèn)都是3306,數(shù)據(jù)庫(kù)用戶名和密碼點(diǎn)擊確定就可以。
注意事項(xiàng):用Navicat Premium打開(kāi)遠(yuǎn)程數(shù)據(jù)庫(kù),需要數(shù)據(jù)庫(kù)用戶名有遠(yuǎn)程訪問(wèn)的權(quán)限。
-主機(jī)開(kāi)兩個(gè)窗口,一個(gè)進(jìn)入mysql,一個(gè)是shell --主機(jī)阻斷寫(xiě)操作 mysql FLUSH TABLES WITH READ LOCK; Query OK, 0 rows affected (0.00 sec) mysql mysql mysql SHOW MASTER STATUS;