[Linux系統] ubuntu安裝MySQL

2019/01/29 Linux

前言

這篇是教導如何使用 apt 指令來手動建置 MySQL 資料庫環境,並且做相關設定提供連線到我們所建立的資料庫環境中。

安裝 MySQL

這邊有三條指令請分別依序的安裝,分別為伺服端、客戶端以及開發中一些MySQL資料庫的函式庫,記得要在 sudo 管理者權限下才能安裝。

sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev

測試資料庫是否安裝成功

這邊使用 netstat 指令來查看, netstat 的功用是顯示通訊協定統計資料以及目前的TCP/IP 網路連線,所以我們要使用它來查看已安裝好的 MySQL 是否有連線監聽。此指令要另外安裝,安裝指令如下:

sudo apt-get install net-tools

安裝完成後就能透過 netstat 指令來查看 MySQL 是否安裝成功:

sudo netstat -tap | grep mysql

設置 MySQL 允許遠端訪問

此設定是因為目前這台主機是固定IP且提供外部連線可以進入我的伺服器中進行資料庫存取,因此要設置 MySQL 允許遠端訪問。

1. 編輯 mysqld.cnf

首先編輯 mysqld.cnf 文件這個文件定義了所有 MySQL 的配置參數。進入後將 bind-address = 127.0.0.1 註解起來,完成後鍵盤輸入 :wq 儲存並退出 vim。

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

若在進行 vim 修改文件的過程中方向鍵按下去後變成ABCD,刪除鍵無效時代表 vim 本身套件有問題,另一篇有教你如何解決。

2. 進入 MySQL 服務

透過以下指令進入 MySQL 服務,中間的 root 即是你的資料庫的 user 名稱,輸入資後會要求你輸入密碼。若你當初安裝資料庫時系統沒提示你建立資料庫密碼的話別擔心,請參考這篇,那篇會教你如何查詢你的資料庫的 userpassword

mysql -u root -p

輸入完成後看到 mysql> 就表示你成功進入MySQL 服務。

忘記密碼傳送門:https://andy6804tw.github.io/2019/01/31/ubuntu-mysql-password/

3. 執行授權命令

MySQL 環境下執行授權命令(授權給遠程任何電腦登錄資料庫),輸入以下指令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

mysql8開始不支援此寫法 GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘你的密碼’ WITH GRANT OPTION;

上面指令中 root 為你的資料庫 user,此指令是透過 * 允許所有外部 IP 可以自由存取我這台 Server 的資料庫,但這有安全問題若是正式主機建議就輸入開發者的 IP 就好。

若有出現以下錯誤訊息是因為,MySQL8和5的密碼加密方式不同。所以即便輸入正確密碼依然無法正常登入。

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'root' WITH GRANT OPTION' at line 1.

解決辦法手動建立MySQL8的帳戶。

CREATE USER 'root'@'%' IDENTIFIED BY 'PASSWORD';

4. 更新設定

全部設定完成後我們輸入以下指令進行刷新:

flush privileges;  

注意在 MySQL 服務中每個指令結尾要有分號!

5. 退出 MySQL 服務

退出下 exit 關鍵字即可結束 MySQL 服務。

exit

重啟 MySQL

退出 MySQL 服務後我們也完成允許遠端訪問的設定,最後重啟 MySQL 即可完成並生效所有的設定。

service mysql restart

最後就可以通過我們電腦的資料庫視覺軟體(MySQL Workbench、Navicat…etc)連接上我們的資料庫了。

MySQL 簡單指令

# 取得所有使用者
SELECT User,Host FROM mysql.user;
# 移除使用者
drop user 'username'@'%';
# 新增使用者
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
# 授予用戶權限
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
鼓勵持續創作,支持化讚為賞!透過下方的 Like 拍手👏,讓創作者獲得額外收入~
版主10在2020年首次開設YouTube頻道,嘗試拍攝程式教學。想要了解更多的朋友歡迎關注我的頻道,您的訂閱就是最大的支持~如果想學其他什麼內容也歡迎許願XD
https://www.youtube.com/channel/UCSNPCGvMYEV-yIXAVt3FA5A

Search

    Table of Contents