11,470 total views, 154 views today

MySQL – 匯出、匯入

匯出資料庫

使用 .sql 匯入資料庫

使用 phpMyAdmin 匯入有 foreign key 的資料表處理方案

匯入 fk 資料表時,就算所有關聯資料表一起匯入也會因為順序不一致而發生

這個錯誤

從網站上可以查詢到必須設定 SET FOREIGN_KEY_CHECKS=0; ,但是使用 SQL 指令執行後再使用 SELECT @@FOREIGN_KEY_CHECKS; 查看會發現還是 1 ,也就是沒有被關閉

解決的方法是修改匯入 .sql 檔案,在最開頭加上 SET FOREIGN_KEY_CHECKS=0; 以及結尾加上 SET FOREIGN_KEY_CHECKS=1;

類似像這樣

使用 LOAD DATA 匯入 CSV 檔案

直接匯入 CSV 檔案到 MySQL 資料庫

實際範例

需要注意指令順序

效能

如果可以使用 LOAD DATA 一定會比使用程式拆解後逐筆插入快,五萬筆的匯入在小白 MacBook 上也只需不到 3 秒

ERROR 1045 (28000): Access denied for user ‘XXXXX’@’%’ (using password: YES)

將 LOAD DATA INFILE 改成 LOAD DATA LOCAL INFILE

268 total views, 4 views today

.htaccess 轉址

404 轉到某一頁

轉到 HTTPS://

將 A 網站的網頁對應到 B 網站的同一網頁

RewriteCond 建立條件

RewriteCond 可以先對網址分析,符合條件才進行處理

Log

紀錄 Log 設定只能寫在 httpd.conf 內,不是寫在 .htaccess

Log 只在作用時紀錄,500 錯誤的設定是沒有紀錄的,意思就是還是要靠自己用猜的除錯

114 total views, 1 views today

Postfix 使用 MySQL 資料庫虛擬使用者 – 2. mysql:/etc/postfix/mysql-virtual-maps.cf

雖然使用 virtual_mailbox_maps =  /etc/postfix/virtual 對應到一個文字檔案管理帳號資訊,確實可以減少新增維護實體本機帳號的工作以及避免不必要的資安問題,不過人都是不滿足的,每次都要先 vi 一下再 postmap 實在是太麻煩了,有更方便的方式嗎?

不妨試試使用 MySQL 資料庫來管理帳號 …

參考

轉換為 MySQL 資料庫當作使用者帳號是以 Postfix 使用虛擬使用者 – 1. /etc/postfix/virtual 基礎來修改,所以請從頭實做

MySQL 資料庫的準備

 

使用者帳號資料表

 

信件資料表

附件資料表

 

Postfix 設定

vi /etc/postfix/main.cf

vi /etc/postfix/mysql-virtual-maps.cf

重新啟動 postfix

CentOS 7

CentOS 6

使用 postfix reload 可以直接看到回傳訊息

測試是否可取得值,以及是取到什麼值?

CentOS 6: postfix/smtpd: warning: connect to mysql server localhost: Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

修改 /etc/postfix/mysql-virtual-maps.cf 增加 hosts 的參數並且輸入連接的位址

38 total views, 2 views today

Google – 結構化資料 (application/ld+json)

Google 搜尋結果這些附加資訊是如何產生的?

露天範例

臉書評分範例

decode

34 total views, no views today

MySQL – /etc/my.cnf

設定時區

最大連線數

重新啟動 MySQL 後使用 SQL 指令查詢是否生效

CentOS 7 + MySQL 5.6 max_connections 214 問題

Hoyo 只修改了 mysqld.service 即可讓「數字正常」,沒有修改系統 Open File Limit 是否有影響需要後續觀察

開啟 log

開啟 general-log 功能可以紀錄 MySQL 所有執行的 SQL 指令,

編輯 my.cnf

使用 SQL 指令修改 Log 狀態

修改語系為 UTF8

  • character-set-server = utf8 → collation_server : utf8_general_ci
  • collation-server = utf8_unicode_ci → collation_server : utf8_unicode_ci

將 SQL mode 移除預設嚴格模式

InnoDB 如何分區區分檔案

常駐 IP

修改 wait_timeout

53 total views, no views today

phpQuery – 讓 PHP 內的 HTML 消失

參考資源

如果以後不想寫像下面這種 HTML, PHP 混在一起的爛程式,請繼續往下看,否則可以關掉網頁了

以下是一個判斷是否有登入會員之後顯示不同內容的網頁

將所有內容設計在前端 HTML 內

為了讓 PHP 滾出 HTML,這裡不使用其他 PHP 模板,因為那只是另一種混用的方式,而且模板不同語法還不同又產生了新的問題

直接讓前端設計一個可以切換顯示結果的機制,然後將切換的方式交給 PHP 即可,例如以下的切換 class 顯示控制方式

使用 class=”Login” 判斷是登入才可以顯示內容;class=”Logout” 是未登入顯示內容,未登入時將所有已登入內容移除,登入後反之

只要控制 remove() 對象即可切換是否登入會員內容,接下來就是將 jQuery 的動作交給 phpQuery 來做

讓 PHP 控制 DOM

以上面的例子為例,可以移除底下的 JavaScript 控制,準備讓 PHP 來做相同的事情

PHP 代碼

將 HTML 讀入之後,根據 session 結果套用和 jQuery 對應功能

使用 phpQuery 即可讓前端 HTML 擁有完全控制網頁輸出內容的能力

32 total views, no views today