時間:2022-06-20來源:www.www.newsthatmovesu.com作者:電腦系統城
用的是百度云的云服務器(其他云服務器同理),系統是Ubuntu 20.04 LTS,Mysql版本8.0+,需求是在Windows上開發,可以隨時遠程連接讀寫服務器上的Mysql
用ssh客戶端或者云服務器廠家提供的網頁版控制臺都行,只要你能連上服務器就行
順便私心推薦一個好看又好用的ssh客戶端:NextSSH
先更新一下apt倉庫:
1 | sudo apt-get update |
順便說一下,因為不知道你們用的都是什么賬戶,我也搞不清楚哪些指令權限要求比較高,所以我所有指令都加sudo
了,這樣不管是誰復制粘貼都能直接用,不會出現權限問題。
然后安裝mysql-server:
1 | sudo apt-get install mysql-server -y |
到這一步其實mysql就已經安完了并且自動啟動了,可以看一下:
1 | sudo service mysql status |
此時mysql的root賬戶沒有設置密碼,可以直接用mysql
指令登錄:
設置一下root的密碼(mynewpassword
部分改成你自己要設置的密碼):
1 | ALTER USER 'root' @ 'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword' ; |
退出,輸入mysql
指令發現不能直接登錄了:
目前為止可以直接在服務器上用mysql了。
默認情況下,MySQL 數據庫僅監聽本地連接,如果想讓外網遠程連接到數據庫,我們需要修改配置文件,讓 MySQL 可以監聽遠程固定 ip 或者監聽所有遠程 ip。
這里需要使用一個命令行文本編輯器,我用的vim所以就教一下vim,你們要是會nano或者別的自然知道該怎么弄,要是聽不懂就照我的來。安裝vim:
1 | sudo apt-get install vim -y |
然后用vim打開mysqld.cnf
配置文件:
1 | sudo vim /etc/mysql/mysql .conf.d /mysqld .cnf |
找到bind-address = 127.0.0.1
這一行:
這個值是127.0.0.1
的時候只監聽本地連接,改成0.0.0.0
可以監聽所有連接,或者也可以改成僅允許指定ip連接都可以。
現在vim是閱讀模式,按一下i
進入編輯模式,然后用上下左右鍵定位到這行(最下面顯示INSERT的時候表明處于編輯模式,按Esc可退出返回到閱讀模式):
改完之后按Esc退出編輯模式,然后輸入:wq
保存退出。(若輸入:q
則退出但不保存)
重啟mysql service使剛才的修改生效:
1 | sudo service mysql restart |
mysql默認只允許root賬號在本地使用,需要修改一下允許遠程使用root賬號(沒試過其他賬號的情況,但原理一致)。先登錄mysql:
1 | mysql -u root -p |
輸入密碼,登錄。
然后選擇mysql
數據庫:
1 | use mysql; |
查看賬號的主機權限:
1 | select user, host from user; |
host
處為localhost
時只允許本地使用,改成%
即可遠程使用:
1 | update user set host= '%' where user = 'root' ; |
退出mysql。
1 | sudo ufw status |
如果是inactive
說明防火墻沒開,那就不用管了。防火墻是干嘛的呢,我自己的理解就是,如果開了防火墻,那服務器上所有端口都是默認禁止連接的,只有你允許的端口才允許連接,類似于這種:
所以如果防火墻開了,那要么把防火墻直接關了:
1 | sudo ufw disable |
要么添加一條規則讓防火墻放行3306端口(mysql的默認端口):
1 | sudo ufw allow 3306 |
打開云服務器的后臺管理頁面,找到防火墻:
云服務器廠商默認只開啟幾個最常用的端口,其他端口都是默認關閉的,所以也要在這里添加一條規則放行3306端口:
隨便找個數據庫管理的軟件測試一下:
就連上了。常見的問題應該都提到了,如果還是連不上那你們再想想辦法吧。
2022-06-20
MySQL數據庫實驗實現簡單數據庫應用系統設計2022-06-09
mysql 8.0.29 winx64.zip安裝配置方法圖文教程2022-06-09
MySQL 8.0.29 安裝配置方法圖文教程(windows zip版)