讓 MySQL Server 不提供網路連線

不再讓 MySQL Server 提供網路連線,可以減少資料庫被駭客入侵的機會;只要跟網路相關的服務開放得越多,被入侵的風險性就越高。因此找了一下資料,將 MySQL Server 的 Networking 功能關閉,這樣子就不會使用到 TCP/IP。

在 my.cnf 中的 [mysqld] 區段內添加

skip-networking
或是在執行 mysqld 時加入 –skip-networking

再利用 netstat 查詢看看,是否真的沒有開啟 TCP/IP Port

netstat -an | grep PORT_NUMBER (Default is 3306)

接著,相關的系統就得改用 named pipes 或 shared memory (在 Windows 內) 或 Unix socket files (在 Unix 內)。以 WordPress 的設定範例:

將 define(‘DB_HOST’, ‘DomainName’); 更改為
define(‘DB_HOST’, ‘:PATH_AND_SOCKET_FILENAME_OF_UNIX_SOCKET_FILES’);

相關文章:

MySQL 內資料表或欄位的大小寫

在 MySQL 操作的過程中,對於資料庫、資料表、欄位等名稱的大小寫,在不同系統 (Ex: Windows, Unix like),預設上會有不同的差異。在 Windows 中,操作時不需要注意大小寫;但在 Unix like 系統內,則預設值是需要特別注意大小寫。

例:資料庫 建立時的名稱是定為 TestDatabase

在 Unix like 內一定要區分大小寫

mysql > use TestDatabase;

但是在 Windwos 內,則是怎麼寫,它都會一律轉換成小寫;所以指令怎麼下達都行

mysql > use Testdatabase;
mysql > use testdatabase;
mysql > use TESTDATABASES;

幸好這裡只是調整參數就行,不然寫好的程式要是因為資料庫更換到不同系統上安裝,那就麻煩了 …

在 my.cnf 中或許會找不到參數 lower_case_table_names;那我們就自己加進去。詳細的說明請參考 MySQL 官方文件 https://dev.mysql.com/doc/refman/5.6/en/identifier-case-sensitivity.html

lower_case_table_names = 1; # 這樣就算在 Unix like 內,也可以不區分大小寫

 

MySQL 備份及還原

備份 MySQL 範例指令 (指令參考自 http://dba.tw/index.php?topic=137.0 )

mysqldump -u username -p -P portnumber -S path_of_socket databasename [tablename]> filename.sql

還原 MySQL 的範例指令 (指定還原到某個資料庫,這個資料庫需事先建立)

mysqldump -u username -p -P portnumber -S path_of_socket databasename < filename.sql

使用 mysqldump 一直都不成功的話,還可以在 mysql client 內直接執行 SQL Script (指令參考自 https://dev.mysql.com/doc/refman/5.6/en/mysql-batch-commands.html )

利用 mysql client 登錄 MySQL server
mysql> source filename.sql 或
mysql> \. filename.sql

 

多個 MySQL Servers 架設在同一台伺服器中

適用的環境:

  1. FreeBSD
  2. MySQL 5.6 Server

採用 ports 的方式,在 FreeBSD 安裝 MySQL 5.6 Server;原本是想嘗試透過原始碼 (source) 安裝,卻因為事隔太久,原有的設定、安裝指令都已經被 MySQL 團隊廢除 (Ex: configure 功能已被 cmake 取代)。

然而利用 ports 安裝 MySQL 5.6 Server 之後,卻經常在執行程式時發生錯誤。像是剛安裝好時,都得先執行 mysql_install_db 以初始化資料庫的所有檔案;在此時就遇上 ./xxxxx not found 的訊息。試了又試,把所在路徑切換到 /usr/local 後,再重新執行 mysql_install_db 就恢復正常。

» Read more