1. 程式人生 > 其它 >資料庫 - 在阿里雲ECS伺服器Ubuntu20.04上部署MySql 8.0作為遠端資料庫

資料庫 - 在阿里雲ECS伺服器Ubuntu20.04上部署MySql 8.0作為遠端資料庫

前言:最近寫大作業需要用到資料庫,剛好前段時候搞活動買了一年的伺服器來玩,還閒著,就試著裝個MySql

一些要注意的概念和知識

  1. ECS伺服器理解成毛坯伺服器,就相當於同學們在虛擬機器中新裝的Ubuntu,什麼軟體都沒裝,包括tmux和vim等
  2. 網上大多教程(點名批評csdn這個抄來抄去還抄不全的破地方),在執行各種語句的時候並沒有講清楚系統版本和MySql的版本。然而不同版本之間,尤其是MySql有大版本更新的情況下,語法差異很大!
  3. 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