PAIP.MYSQL設定遠程賬戶登陸總結

來源:互聯網
上載者:User

標籤:

MYSQL設定遠程賬戶登陸總結

 

 

 

1. ERROR 2003 (HY00 1

2. ERROR 1045 (28000): Access denied for user ‘test‘@‘x.x.x.x‘ (using password: NO) 1

3. 取回ROOT密碼並設定遠程登入 2

4. RROR 1062 (23000): Duplicate entry ‘%-root‘ for key ‘PRIMARY‘ 2

5. ERROR 1044 (42000): Access denied for user ‘‘@‘localhost‘ to database ‘mysql‘。 3

6. 設定使用者遠程主機串連許可權 4

7. 設定使用者與庫的許可權 4

 

 ----作者Attilax , [email protected]  

 

為了給MYSQL使用者佈建一個遠端連線許可權,經曆了很多曲折..特此紀錄下來..先是玉到了2003錯誤

 

 

ERROR 2003 (HY00

 

 

原因是MySQL考慮到安全因素,預設配置只讓從本地登入

開啟 /etc/mysql/my.cnf 檔案,找到 bind-address = 127.0.0.1 修改為 bind-address = 0.0.0.0

重啟mysql : sudo /etc/init.d/mysql restart

再次串連,發生錯誤 1045

 

 

ERROR 1045 (28000): Access denied for user ‘test‘@‘x.x.x.x‘ (using password: NO)

A: 原因是沒有給登入使用者名稱設定遠程主機登入的許可權。還有種可能是你需要重設下密碼....可能是授權操作引起這種後遺症..

在本地用 root 登入: mysql -u root -p

修改 MySQL 資料庫中 user 表中 對應使用者名稱的 Host 欄位,將 localhost 改為 %

use mysql;

update user set Host = ‘%‘ where User = ‘username‘;

給這個設定許可權需要ROOT使用者登入才行.可惜ROOT密碼不記得了.

取回ROOT密碼並設定遠程登入


mysqld_safe --skip-grant-tables &

mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD(‘newpassword‘) where USER=‘root‘;

mysql> FLUSH PRIVILEGES;

 

 

設定 ROOT 遠端連線  update user set host = ‘%‘   where user=‘root‘;

 

 

 

查看進程,可看到MYSQLD_SAFE與MYSQL進程,此時MYSQL可正常使用,不過查看參數,可看到--skip-grant-tab

輸入mysqld_safe命令列,要立馬輸入mysql -u root mysql,不得有誤..或者新開一個視窗也可.

 

執行UPDATE時出現1062錯誤

 

 

 

 

RROR 1062 (23000): Duplicate entry ‘%-root‘ for key ‘PRIMARY‘ 

 

如果執行update語句時出現ERROR 1062 (23000): Duplicate entry ‘%-root‘ for key ‘PRIMARY‘ 錯誤,說明有多個ROOT使用者紀錄在USER表中了.

需要select host from user where user = ‘root‘;

查看一下host是否已經有了%這個值,有了就可以了.

 

 

mysql> select host,user from user where user=‘root‘;

+-----------------------+------+

| host                  | user |

+-----------------------+------+

| %                     | root |

| 127.0.0.1             | root |

| ::1                   | root |

| localhost.localdomain | root |

 

然後用ROOT使用者登入更改使用者賬戶的遠端連線許可權時.出現提示:ERROR 1044 (42000): Access denied for user ‘‘@‘localhost‘ to database ‘mysql‘。

 

 

 ERROR 1044 (42000): Access denied for user ‘‘@‘localhost‘ to database ‘mysql‘。

 

是因為mysql資料庫的user表裡,存在使用者名稱為空白的賬戶即匿名賬戶,導致登入的時候是雖然用的是root,但實際是匿名登入的,通過錯誤提示裡的‘‘@‘localhost‘可以看出來,於是解決辦法見

 

 

先關閉MYSQL進程..

 

然後

 

   # mysqld_safe --skip-grant-table

   螢幕出現: Starting demo from .....

此時要記得,緊接著輸入

   # mysql -u root mysql

   mysql> delete from user where USER=‘‘;

   mysql> FLUSH PRIVILEGES; 

 

 

 

 

如果出現  Starting demo from .. 後..先輸入其它命令,再用mysql -u root mysql .它又會出現這個錯誤了.

 

 

然後KILL掉MYSQL進程,..重啟正常的進程..

 

 

 

設定使用者遠程主機串連許可權

 

update user set host = ‘%‘  where user=‘fanzkcom_fanzk‘; 

FLUSH PRIVILEGES; 

 

但是在實際串連中,雖然可以串連,但是去沒有所在庫的許可權,暈.

只好接下來設定許可權

 

設定使用者與庫的許可權

grant all privileges on fanzkcom_fanzk.* to [email protected]‘%‘ identified by ‘1234‘;

FLUSH PRIVILEGES; 

 

 

百分比符號兩邊要有單引號,否則語法錯誤

然後串連時,竟然提示1045 錯誤了.暈,,想了半天,還是重設下密碼試下.

 

 

 

 update mysql.user set password=password(‘XXX‘) where User="fanzkcom_fanzk"  

 flush privileges;

 

竟然好了.暈.也不知道為什麼設定授權會改動了密碼了呢.奇怪..應該是MYSQL的BUG

 

轉載:http://blog.csdn.net/attilax/article/details/8595696#_Toc25697

PAIP.MYSQL設定遠程賬戶登陸總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.