原创 MySQL亂碼的原因和設置UTF8數據格式

MySQL使用時,有一件很痛苦的事情肯定是結果亂碼。將編碼格式都設置爲UTF8可以解決這個問題,我們今天來說下爲什麼要這麼設置,以及怎麼設置。 MySQL字符格式 字符集 在編程語言中,我們爲了防止中文亂碼,會使用unicode對中文字符做

原创 用service命令管理mysql啓停

安裝完成mysql之後,每次啓動和停止都很麻煩,有時候記不住去網上搜一下,看見大家都用service來進行服務的管理,試了一下,果然好用。推薦大家也要這麼用。 啓動和停止mysql服務 # 啓動 /usr/local/mysql/bin/m

原创 rsync算法原理及使用

如果服務器之間需要保持某些文件的一致,我們可以使用scp來複制,如果需要長期保持一致,可以配合crontab腳本來使用。但是此時我們有更優的方式,就是rsync+crontab來實現定時增量傳輸保持文件一致。 rsync功能很強大,網上的資

原创 使用logrotate完成日誌自動切分並輪轉

部署網絡應用時,會對請求進行日誌保存,用於數據統計分析以及故障排除,但對於高併發請求的服務器,日誌文件會迅速增長,快速的消耗磁盤空間,同時,分析一個大文件來排查問題也會非常慢。因此,我們通常需要將日誌按照天級別進行存儲,並對過舊的日誌進行壓

原创 linux上ssh免密登錄原理及實現

服務器集羣需要回收日誌到中央進行統一處理,因此需要建立ssh互信關係實現免密登錄。這個大家可能都很熟悉了,網上也有很多資料,但是我們今天主要來講下ssh登錄和免密登錄的原理。 scp 傳輸文件 scp(secure copy)是linux

原创 PHP_SELF變量解析和重複路徑解決

最近升級PHP到PHP7版本,並重新部署了新的Nginx,啓動的時候發現了一個問題,全局變量$_SERVER['PHP_SELF']的值發生了改變,從而影響到代碼的功能。因此我們來了解下$_SERVER全局變量中的PHP_SELF/PATH

原创 MySQL主從同步機制和同步延時問題追查

今天遇到一個問題,Mysql持續報錯,主從同步延時數過大或錯誤。所以這篇文章給大家分享下主從同步的機制原理以及問題排查思路。 故障表現 最直觀的表現爲: mysql> show slave status\G; // 狀態一

原创 前端js實現字符串/圖片/excel文件下載

在web開發中,如果你想讓用戶下載或者導出一個文件,應該怎麼做呢?傳統的做法是在後端存儲或者即時生成一個文件來提供下載功能,這樣的優勢是可以做權限控制、數據二次處理,但缺點是需要額外發起請求、增大服務端壓力、下載速度慢。 但隨着HTML5的

原创 php僞造Referer請求反盜鏈資源

有些產品爲了防止自己的產品被盜鏈訪問,會採用反盜鏈措施,如封閉型生態的音樂網站和視頻網站,他們已經爲了版權付費,自然不希望你免費使用他們的資源。但因爲很多人專門研究盜鏈,因此我們也需要了解下盜鏈、反盜鏈和逃避反盜鏈的原理。 盜鏈 引用百度百

原创 Linux安裝二進制PHP7.2

通過性能評測,可以看出PHP7對性能進行了較大的優化,相比與PHP5.x有50%-150%的性能提升,因此,爲了提升我們服務的響應速度,降低機器負載,需要進行版本升級。 因爲對二進制比較熟悉,所以沒有用yum的方式進行安裝,採用的二進制安裝

原创 Linux安裝Mysql5.6

由於安裝的mysql8.0和其他服務器的數據庫(版本5.1.30)由於版本差異過大,無法通信,因此需要安裝一箇中間版本5.6,但是它的安裝過程和mysql8.0安裝略有不同。 解壓文件 // 解壓文件生成兩個xz格式的壓縮文件 $ tar

原创 PHP與Mysql8不兼容問題彙總

在安裝Mysql8.0之後,需要跟我們原有的PHP進行協同工作,然而原先與Mysql5.1能夠很好協同的代碼,突然報錯,看來需要做一些額外的工作。 報錯:PDO::__construct(): Server sent charset (25

原创 Linux安裝mysql 8.0

經過一番努力下載mysql文件,我們可以開始Mysql8.0的安裝了。 解壓文件 // 解壓文件生成兩個xz格式的壓縮文件 $ tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar mysql-r

原创 Linux升級wget/curl用於下載https文件的過程

因爲需要提升服務器的性能以及支持mysql更新版本的某些特性,因此決定升級mysql版本從5.1.30到8.0,目標確定下來就開始幹。 Mysql安裝方式選擇 在Linux上安裝應用,一般有三種方式,優劣對比分別爲: 因此我們選擇二進制安