在Debian 9系統(tǒng)上安裝Mysql數(shù)據(jù)庫的方法教程
前言
看到題目大家應都會想,在 Debian 9 上安裝 Mysql?那不是很簡單的事兒嗎?直接 sudo apt install mysql-server
不就行了嗎?
沒想到遇到了幾個之前沒遇到的問題,耽誤了不少時間。
原來在 Debian 9 中,Mysql 已經(jīng)被替換成了 MariaDB,所以和傳統(tǒng)的安裝 Mysql 有一些不一樣的地方。
安裝方法
首先我們還是可以用 sudo apt install mysql-server
這樣安裝上的,但是安裝上的還是 MariaDB,所以最好還是采用 sudo apt install mariadb-server
這樣吧。
安裝上之后,發(fā)現(xiàn)和傳統(tǒng)的不一樣,因為沒有彈出設置密碼的那個藍色的界面,誤以為直接可以空密碼登錄。直接嘗試 mysql -uroot -p
,發(fā)現(xiàn) ERROR 1698 (28000): Access denied for user 'root'@'localhost'
。難道默認密碼不是空?查看 /etc/mysql/debian.cnf 中默認密碼確實是空。
第一反應是執(zhí)行 mysqld_safe skip-grant-tables
,然后 use mysql;
,然后 update user set password=PASSWORD('mysql') where User='root';
。這樣確實可以解決問題,但是重啟之后莫名發(fā)現(xiàn)又登錄不了了。
懵逼一段時間后發(fā)現(xiàn) MaraiDB 的默認密碼確實是空,但是只能用 Root 用戶登錄
注意:這里的用戶說的是 linux 系統(tǒng)的 Root 用戶,也就是說,你 sudo su 進入 Root 終端后,是可以正常登錄的,但是普通用戶卻無法登錄。(為了區(qū)別一下,我把 Root 終端的首字母大寫,而 mysql 的 root 用戶首字母小寫)
大概明白了,所以我們不能圖方便一直使用 root 用戶了,正確的姿勢應該是這樣的:
首先是 sudo apt install mariadb-server
安裝上數(shù)據(jù)庫。
然后 sudo su 切換至 Root 終端,通過 mariadb -uroot -p
登錄到數(shù)據(jù)庫,如果默認密碼不是空的話,可以查看 '/etc/mysql/debian.cnf'。
這時候要做的是創(chuàng)建新用戶:create user 'admin'@'localhost' identified by 'mysql'
。
然后給新用戶設置權限:grant all on *.* to 'admin'@'localhost'
。
好了,我們又設置了一個方便的 "Root" 用戶,只不過改了名字叫做 admin。
PS:我發(fā)現(xiàn)在 Root 終端中,不管密碼輸入什么都能正常連接數(shù)據(jù)庫...暈。
總結
以上就是這篇文章的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
mysql解析json數(shù)據(jù)組獲取數(shù)據(jù)組所有字段的方法實例
mysql在5.7開始支持json解析了,也可以解析數(shù)組,下面這篇文章主要給大家介紹了關于mysql解析json數(shù)據(jù)組獲取數(shù)據(jù)組所有字段的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下2022-08-08如何解決MySQL5升級為MySQL8遇到的問題my.ini
這篇文章主要介紹了如何解決MySQL5升級為MySQL8遇到的問題my.ini,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12MySQL Innodb關鍵特性之插入緩沖(insert buffer)
這篇文章主要介紹了MySQL Innodb關鍵特性之插入緩沖的相關資料,幫助大家更好的理解和學習使用Innodb存儲引擎,感興趣的朋友可以了解下2021-04-04mysql判斷當前時間是否在開始與結束時間之間且開始與結束時間允許為空
這篇文章主要介紹了mysql判斷當前時間是否在開始與結束時間之間且開始與結束時間允許為空,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09