關於Navicat fro Mysql 連線虛擬機器(Ubuntu)中的mysql問題記錄
在Mysql安裝中,預設的有root使用者,但是root使用者的預設連線Host也是localhost或者127.0.0.1,也就是限制了root使用者作為本地連線使用;我個人來說,建立新賬戶也是安全性和更加方便。
- 檢視資料庫 show databases;
- 選中資料庫 use mysql;
- 接著檢視當前資料庫賬戶資訊 select user,host from user;
根據觀察,這些使用者只能通過本地連線。如果需要做外部ip連線呢?
可以看到使用者host顯示都是隻能本地使用的。現在為了讓我們可以遠端的連線伺服器資料庫,我們需要新建一個具有遠端連線許可權的資料庫賬戶,使用如下命令建立:
- 建立一個souvc的使用者,並賦予許可權 grant all privileges on *.* to [email protected]"%" identified by "admin123" with grant option;
- grant是授權命令,其中souvc是我們連線用的使用者名稱、”abc123″是連線密碼,使用者名稱後面的“%”通用符表示允許各host操作。
- 重新整理資料庫賬戶許可權: flush privileges;
- 重新整理許可權之後,重新查詢。 select user,host from user;
- 退出資料庫命令 exit;
- 重啟mysql資料庫伺服器 service mysql start
登入Ubuntu伺服器,檢視伺服器的IP。
- 檢視伺服器的ip ifconfig
- 進入到mysql伺服器配置檔案處 cd /etc/mysql/mysql.conf.d/
- 編輯mysqld.cnf檔案 vim mysqld.cnf
- 開啟檔案後,找到bind-address=127.0.0.1 在其前面加上#註釋掉(有時可能的需要重啟伺服器), 然後新增如下程式碼:
- skip-external-locking skip-name-resolve
- 重新啟動mysql服務
- service mysql restart
- 就可以用授權的使用者名稱和密碼連線了。
sudo apt-get install mariadb-server
新版本Mariadb安裝後無法登入問題的解決
給新機器Ubuntu安裝的Mariadb後無法登入,通過網上各種方法修改root使用者密碼,仍然無法解決,耗費幾個小時!
經過看日誌和查手冊,發現原因如下:
ubuntu確實安裝沒有啟用root使用者,所以沒有root使用者密碼,而新安裝的mariadb使用的系統root的密碼(初始安裝後)
通過原來的方法重置password無效(原因就是採用了unix_socket認證)
那麼,解決方法如下:
直接進入root使用者下,就可以免密碼登入!
對於ubuntu而言,需要啟用root使用者密碼,方法如下:
sudo passwd
輸入sudo的密碼後,再次輸入兩次root使用者密碼後即可。
然後,
xx>su - root
root>mysql -u root //直接回車就可以進入,無需密碼,無論什麼密碼也行,因為他不需要!
mysql>
如果,你希望採用原來的mysql密碼方式,需要修改認證外掛,方法如下:
// 切換到root使用者, 無需密碼進入Mysql
update mysql.user set plugin='mysql_native_password' where user='root';
update mysql.user set password=password("您的密碼") where user='root';
FLUSH PRIVILEGES;
這樣就可以在任何使用者下訪問mysql了。
為啥要升級成預設為unix_socket呢?
對於CentOS,RedHat而言,使用root使用者時,無需密碼登入。
而且,也符合安全準則,新版本的MySQL密碼會在日誌中輸出,MariaDB以前保持空密碼,現在意味著,用root使用者,無需登入。