- 安裝: apt-get install mysql-server
默認安裝的時候沒有輸入用戶名和密碼,默認用戶名爲root,密碼爲root用戶的密碼(和系統一致)
如果嘗試在/etc/mysql/mysql.conf.d/mysqld.cnf 中的mysqld區域增加skip-grant-tables字段內容,則在登陸mysql時,隨意輸入任何密碼都能登陸(用於特殊操作),如下圖示意
- 嘗試登陸驗證
從本機登陸mysql:sudo mysql -uroot –p
目前還沒理解爲什麼一定要sudo才能登陸,否則會出現如下錯誤: [此問題已經確認,請參照小細節3中內容]
- 設置遠程登陸權限
使用Mysql表: use mysql;
設置允許所有主機連接到Mysql,執行命令:
grant all privileges on *.* to root@"%" identified by "root的密碼" with grant option;
flush privileges;
小細節:
- 查看使用端口號:
進入Mysql控制檯後,輸入show variables like 'port';
- 查看Linux防火牆運行情況
Sodu ufw status , inactive是關閉狀態
- Mysql登陸的時候一定要帶上sudo ,是因爲root用戶的密碼太弱了,如下圖中
先user mysql , 進入DB後執行select User,Host ,plugin from users; 看到plugin類型是
執行命令
Update user set plugin=’mysql_native_password’ where User=’root’;
然後flush privileges;
操作好後,mysql實際上的密碼是空的。
- 如何查看mysql是否允許遠程訪問
如下圖中,root具有%和localhost的訪問權限
- 有時候出現這種錯誤的原因,是my.cnf文件中只綁定了127.0.0.1,導致即便設置遠程登陸,也無法。同時也不能通過-h 指定目標位置來登錄,也就是如上圖中,即便使用-h 命令指定本機,都無法運行。
My.cnf 可以通過locate my.cnf命令來尋找到可能存在的位置。(但是有時候沒軟用,實際上可能存在位置有2個,
/etc/mysql/my.cnf
/etc/mysql/mysql.conf.d/mysqld.cnf 【我這裏在這裏發現】
打開該文件後,註釋掉其中的行 bind-address =127.0.0.1 (#爲註釋)