月份: 2019 年 11 月

安裝 MariaDB

No Comments
  • sudo apt install mariadb-server
  • mysql_secure_installation
  • ( –> 於 20211220 補充:其實上面這行會出錯是因沒有下 sudo。所以下下看說不定不用後面那些步驟。而後面那些針對性的步驟就是忘了密碼去重設用的。)
  • ( –> 於 20211224 再補充,很重要:因此筆者照前兩天的結論下了 sudo,就一切順利不再照著以下文章的步驟。然而依此,在 cli 下使用 root 進入 mariadb 提示命令下,再退出,則當再次進入時不再需要密碼便可直接登入資料庫。這有很大的安全顧慮。其次,當使用 phpmyadmin 時,仍發生無法 root 登入的狀況。因此唯有照本篇文章的步驟[刪 socket],才不會有這些問題。)
  • 接著出現如下提示
按 ctrl-c 中斷掉

預期直接按 ENTER 就能設定新的 root 密碼,但現在看來必須繞道而行了。

  • 先停止 mysqld 運行
  • sudo systemctl stop mysqld
  • 接著進入 mysqld 安全模式
  • sudo mysqld_safe –skip-grant-tables –skip-networking &注意 – – s 前是雙 dash)
    (註:若後續操作上不符預期,將其移回前景試試)
  • 以 root 身份,不用密碼登入
  • mysql -u root
  • 在 mysql 命令提示行下輸入:
  • SELECT user, plugin FROM mysql.user;
  • 查到 plugin 有筆 unix_socket 記錄,須刪除
  • UPDATE mysql.user SET plugin=””;(注意使用 ansi 字元雙引號)
  • 接著可以直接設定 root 密碼,也可登出再設定
  • UPDATE mysql.user SET password=PASSWORD(“your_new_password”) WHERE user=”root”;(注意使用 ansi 字元雙引號)
  • 最後清空,離開。
  • FLUSH PRIVILEGES;
  • EXIT;

備註:我們後續若安裝到 Ubuntu 所提供的 phpmyadmin 套件,安裝過程中會安裝 phpmyadmin 自己的資料庫,其需要 MariaDB root 的密碼是空白未設定的。因此使用者若不想略過那個步驟,那麼這邊的密碼就需設為空白或不去設它,等到 phpmyadmin 安裝成功後再回來設定 root 密碼。

接著終止剛剛執行的安全模式

  • 查看所有 mysql 的行程編號
  • ps aux | grep mysql
  • 終止所有 mysql 行程
  • sudo kill -9 PID1, PID2, … 如圖範例
  • 啟動資料庫
  • sudo systemctl start mysqld
  • mysql_secure_installation

最後,再一次執行 mysql_secure_installation 按照提示回答 y/n 即完成 資料庫的安裝。

依序是:設定 root 密碼,移除匿名使用者(y),禁止 root 遠端登入(y),
移除測試資料(y),重載權限表(y)。

欲操作管理 mysql 資料庫,可以直接使用它的 command line 模式,即下達:mysql -u “使用者名稱” -p

我們目前,只有一位使用者 root。爾後會需要新增使用者及其資料庫供 wordpress 使用。下篇文章,將安裝 PhpMyAdmin 的資料庫管理介面

注意:我們在前面有手動設定了 root 密碼,它會被記錄到 ~/.mysql_history,因此必須將它刪除。需習慣注意於密碼不能被 log 下來。下 truncate -s 0 .mysql_history

20211223 更新,變更資料庫存放路徑

  • 筆者想把它放到 ramdisk 上,簡述如下步驟。請參考這篇文章。
  • https://linuxhint.com/change_mysql_data_directory_ubuntu/
  • 1. 先查看相關路徑
  • sudo grep -R –color datadir /etc/mysql/*(注意 – -c)
  • 2. 終止 mariadb
  • sudo systemctl stop mariadb
  • 3. rsync
  • sudo rsync -avh –delete /var/lib/mysql/ /ram/mariadb/(注意 – -d)
  • 4. 修改 apparmor 設定
  • sudo vim /etc/apparmor.d/tunables/alias
  • 5. 追加一行
  • alias /var/lib/mysql/ -> /ram/mariadb/,
  • 6. 重啟 apparmor
  • sudo systemctl restart apparmor
  • 7. 修改 mariadb 組態
  • sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
  • 將 datadir 改成新的路徑
  • 8. 啟動 mariadb。完成。
  • 最後說明;聽說 mysql 是吃記憶體怪獸,或許是將那些索引到的 tables 都放到 memory,故沒理由資料庫檔案不快取到記憶體上。所以,將它放到 ramdisk 應是多此一舉了,也就是若如此,記憶體很可能就有兩份同樣的檔案,那麼便是浪費了。

Categories: Linux 架設網站

Tags: ,

PHP Code Snippets Powered By : XYZScripts.com