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 , 1466519819@qq.com---
為了給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 儲存...