1. 程式人生 > 資料庫 >QNAP威聯通安裝MySQL(container station安裝 docker安裝)更換代替自帶的MariaDB

QNAP威聯通安裝MySQL(container station安裝 docker安裝)更換代替自帶的MariaDB

QNAP似乎並沒有自帶MySQL資料庫元件,因此我採用docker方式安裝

開啟container station,即docker,安裝MySQL

在Docker Hub中選擇如圖

選擇安裝mysql
選擇mysql安裝版本
選擇latest版本安裝,預設都是8.0

等待較長時間後(我大概等了10分鐘),可以看到如圖正在執行的MySQL


嘗試登陸mysql

密碼在啟動日誌裡,所以我們接下去找一下
DOCKER介面截圖

展開控制檯找日誌裡的密碼

MYSQL密碼獲取
每個人安裝後的密碼都是隨機的

執行如下命令,進入MySQL
DOCKER登陸mysql終端機執行命令
在執行命令中輸入 mysql -u root -p密碼複製過來 
登陸mysql成功會出現如下介面

mysql>
  • 安裝後需要更改為自己的密碼
FLUSH PRIVILEGES;

ALTER USER "root"@"localhost" IDENTIFIED  BY ‘abc123’;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ‘abc123';
(上面兩句話都可以,任選一種,但是密碼部分必須重新打才有效)
 

然後繼續執行下列程式碼
flush privileges;
quit;
  •  

 

大功告成,我們用mysql客戶端軟體連線測試一下

 

使用Navicat連線MySQL

連線發現不成功

這是因為使用的是遠端連線,換本地連線試試

在威聯通的app center中的phpMyAdmin連線試試,成功登陸,所以資料庫沒問題

那麼,如何開啟遠端訪問?

 

MySQL開啟遠端訪問

登入後先使用mysql資料庫    可以show databases; 檢視有四個資料庫


然後使用命令 use mysql

查詢
select user,host from user;

如果沒有"%"這個host值,就執行下面這兩句:

mysql> update user set host='%' where user='root';
mysql> flush privileges;

 

然後再執行下面這兩句:

select user,host from user;

發現root後面有百分號了。

設定可以遠端訪問
grant all privileges on *.* to root@'%'identified by 'abc123';

有的版本不支援上述寫法,就用下面的寫法:

grant all privileges on *.* to ‘root'@‘%';

還是不能遠端訪問?

如果還是不能訪問,只有兩種可能

1、路由器埠轉發出了問題

雖然container station裡面mysql的埠是3306,但威聯通與路由器通訊的埠可不是3306!!!檢視真正的埠:

開啟設定,高階,

我這裡真正的埠號是32773,所以外網連線的時候,在路由器的埠轉發中,內網埠其實是32773 

2、防火牆問題

威聯通一般沒有防火牆問題,只可能是與MariaDB埠衝突之類的,因為威聯通自帶一個MariaDB。如圖,我一般是禁用的