網頁

2016年3月18日 星期五

WP4.2移機安裝問題:Unknow collation: 'utf8mb4_unicode_ci'

一如往常的想將在電腦弄好的wp網站放上server,放入資料庫資料時卻發現回應如下圖

仔細看了下:Unknow collation: 'utf8mb4_unicode_ci'。覺得很怪,以前都是用utf8_unicode_ci,查了下資料,發現The utf8mb4 Upgrade其中提到

In WordPress 4.2, we’re upgrading tables to utf8mb4, when we can. Your site will only upgrade when the following conditions are met:
  • You’re currently using the utf8 character set.
  • Your MySQL server is version 5.5.3 or higher (including all 10.x versions of MariaDB).
  • Your MySQL client libraries are version 5.5.3 or higher. If you’re using mysqlnd, 5.0.9 or higher.
查了下自己的mysql server版本才5.1.x,看來得自行重新安裝一次了。

2016年3月17日 星期四

MariaDB中發生Cannot load from mysql.proc. The table is probably corrupted

最近改使用JetBrain的DataGrip試試,但一直發生"Cannot load from mysql.proc. The table is probably corrupted",以致於無法載入table,但其他都正常。查了下發現官網也有呈述這類問題,看起來跟mysql的版本有關,只要升級後就可以了,如下圖:

取自:MySQL to MariaDB migration: handling privilege table differences when using mysqldump

所以執行底下指令
$ mysql_upgrade --force -u root -p
Enter password:
MySQL upgrade detected
Phase 1/6: Checking and upgrading mysql database
Processing databases
mysql
mysql.column_stats                                 OK
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.event                                        OK
mysql.func                                         OK
mysql.gtid_slave_pos                               OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
#.......忽略
Phase 6/6: Running 'FLUSH PRIVILEGES'
OK

看到回應OK後再試試就沒問題了

參考網址:
MySQL to MariaDB migration: handling privilege table differences when using mysqldump

Mac上使用HomeBrew安裝MariaDB

大致步驟是
  1. 備份所有資料,若使用者過多應備份使用者資訊
  2. 使用HomeBrew安裝MariaDB
執行
$ mysqldump -uroot -p --all-databases --flush-logs --master-data=2 > /Users/alvin/all_databases.sql
Enter password: 
mysqldump: Error: Binlogging on server not active

出現"Binlogging on server not active"的Error,查了下Google,看了mysqldump: Error: Binlogging on server not active才知道少設定了log-bin,要修改my.cnf,印象中我的是直接下載mysql,在使用者資料夾中會存在個.my.cnf直接修改即可。
$ vim ~/.my.cnf
#加入
log-bin=mysql-bin
#重啟mysql server
$ /usr/local/mysql/support-files/mysql.server restart
#再dump一次
$ mysqldump -uroot -p --all-databases --flush-logs --master-data=2 > /Users/alvin/all_databases.sql
這樣就備份好了


安裝好後,針對.my.cnf要確認裡頭設定log-error
$ vim ~/.my.cnf
log-error=/tmp/mysql.log

再執行底下這行,回應SUCCESS就ok了
$ mysql.server start
Starting MySQL
. SUCCESS!

參考網址:
Installing MariaDB 10.0.10 on Mac OS X with Homebrew
OSX How To: Uninstall native MySQL and install MariaDB via Homebrew
mysqldump: Error: Binlogging on server not active
mysqld_safe

2016年3月14日 星期一

centos 6中設SSL加密Apache server

之前在Mac上設置了SSL加密Apache server:Mac學習筆記-開啟HTTPS,這陣子正好也要在自己運行中的Cent OS主機上設置,決定如法泡製,不過卻一直不成功,後來發現主要兩個問題
  1. SELinux設定問題
  2. 防火牆設定忘了開(畢竟是運行中的主機)

第一個問題是Cent OS 6預設就是開啟的

以上轉貼自在 CentOS 設置一個 SSL 加密的網頁伺服器

很多人是都關閉它可以省掉很多權限運行上的問題,很多設定上的看不出的錯誤都是因這個而發生,關閉是比較輕鬆,不過我沒關閉,所以需要注意這類的問題。

第二個問題就不特別說了,只要有防火牆設定都要注意。

底下就將整個過程都記錄下來(轉自在 CentOS 設置一個 SSL 加密的網頁伺服器

$>yum install mod_ssl openssl #安裝ssl套件

$>openssl genrsa -out ca.key 2048 #產生私鑰
$>openssl req -new -key ca.key -out ca.csr #產生 CSR
$>openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt #產生自我簽署的金鑰

#複製檔案至正確位置
$>cp ca.crt /etc/pki/tls/certs
$>cp ca.key /etc/pki/tls/private/ca.key
$>cp ca.csr /etc/pki/tls/private/ca.csr

#假如你遷移了這些檔案而不是複製它們,你可以用以下的指命來矯正這些檔案的 SELinux 脈絡
$>restorecon -RvF /etc/pki
$>vi /etc/httpd/conf.d/ssl.conf

#找到SSLCertificateFile 改成 /etc/pki/tls/certs/ca.crt
SSLCertificateFile /etc/pki/tls/certs/ca.crt

#找到SSLCertificateKeyFile 改成 /etc/pki/tls/private/ca.key
SSLCertificateKeyFile /etc/pki/tls/private/ca.key

#重啟http server
$>service httpd restart


參考網址:
在 CentOS 設置一個 SSL 加密的網頁伺服器
CentOS Apache使用SSL