2018年7月11日 星期三

Debian 9.4 安裝配置 MariaDB (MySQL)

本文參考https://ralf.ren/1717國立白河商工日誌
Debian 9 使用 MariaDB 徹底代替了 MySQL。相較於 mariadb-server,使用 mysql-server 能夠保證對 MySQL 的兼容性。
  1. 安裝MariaDB (MySQL)
    apt-get install mysql-server
  2. 如果允許遠端連線資料庫(非必須)
    vim /etc/mysql/mariadb.conf.d/50-server.cnf 將bind-address=127.0.0.1改成可連線的網段或0.0.0.0全部開放(mark起來也可)
  3. 使用原生 MySQL 認證
    因為默認使用了 UNIX SOCKET 認證,有些 phpMyAdmin 在登入時會發生 「Access Denied」 錯誤。我們可以更改 UNIX SOCKET 認證為原生 MySQL 認證。
    • update mysql.user set plugin = 'mysql_native_password' where User='root';
    • flush privileges;
  4. 修改root密碼
    • 方式一:
      mysqladmin -u root password 'new_password'
    • 方式二
      mysql直接進入資料庫
      Grant All Privileges On *.* To root@localhost Identified By 'password' With Grant Option;
      • Grant All Privileges : 代表將所有權限授權給
      • On *.* : 代表在那裡,第一個*為資料庫名稱,第二個星為資料表名稱,*.*為全部授權的意思
      • To root@localhost : 代表給 localhost 上的 root 這個人
      • Identified By ‘password’ : 在此輸入密碼
      • With Grant Option; : 表示這個使用者可以再 Grant 權限給其它使用者
      • 在使用 Grant 指令時,每個指令的第一個字要大寫
      • 這樣就完成權限設定的動作了
  5. 重新啟用資料庫
備註:
  1. 考量當初資料庫預設字元為Latin1,新系統已將之改為utf8mb4,若要沿用:
    • 將/etc/mysql/mariadb.conf.d/50-server.cnf
      • #character-set-server  = utf8mb4
      • #collation-server      = utf8mb4_general_ci
    • 將/etc/mysql/mariadb.conf.d/50-client.cnf
      • #default-character-set = utf8mb4
  2. 若要使用新版moodle或SFS3U,有必要將原系統innodb-base的文件格式Antelope改為Barracude(Antelope是innodb-base的文件格式,Barracude是innodb-plugin引入的文件格式,同時Barracude也支持Antelope文件格式。),可在50-server.cnf設定當中設定:(參考杜子的網管筆記
    • max_allowed_packet = 100M   (加入這行,可以讓轉碼時每次處理 5000筆以上,加快速度)
    •  innodb_file_format = Barracuda
    •  innodb_file_format_max = Barracuda
    •  innodb_file_per_table = 1
    •  innodb_large_prefix