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 解除安裝...