224 mysql 設定遠端連線許可權

2021-07-25 13:36:34 字數 3496 閱讀 7591

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錯誤

原因是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

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

在本地用 root 

登入: mysql -u root -p

修改 mysql 

資料庫中 user 

表中 對應使用者名稱的 

host 

字段,將 

localhost 

改為 %

use mysql

;update user set host = '%' where user = 'username';

給這個設定許可權需要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錯誤

如果執行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'。

是因為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 fanzkcom_fanzk@'%' identified by '1234';

flush privileges; 

百分號兩邊要有單引號,

否則語法錯誤

然後連線時,

竟然提示1045 錯誤了.暈

,,想了半天

,還是重設下密碼試下.

update mysql.user set password=password('***') where user="fanzkcom_fanzk"  

flush privileges;

竟然好了.暈.

也不知道為什麼設定授權會改動了密碼了呢.奇怪

..應該是

mysql

的bug

mysql遠端連線設定 MySQL遠端連線設定

這只是乙個簡單mysql設定。但很多圖簡單,卻忽略了安全性。所以對設定中的細節和含義需要弄到清清楚楚才行。這只是乙個簡單mysql設定。但很多圖簡單,卻忽略了安全性。所以對設定中的細節和含義需要弄到清清楚楚才行。mysql遠端連線的設定問題 下面是步驟 1 登陸本地的mysql server mys...

mysql 設定遠端連線

授權法 grant select,insert,update,delete,create,drop on tablename.to username localhost identified by password 注意 tablename 你自己資料庫的名字,username 連線庫使用者名稱,l...

mysql設定遠端連線

1,開啟mysql遠端連線 1,獲取root許可權 sudo i 2,cd到配置檔案所在路徑 cd etc mysql mysql.conf.d 3,vi mysqld.cnf bind address 127.0.0.1 瀏覽模式 a 插入模式 esc 瀏覽模式 shift 命令列模式 wq 儲存...