前言
看到題目大家應(yīng)都會想,在 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)的不一樣,因為沒有彈出設(shè)置密碼的那個藍色的界面,誤以為直接可以空密碼登錄。直接嘗試 mysql -uroot -p
,發(fā)現(xiàn) ERROR 1698 (28000): Access denied for user 'root'@'localhost'
。難道默認密碼不是空?查看 /etc/mysql/debian.cnf 中默認密碼確實是空。
第一反應(yīng)是執(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 用戶了,正確的姿勢應(yīng)該是這樣的:
首先是 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'
。
然后給新用戶設(shè)置權(quán)限:grant all on *.* to 'admin'@'localhost'
。
好了,我們又設(shè)置了一個方便的 "Root" 用戶,只不過改了名字叫做 admin。
PS:我發(fā)現(xiàn)在 Root 終端中,不管密碼輸入什么都能正常連接數(shù)據(jù)庫...暈。
總結(jié)
以上就是這篇文章的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- Debian中完全卸載MySQL的方法
- debian6配置mysql允許遠程連接的方法(圖)
- Debian 6.02 (squeeze)下編譯安裝 MySQL 5.5的方法
- Mysql在debian系統(tǒng)中不能插入中文的終極解決方案
- 在Ubuntu或Debian系統(tǒng)的服務(wù)器上卸載MySQL的方法
- 在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程