資料庫 - 在阿里雲ECS伺服器Ubuntu20.04上部署MySql 8.0作為遠端資料庫
阿新 • • 發佈:2021-12-10
前言:最近寫大作業需要用到資料庫,剛好前段時候搞活動買了一年的伺服器來玩,還閒著,就試著裝個MySql
一些要注意的概念和知識
- ECS伺服器理解成毛坯伺服器,就相當於同學們在虛擬機器中新裝的Ubuntu,什麼軟體都沒裝,包括tmux和vim等
- 網上大多教程(點名批評csdn這個抄來抄去還抄不全的破地方),在執行各種語句的時候並沒有講清楚系統版本和MySql的版本。然而不同版本之間,尤其是MySql有大版本更新的情況下,語法差異很大!
- MySql自帶的四個預設資料庫
informance_schema
- 儲存了MySQl服務所有資料庫的資訊。
- 具體MySQL服務有多少個數據庫,各個資料庫有哪些表,各個表中的欄位是什麼資料型別,各個表中有哪些索引,各個資料庫要什麼許可權才能訪問
mysql
- 儲存MySQL的許可權、引數、物件和狀態資訊。
- 如哪些user可以訪問這個資料、DB引數、外掛、主從
performance_schema
- 主要用於收集資料庫伺服器效能引數
- 提供程序等待的詳細資訊,包括鎖、互斥變數、檔案資訊;
- 儲存歷史的事件彙總資訊,為提供MySQL伺服器效能做出詳細的判斷;
- 對於新增和刪除監控事件點都非常容易,並可以隨意改變mysql伺服器的監控週期,例如(CYCLE、MICROSECOND)
test
- 顧名思義,沒啥東西
具體步驟
下載安裝
安裝
sudo apt install mysql-server
檢查是否執行正常
sudo netstat -tap | grep mysql
或者
mysql -V
能夠正常顯示版本號
我是隻作為server端,所以只安裝了mysql-server
,沒有安裝mysql-client
查資料說,兩者的區別是:mysql-server
是直接操作資料庫檔案,mysql-client
只是操作資料庫、表。
比如我遠端用Navicat連線這個資料庫,那麼這個Navicat就是Client
本地連線
由於還沒有進行使用者設定等,所以我們還有一些初始步驟,這一步裡和8.0之前的版本有些差異
檢視預設使用者名稱和密碼
sudo cat /etc/mysql/debian.cnf
我們用[Client]中的那個使用者進行登入,也就是
mysql -u debian-sys-maint -p
輸入對應的密碼後就可以進入了
我們首先要設定root的密碼(以此執行以下sql語句)
use mysql;
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼';
flush privileges;
這裡的flush privileges
的目的是重新整理各使用者的許可權
遠端連線
其實就是新增遠端的使用者
create user 'root'@'%' identified by '遠端登入要用的mysql密碼';
grant all privileges on *.* to 'root'@'%';
flush privileges;
一定記住建立了使用者之後,要授予其許可權
最後對外網開放資料庫,退出資料庫,在terminal中執行
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到bind-address =127.0.0.1
這一行,在前面加上#
,也就是將其註釋掉
最後,重啟mysql
service mysql restart
一些常用的語句、命令
一定注意版本問題!這是MySql 8.0版本
mysql服務操作
sudo service mysql status # 檢視服務狀態
sudo service mysql start # 啟動服務
sudo service mysql stop # 停止服務
sudo service mysql restart # 重啟服務
建立新使用者
create user 'root'@'%' identified by 'password';
重置密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼';
必須要在mysql
資料庫裡執行
檢視使用者和許可權表
mysql> select host, user, authentication_string, plugin from user;
徹底刪除mysql
以免不知道哪裡出錯,用於重置
依次執行
sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean