Debian 9 使用 MariaDB 徹底代替了 MySQL。因此在配置方面,相比之前版本有很多的不同。
安裝MariaDB
安裝 MariaDB 仍舊可以使用下面的命令,相比使用 mariadb-server,使用 mysql-server 能夠保證對 MySQL 的兼容性。
apt-get install mysql-server
因爲 Debain 9 源內的 MariaDB 10.0 使用了 UNIX 套接字認證,所以在全新安裝 MariaDB 的過程中,不再有 MySQL root 密碼的配置窗口.
提供遠程訪問權限
這部分需要兩個步驟,修改服務監聽地址 和 授權數據庫.
修改服務監聽地址
不再是修改 my.cnf 了。這次,你需要修改的是這個文件:
/etc/mysql/mariadb.conf.d/50-server.cnf
修改的內容一樣,在 [mysqld] 區塊下,修改 bind-address 的值。下面的一段實例,是允許任意IP地址連線數據庫:
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
bind-address = 0.0.0.0
授權數據庫
你需要授予數據庫遠程訪問的權限。首先使用
mariadb
來進入 MariaDB 命令行。只要你是 Linux 的 root,登入 MariaDB 不需要密碼。
接下來,給 MariaDB 的 root 用戶授予遠程訪問權限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '您的數據庫密碼' WITH GRANT OPTION;
flush privileges;
修改 MariaDB 的 root 密碼
use mysql
UPDATE user SET Password = password('新密碼') WHERE User = 'root';
flush privileges;
使用原生 MySQL 認證
因爲默認使用了 UNIX SOCKET 認證,有些 phpMyAdmin 在登入時會發生 “Access Denied” 錯誤。我們可以更改 UNIX SOCKET 認證爲原生 MySQL 認證.
update mysql.user set plugin = 'mysql_native_password' where User='root';
flush privileges;
quit
最後,重啓一下數據庫即可
systemctl restart mariadb.service