一:Windows環境
1。 改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%"
mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;
2. 授權法。例如,你想myuser使用mypassword從任何主機串連到mysql伺服器的話。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許使用者myuser從ip為192.168.1.3的主機串連到mysql伺服器,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
我 的mysql.user裡root使用者的host果然是localhost,先用改表法給localhost改成“%”,還是不行,仍然報1130的錯 誤,又按“從任何主機串連到mysql伺服器”方法授權,還是報一樣的錯,最後給自己的ip授權之後,終於登入上了。。。。
乎乎。。。
mysql的ERROR 1045 在上面情況後如再出現客戶段1045可在伺服器執行如下
UPDATE user SET Password=PASSWORD('123456') where USER='myuser';
FLUSH PRIVILEGES;//使用者付完許可權後對資料進行重新整理時用!要不Mysql資料庫識別不了
例如:(必須參考以上再看下面的例子)
GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
mysql "192.168.50.85" "admin" "admin" ;
GRANT ALL ON *.* TO admin@'localhost' IDENTIFIED BY 'admin' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.50.85' IDENTIFIED BY '123456' WITH GRANT OPTION;
UPDATE user SET Password=PASSWORD('123456') where USER='myuser';
FLUSH PRIVILEGES;
mysql預設是沒有開啟遠端控制的,必須添加遠端存取的使用者。
mysql預設是沒有開啟遠端控制的,必須添加遠端存取的使用者。 g&00 x$ Y
0VE }0(fQ
如果是安裝版的話,從mysql提供的控制台進入。 1s+<( 0R/
用root使用者登陸,然後: Q k C jgS0
grant all privileges on *.* to 建立的使用者名稱 @"%" identified by "密碼"; o! q*)`xuQ
flush privileges; * 重新整理剛才的內容* )/ z (5 3X
; (Q:LY \v
格式:grant 許可權 on 資料庫名.表名 to 使用者@登入主機 identified by "使用者密碼"; .=h j Qi[
@ 後面是訪問mysql的用戶端IP地址(或是 主機名稱) % 代表任意的用戶端,如果填寫 localhost 為本地訪問(那此使用者就不能遠端存取該mysql資料庫了)。 U <T 1O 6
lp 8 z Rc
同時也可以為現有的使用者佈建是否具有遠端存取許可權。如下: \ch3 X X#
use mysql; o$`> :>N e
update db set host = '%' where user = '使用者名稱'; (如果寫成 host=localhost 那此使用者就不具有遠端存取許可權) B Gnl: R *
FLUSH PRIVILEGES; zn 6en;&?
3 Pj_2B=
查看結果,執行: $4b 5-U
use mysql; ){[' 66!
select host,user,password from user; J):H\B:j_M
i oZ 0 " H
+--------------+--------+---------------+ t75 JSdQ
| Host | User | Password | XKL Di{ U
+--------------+--------+-----------------+ B*1Q< Cx5B
| localhost | | | U 8RZq(f
| % | John | 123456 | r ` Al B
| localhost | root | | H fd ZE
+--------------+------ --+---------------+ pd7= 8 8
ArJ~Vs "+
總結: ? Av L`B A
其實MySQL預設有兩個資料庫分別為 mysql 和 test 而MySQL使用者的資訊都放在資料庫 mysql 的相關表中 gb: hj /
也可以使用 Navicat (推薦)這樣的GUI工具來系統管理使用者。 HUD?}U BB5
update user set host='%' where host='localhost'
工作中用到web伺服器和mysql伺服器不在同一台電腦上安裝的運用。需要通過mysql的遠程賬戶訪問mysql。
先上文法:
grant [許可權] on [資料庫名].[表命] to ['使用者命']@['web伺服器的ip地址'] identified by ['密碼'];
執行個體:
grant all on lportal.* to 'root'@'192.168.1.21 identified by 'root';
grant select,update,insert,delete on lportal.* to 'root'@'192.168.1.21 identified by 'root';