Debian 9 使用 MariaDB 徹底代替了 MySQL。相較於 mariadb-server,使用 mysql-server 能夠保證對 MySQL 的兼容性。
- 安裝MariaDB (MySQL)
apt-get install mysql-server - 如果允許遠端連線資料庫(非必須)
vim /etc/mysql/mariadb.conf.d/50-server.cnf 將bind-address=127.0.0.1改成可連線的網段或0.0.0.0全部開放(mark起來也可) - 使用原生 MySQL 認證
因為默認使用了 UNIX SOCKET 認證,有些 phpMyAdmin 在登入時會發生 「Access Denied」 錯誤。我們可以更改 UNIX SOCKET 認證為原生 MySQL 認證。 - update mysql.user set plugin = 'mysql_native_password' where User='root';
- flush privileges;
- 修改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 指令時,每個指令的第一個字要大寫
- 這樣就完成權限設定的動作了
- 重新啟用資料庫
備註:
- 考量當初資料庫預設字元為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
- 若要使用新版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