調整 Mysql/MariaDB Table 名稱大小寫不敏感

MySQL 與 MaraiDB 預設對於 table 的名稱是大小寫敏感的, 也就是 case sensitive, 但最近遇到客戶要求要將表名稱設定為大小寫不敏感, 設定上十分容易, 步驟如下

注意: 請先檢查是否有任何 Table 名稱在改為小寫後會重複的 Table, 若發生衝突 MySQL 會崩潰

編輯 MySQL/MariaDB 設定檔(不同作業系統可能會在不同目錄)

sudo vim /etc/mysql/my.cnf

找到 [mysqld] 這個 section 下方加入

lower_case_table_names = 1

接著重新啟動 MySQL/MariaDB 即可

sudo service mysql restart

在 Debian 8 上安裝 MariaDB 10.1

MariaDB 是 MySQL 的移植版本, 不僅保有 MySQL 原本的功能, 也新增很多 MariaDB 獨有的功能, 使用上相容於 MySQL 函數庫以及相關工具, 是非常棒的MySQL替代品, 本文章將介紹如何透過 apt-get 將 MariaDB 10.1 安裝在我們的 Debian 8 主機上

新增 MariaDB 官方套件庫

sudo apt-get install software-properties-common -y
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.ubuntu-tw.org/mirror/mariadb/repo/10.1/debian jessie main'

在 IPv6 的環境下, 第二行指令可能會連線失敗, 改用 IPv4 連線就可以解決這個問題

更新套件庫

sudo apt-get update

安裝 MariaDB

sudo apt-get install mariadb-server -y

設定 MariaDB Root 密碼

安裝過程會詢問 root 密碼, 連續輸入兩次即可

啟動 MariaDB

sudo service mysql start

強化 MariaDB 安全性

mysql_secure_installation

依照提示回答下列問題

Enter current password for root (enter for none): 輸入 root 密碼

Change the root password? [Y/n] n
安裝時已經設定過 root 密碼, 因此無須更換 root 密碼

Remove anonymous users? [Y/n] Y
移除匿名使用者

Disallow root login remotely? [Y/n] Y
禁止 root 遠端登入

Remove test database and access to it? [Y/n] Y
移除多餘不必要的資料庫

Reload privilege tables now? [Y/n] Y
立刻重新載入權限表

測試

我們可以透過以下指令嘗試連接資料庫

mysql -u root -p

輸入 root 密碼後 按下 enter, 若畫面出現 Welcome to the MariaDB monitor. Commands end with ; or \g. 就代表我們成功安裝了 MariaDB 到我們的 Debian 主機上

控制 MariaDB

啟動

sudo service mysql start

停止

sudo service mysql stop

重新啟動

sudo service mysql restart