1. 程式人生 > >Ubuntu Server 18 解除安裝MySQL5.*安裝MySQL8.0,實現遠端訪問資料庫

Ubuntu Server 18 解除安裝MySQL5.*安裝MySQL8.0,實現遠端訪問資料庫

如果你在Ubuntu18直接用

sudo apt-get install mysql-client mysql-server

系統預設會安裝MySQL會預設安裝5.7,但是MySQL5.7版本最高只適配到Ubuntu17.04,而MySQL8.0最高適配到Ubuntu18.04。

強行安裝5.7會有一堆的問題等著你處理,與其等著一個個坑出現然後花時間解決,不如解除安裝5.7安裝8


一、解除安裝MySQL5.*

1.刪除mysql程式

sudo apt-get remove mysql-*

2.清理殘留的資料

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

它會跳出一個對話方塊,你選擇yes就好了


二、安裝MySQL8.0

1.更新檔案

首先去 MySQL官網 下載一個檔案

mysql-apt-config_0…***_all.deb
在這裡插入圖片描述

在資料夾中找到下載的具體檔案(如果你的Ubuntu是虛擬機器,則將這個檔案上傳到系統),並執行(下面的**是省略的意思,你自己要改)
sudo dpkg -i mysql-apt-config_0.*.****_all.deb

然後會出現一個紫色框介面。
它有四個選項。選擇第一個,enter確定,
然後又會出現一個紫色框介面,選擇8.0那個。enter確定,
會回到第一個紫色框,此時按上下鍵選擇 ok,enter確定。

最後更新資料來源
sudo apt-get update


2.安裝MySQL

現在執行
sudo apt-get install mysql-server

安裝過程中會詢問,都選擇yes
安裝最後會出現紫色框,讓你輸入密碼,輸入完成之後,會再讓你輸入一遍。確定。
輸入完成之後,會出現紫色框問你選擇密碼的加密方式。因為第一種加密方式Ubuntu不支援,所以我們選擇第二個加密方式。enter確定。

此時啟動MySQL:
service mysql start

進入MySQL:
mysql -uroot -p

最後附贈幾個常用命令(最後三個很多教程都有提到,但是起碼我寫這篇文章這次,並沒有正確生效,不過都有替代命令,所以就沒有深究

命令 說明
mysql -uroot -p 啟動MySQL服務
sudo netstat -tap | grep mysql 檢查MySQL是否啟動成功
service mysql stop 關閉MySQL服務
sudo /etc/init.d/mysql start 啟動服務
sudo /etc/init.d/mysql restart 重啟服務
sudo /etc/init.d/mysql stop 關閉服務

三、授權遠端訪問

剛安裝的MySQL只能在系統中本地訪問,想用navicat等軟體遠端訪問還需要授權賬號遠端訪問。
作為學習用不考慮安全問題,你可以直接授權你的管理員賬號遠端訪問。
如果考慮到安全問題,建議針對不同的資料庫設定對應的遠端訪問賬號,或者授權給指定的IP

1.簡單授權

直接授權你的管理員賬號(預設是root)遠端訪問:

update user set host = '%' where user ='root';
FLUSH PRIVILEGES;

GRANT ALL ON 表示所有許可權,% 表示通配所有 host,可以訪問遠端。

2.指定授權

下面是一個簡單例子,授權使用者test1admin遠端訪問資料庫test1

2.1新建資料庫

建立測試資料庫test1:
create database test1;

2.2新建資料庫使用者

為資料庫test1建立對應使用者test1admin,密碼123,
CREATE USER 'test1admin'@'%' IDENTIFIED BY '123';

下面是一些程式碼的說明:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

欄位 說明
username 你將建立的使用者名稱,
host 指定該使用者在哪個主機上可以登陸,如果是本地使用者可用localhost,,如果想讓該使用者可以從任意遠端主機登陸,可以使用萬用字元%.
password 該使用者的登陸密碼,密碼可以為空,如果為空則該使用者可以不需要密碼登陸伺服器.
2.3授權使用者

授權使用者test1admin管理資料庫testq1
GRANT ALL PRIVILEGES ON test1.* TO 'test1'@'%';

下面是一些程式碼示例
其中databaseNametableName都可以用萬用字元 *
host可以用指定IP或者localhost表示本地,**%**表示遠端和本地

命令 說明
GRANT ALL PRIVILEGES ON databaseName.tableName TO 'user'@'host'; 授權指定資料庫給使用者
GRANT SELECT, UPDATE ON databaseName.tableName TO 'user'@'host'; 授權指定資料庫的select和update許可權給使用者
EVOKE ALL PRIVILEGES ON databaseName.tableName TO 'user'@'host'; 取消授權
2.4重新整理許可權

FLUSH PRIVILEGES;


本文一二步參考:https://blog.csdn.net/weixin_37946237/article/details/81634505
第一次使用markdown感謝:https://blog.csdn.net/tyyking/article/details/79682157