程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql權限配置

mysql權限配置

編輯:關於MYSQL數據庫

MySQL如何開啟遠程訪問權限

        一: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';

二:unix類環境

1.修改/etc/MySQL/my.conf,修改bind-address,指定為本機實際IP地址,你的my.con修改完大概是如下的樣子
  [MySQLd]   # * Basic Settings   default-character-set=utf8
  default-storage-engine=INNODB
  bind-address    = 192.168.1.107
  user            = MySQL
  pid-file        = /var/run/mysqld/MySQLd.pid
  socket          = /var/run/mysqld/MySQLd.sock
  port            = 3306
  basedir         = /usr
  datadir         = /var/lib/MySQL
  tmpdir          = /tmp
  language        = /usr/share/MySQL/english
  skip-external-locking
  2.用root登陸MySQL執行如下命令
  grant all on sonardb.* to sonar@’%' identifIEd by ’123456′;
  grant all on sonardb.* to sonar@localhost identifIEd by ’123456′;
  sonardb替換為你想訪問的數據庫名,sonar是你的想使用的用戶名,123456替換為你的密碼,這樣就開啟了遠程訪問功能


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved