實驗環(huán)境:debian 9
sudo apt install mysql-server
sudo apt install mysql-client
發(fā)現(xiàn)并沒有像在ubuntu 16.04上那樣在安裝期間要求輸入root用戶密碼……
原因是Debian 9 中使用 MariaDB 徹底代替了 MySQL
因為 Debain 9 源內(nèi)的 MariaDB 10.0 使用了 UNIX 套接字認(rèn)證证九,所以在全新安裝 MariaDB 的過程中聪全,不再有 MySQL root 密碼的配置窗口对人。
關(guān)于本部分的詳細(xì)內(nèi)容參閱:
https://mariadb.com/kb/en/library/moving-from-mysql-to-mariadb-in-debian-9/#secure-passwordless-root-accounts-only-on-new-installs
第一次用root登錄時使用空密碼即可登錄
mysql -u root -p
當(dāng)然我們必須馬上設(shè)置root密碼:
use mysql
UPDATE user SET Password = password('新密碼') WHERE User = 'root';
flush privileges;
使用原生 MySQL 認(rèn)證
因為默認(rèn)使用了 UNIX SOCKET 認(rèn)證忿晕,有些 phpMyAdmin 在登入時會發(fā)生 “Access Denied” 錯誤。我們可以更改 UNIX SOCKET 認(rèn)證為原生 MySQL 認(rèn)證茫死。
接著上面執(zhí)行:
update mysql.user set plugin = 'mysql_native_password' where User='root';
flush privileges;
exit
設(shè)置遠(yuǎn)程連接
mysql默認(rèn)下只能本地連接數(shù)據(jù)庫务傲,要遠(yuǎn)程連接需要修改配置文件:
vi /etc/mysql/mariadb.conf.d/50-server.cnf
修改bind-address = 0.0.0.0或者直接注釋,保存退出;
接下來授予用戶具有遠(yuǎn)程訪問的權(quán)限:
grant all privileges on . to 'root'@'%' identified by 'password';
flush privileges;
或直接創(chuàng)建一個新的用戶:
create user 'django'@'%' identified by 'password';
'%'為通配符,指定該用戶可以從任意主機遠(yuǎn)程登錄;
使用命令行遠(yuǎn)程連接
mysql -h ip -P port -u username -p
debian下的可視化管理工具推薦Workbench
最后重啟數(shù)據(jù)庫服務(wù)
service mariadb restart