1. 程式人生 > >關於Navicat fro Mysql 連線虛擬機器(Ubuntu)中的mysql問題記錄

關於Navicat fro Mysql 連線虛擬機器(Ubuntu)中的mysql問題記錄

在Mysql安裝中,預設的有root使用者,但是root使用者的預設連線Host也是localhost或者127.0.0.1,也就是限制了root使用者作為本地連線使用;我個人來說,建立新賬戶也是安全性和更加方便。

  1. 檢視資料庫    show databases;
  2. 選中資料庫    use mysql;
  3. 接著檢視當前資料庫賬戶資訊      select user,host from user;

根據觀察,這些使用者只能通過本地連線。如果需要做外部ip連線呢?

可以看到使用者host顯示都是隻能本地使用的。現在為了讓我們可以遠端的連線伺服器資料庫,我們需要新建一個具有遠端連線許可權的資料庫賬戶,使用如下命令建立:

  1. 建立一個souvc的使用者,並賦予許可權     grant all privileges on *.* to [email protected]"%" identified by "admin123" with grant option;
    1. grant是授權命令,其中souvc是我們連線用的使用者名稱、”abc123″是連線密碼,使用者名稱後面的“%”通用符表示允許各host操作。
  2. 重新整理資料庫賬戶許可權:      flush privileges;
  3. 重新整理許可權之後,重新查詢。    select user,host from user;
  4. 退出資料庫命令        exit;
  5. 重啟mysql資料庫伺服器        service mysql start

登入Ubuntu伺服器,檢視伺服器的IP。

  1. 檢視伺服器的ip   ifconfig
  2. 進入到mysql伺服器配置檔案處   cd /etc/mysql/mysql.conf.d/
  3. 編輯mysqld.cnf檔案    vim mysqld.cnf
  4. 開啟檔案後,找到bind-address=127.0.0.1 在其前面加上#註釋掉(有時可能的需要重啟伺服器), 然後新增如下程式碼:
    1. skip-external-locking                           skip-name-resolve
  5. 重新啟動mysql服務
    1. service mysql restart
  6. 就可以用授權的使用者名稱和密碼連線了。

 

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使用者,無需登入。