MySQL5.7升級到8.0 之后,配合ubantu18.04遇到的常規問題以及非常規問題的解決方案

從MySQL5.7升級到8.0后首先會發現在創建用戶和授權大大不同;其次還有更多常規問題以及非常規問題的解決方案

寫本篇博客記錄踩過的坑

MySQL8.0配合ubantu18.04

一、創建用戶和授權

在mysql8.0創建用戶和授權和之前不太一樣了,其實嚴格上來講,也不能說是不一樣,只能說是更嚴格,mysql8.0需要先創建用戶和設置密碼,然后才能授權。

?

-- 為mysql創建用戶:root1 密碼為:root1? ? ? ? ? ? ? ? ? ?

CREATE USER root1 IDENTIFIED BY 'root1';

-- 查看下用戶root1的權限? ? ? ? ? ? ? ? ? ??

SELECT User,Host  FROM user  ;
或者 select host,user,authentication_string,plugin from user;

-- 給用戶root1在數據庫名為root1上賦上所有庫權限,@'%'表示從任意ip都可以訪問到這個數據庫? ? ? ? ? ? ?

GRANT ALL ON *.* TO 'root1'@'%';

?

如果還是用原來5.7的那種方式,會報錯誤:

grant?all?privileges?on?*.*?to?'sroot'@'%'?identified?by?'123123';

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?'123123''?at?line?1

-- 生效

FLUSH PRIVILEGES;

-- 再次查詢 下權限

SELECT User,Host  FROM user;

--修改密碼

在MySQL 8.04前,執行:SET PASSWORD=PASSWORD('[新密碼]');但是MySQL8.0.4開始,這樣默認是不行的。因為之前,MySQL的密碼認證插件是“mysql_native_password”,而現在使用的是“caching_sha2_password”。

處理方法:

進入命令行界面

use mysql;alter user 'root'@'%'identified with mysql_native_password by 'root1';flush privileges;

基本改密碼問題已經解決了

?

?

還有可能(我沒遇到_參考csdner)

MySql 這個棒棒的更新,從8.0開始修改密碼有了變化,在user表加了字段authentication_string,修改密碼前先檢查authentication_string是否為空

1、如果不為空

use mysql;?

update user set authentication_string='' where user='root';--將字段置為空

ALTER?user?'root'@'localhost'?IDENTIFIED?BY?'root';--修改密碼為root

2、如果為空,直接修改

ALTER?user?'root'@'localhost'?IDENTIFIED?BY?'root';--修改密碼為root

還有種SB情況,navicate for mysql 會提示版本需要更新,例如這樣

Client does not support authentication protocol requested by server

?

問題解決
?————————————————??————————————————??————————————————?

二、MySQL8.0 的遠程鏈接


MySQL8.0 安裝完成后、

① 登錄MySQL

執行命令為:mysql -u root -p?

回車后輸入密碼

② 選擇 mysql 數據庫

執行命令為:use mysql;

查看mysql 數據庫中存儲的用戶信息的 user 表。

③?查看mysql 數據庫的 user 表中當前 root 用戶的相關信息

執行命令為:select host,user,authentication_string,plugin from user;

會顯示剛剛出創建的用戶為 ’% ‘既可以直接連接外網,不過還需要賦權操作訪問全部databases;

?

執行完命令后顯示一個表格, root 用戶的 host默認顯示的 localhost,說明只支持本地訪問,不允許遠程訪問。

④ 更改 host 的默認配置

執行命令為:update user set host='%' where user='root';

⑤ 刷新

執行命令為:flush privileges;

之前以為這樣就行了,然后呢,在用navicat進行mysql的遠程連接時,可能出現了彈窗報錯(我沒出 借鑒csdner):

出現這個原因是mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之后,加密規則是caching_sha2_password, 解決問題方法有兩種,一種是升級navicat驅動,一種是把mysql用戶登錄密碼加密規則還原成mysql_native_password. 我用是第二種方式 :
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密規則?
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用戶的密碼?
FLUSH PRIVILEGES; #刷新權限?
問題就解決了。


?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456513.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456513.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456513.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習之數理統計與參數估計的相關知識總結

文章目錄目錄:1、知道期望/方差/偏度/峰度,獨立和不相關等概念是什么。2、契比雪夫不等式3、大數定理/中心極限定理4、伯努利定理5、矩估計6、最大似然估計7、協方差和相關系數目錄: 1、知道期望/方差/偏度/峰度,獨立和不相關等概…

Angular屬性型指令

2019獨角獸企業重金招聘Python工程師標準>>> 屬性型指令 — 改變元素、組件或其它指令的外觀和行為的指令 屬性性指令的創建步驟如下: import語句需要從 Angular 的core庫導入的一些符號。 Directive提供Directive裝飾器功能。 ElementRef注入到指令構造…

beeline連接hiveserver2報錯:User: root is not allowed to impersonate root

最近在生產中搭建HA機制的集群,碰到不少坑,會在接下來的時間里好好總結下,先說下遇到的一個大坑。我們的需求是:希望通過hive的thrift服務來實現跨語言訪問Hive數據倉庫。但是第一步,你得需要在節點中打通服務器端&…

局域網 兩臺電腦共享 密碼關閉

轉載于:https://www.cnblogs.com/WhiteHorseIsNotHorse/p/6832463.html

MySQL查詢select語句詳解

1.查詢記錄 select*from 表名 [where 條件];eg:select*from students;//查詢 students 表中所有記錄,所有字段的值都顯示出來select field1,field2,...fieldn... from 表名 [where 條件];eg:select id,name,age from students;//查詢 students 表中所有記錄, 只顯示…

SVN使用規范

轉載于:https://www.cnblogs.com/shenxiaolin/p/6296880.html

配置hiveserver2訪問hive

目錄:1、前言2、beeline相關的Server.Thrift配置3、啟動beeline并訪問Hive4、期間遇到的問題和解決方法 目錄: 1、前言 作為數據倉庫的工具,hive提供了兩種ETL運行方式,分別是通過Hive 命令行和beeline客戶端; 命令…

通過rhel7的kvm虛擬機實現3節點Postgres-XL(包括gtm standby)

關于postgres-xl的實驗是在我自己筆記本rhel7.2_x64的環境下,用kvm實現的,總共有6臺虛擬機: 一臺openfiler2.99發布共享存儲,一臺gtm master,一臺gtm slave,三臺gtm_proxy/coordinator/datanode&#xf…

MySQL查詢select實例 【筆記】

use mydb; select * from EMP; select * from DEPT; select DISTINCT JOB from EMP; -- distinct 去除重復項 select MGR from EMP; select MGR as 主管編號 from EMP; -- 輔助查詢,每列信息 起別名 as select EMPNO as 員工編號,JOB as 職位,DEPNO as 部…

C#1

轉載于:https://www.cnblogs.com/qingwengang/p/6327371.html

使用python3連接hiveserver2的方法

前言:1、啟動HiveServer22、在Linux中安裝impyla(前提是安裝Python相關的環境、虛擬環境(可選)) 前言: 需求:需要通過windows端的pycharm來操作hive。 于是就搜集資料尋找解決方案。 大概有…

vue2.X的路由

以 / 開頭的嵌套路徑會被當作根路徑。 <router-link> 在vue-router1.X中是以<a v-link""></a>存在的 里面的參數&#xff1a; to&#xff1a;代表跳轉的目的地&#xff0c;渲染成<a href""> 后面目的地有下面幾種表示法 to引導&a…

mysql啟動和關閉外鍵約束的方法(FOREIGN_KEY_CHECKS)

在MySQL中刪除一張表或一條數據的時候&#xff0c;出現 [Err] 1451 -Cannot delete or update a parent row: a foreign key constraint fails (...) 這是因為MySQL中設置了foreign key關聯&#xff0c;造成無法更新或刪除數據。可以通過設置FOREIGN_KEY_CHECKS變量來避免這種…

CentOS下安裝VirtualEnv的教程

文章目錄前言&#xff1a;1、下載安裝virutalenv2、安裝新的Python版本&#xff08;可以直接安裝anaconda&#xff1a;安裝過程可自行查資料&#xff09;3、 VirtualEnv的設置4、Python虛擬環境的作用總結&#xff1a;前言&#xff1a; 在目前的Linux系統中&#xff0c;默認使…

社保(五險一金)的問題

2019獨角獸企業重金招聘Python工程師標準>>> 社保&#xff0c;全稱為社會保險&#xff0c;是一種再分配制度&#xff0c;它的目標是保證物質及勞動力的再生產和社會的穩定。我們平時常說的社保&#xff0c;還有另一個名稱&#xff0c;及“五險一金”。那么社保是哪五…

PKM(個人知識管理)類軟件收集(偶爾更新列表)

evernote(印象筆記) Wiz 有道云 麥庫 leanote GoogleKeep OneNote SimpleNote(wp家的&#xff0c;免費) pocket(稍后讀的軟件&#xff0c;同類的還有Instapaper&#xff0c;國內的收趣) MyBase RaysNote(v友開發) CintaNotes https://jitaku.io 開源 Gitit-Bigger Laverna pape…

MySQL中外鍵的定義、作用、添加和刪除

1 簡介 在實際開發的項目中&#xff0c;一個健壯數據庫中的數據一定有很好的參照完整性。例如學生檔案和成績單兩張表&#xff0c;如果成績單中有張三的成績&#xff0c;學生檔案中張三的檔案卻被刪除了&#xff0c;這樣就會產生垃圾數據或者錯誤數據。為了保證數據的完整性&a…

Hive報錯:Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000)

Hive執行schematool -initSchema -dbType derby報錯。 報錯的日志&#xff1a; doupeihuadoupeihua-2104 ~/software/hive/bin $ schematool -initSchema -dbType derbySLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/home/doupei…

Andorid Scrolling Activity(CoordinatorLayout詳情)

1.new project -> Scrolling Activity 2.Layout xml code activity_scrolling.xml 1 <?xml version"1.0" encoding"utf-8"?>2 <android.support.design.widget.CoordinatorLayout xmlns:android"http://schemas.android.com/apk/res/an…

截取utf8中文字符串

英文直接截取即可。 中文應字節長度會亂碼&#xff0c;應先轉unicode截取。 如下&#xff1a; #-*- coding:utf8 -*- s u截取中文 s.decode(utf8)[0:3].encode(utf8)轉載于:https://www.cnblogs.com/BigFishFly/p/6337183.html