MYSQL設定遠端賬戶登陸總結

2021-06-29 04:06:06 字數 3504 閱讀 7072

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

PAIP MYSQL設定遠端賬戶登陸總結

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 d...

mysql 遠端 mysql遠端登陸

mysql登入方式有兩種,一種是本機登入,一種是遠端登入。這兩種登入方式在mysql資料庫的user表中都有體現。由於我們不可能總是本地登入,因此需要設定遠端登陸。但是mysql預設不支援遠端登陸,所以需要設定一波。1.登入資料庫。2.切換到mysql資料庫。3.檢視主機和使用者對應情況,其實就是檢...

LANMP 搭建 MySQL 遠端登陸設定

二進位製包安裝 2 解除安裝系統自帶的mariadb 可卸,亦或者不解除安裝都可以,建議解除安裝 root 192 rpm qa grep mariadb 檢視是否安裝有mariadb root 192 yum remove mariadb libs 5.5.68 1.el7.x86 64 解除安裝...