蒼天家 本家
MariaDB 跨主機 SSL 傳輸筆記 2020-04-14
1. 確認是否有開啟 Private Ip
2. 防火牆設置
進入 DigitalOcean 後台管理
Manage > Droplets > Networking > Firewalls

3. 新增存取權限
利用 MySQL GUI 新增存取權限
app server ip: 10.130.99.96
database ip: 10.130.68.78
GUI 應新增 10.130.99.96 存取權限

```
mysql -u root -p
```

```
CREATE USER 'kaoru'@'10.130.99.96' IDENTIFIED BY 'p@ssw0rd';
GRANT ALL PRIVILEGES ON *.* TO 'kaoru'@'10.130.99.96' WITH GRANT OPTION;
FLUSH PRIVILEGES;
```

4. 測試連線
app server 利用 GUI 測試連線
10.130.68.78
建議開啟 display_errors=1 除錯

```
$conn = mysqli_init();
mysqli_ssl_set(
$conn,
$client_key_path,
$client_cert_path,
$ca_cert_path,,
NULL,
NULL
);
if (!mysqli_real_connect($conn, $ip, $user, $passwd, $dbname))
exit('DB REAL CONNECT ERROR');
```

appendix.
安裝 MySQL 方法
https://blog.gtwang.org/linux/centos-7-install-mariadb-mysql-server-tutorial/

產生 SSL 簽證教學
https://www.cnblogs.com/zhoujinyi/p/4191096.html
(可以利用 -config ssl.conf 參數直接讀取 ssl 設定檔)

關閉 MySQL 日誌
在 /etc/my.cnf.d/mariadb-server.cnf 新增

```
[mysqld]
skip-log-bin

...
#log-error=/var/log/mariadb/mariadb.log
...
```

產生憑證注意 mariadb 需要 server 與 ca 頻證不同
但是產生憑證時 common name欄位(server's hostname)需要保持 server / ca / client (不確定是否全部都要一致)
因為沒有開啟除錯
所以一直不知道問題在哪
關於我

隨手用部落格

紀錄平時學習用到的東西

考慮想重改版

Github 自學倉庫

我的 Github 帳號

PHP開發

公司: 原生PHP

個人: Slim -> Flight