mysql登錄授權
Ⅰ 怎麼設置mysql root用戶可以即從本地登陸,又可遠程登陸
為了遷移mysql到oracle,採用了oracle的sql developer工具,並下載了mysql
jdbc驅動(為了讓sql developer連接mysql)
為了從oracle sql developer遠程以root連接mysql
1
2
3
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql>
在設置root賬戶密碼時,可以選擇是否允許其從遠程訪問。默認情況下是不允許的。
在命令行下,可以有兩種大同小異的方法來作此設置:
(1)
1
2
3
mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;
第一句增加了一個root用戶授權通過本地機(localhost)訪問,密碼「something」。
第二句則是使用通配符,授與root用戶從任何其它主機發起的訪問。
(2)亦可直接使用update語句修改user表:使用root用戶或其他用戶登錄mysql,轉到mysql資料庫
1
2
3
4
5
update user set host='localhost' where user='root';
flush privileges;//只允許root在本機登錄
update user set host='%' where user='root';
flush privileges;//允許root遠程訪問
注意,以上一定要加flush語句。
另外,如果要建新用戶,則用grant語句比較方便,記住語句grant總是創建新用戶。
例如我目前的庫:
mysql> select host,user from user;
+-----------+--------+
| host | user |
+-----------+--------+
| % | mytest |
| % | root |
| localhost | mytest |
| localhost | root |
+-----------+--------+
4 rows in set (0.00 sec)
root和mytest都既能本地連,也能遠程連
Ⅱ 如何關閉mysql遠程登錄許可權
1、本地登錄到mysql資料庫,mysql -uroot -p。
Ⅲ mysql授權中IDENTIFIED by的作用是怎麼樣的
使用以下授權抄語句,將授權指定的192.168.1.1 和192.168.1.2 的機器,使用用戶名為root,密碼為test123的用戶訪問 grant all privileges on *.* to 'root'@'192.168.1.1' identified by 'test123'; grant all privileges on *.* to 'root'@'192.168.1.2' identified by 'test123';
Ⅳ 如何給MySql創建連接用戶並授權
一般在為MySql創建用戶時建議使用GRANT前台命令,當然如果對我們開發者而言,方法還有很多種,比如使用INSERT命令,甚至是直接修改mysql user數據表,但仍然建議按照MySQL規范去授權賬戶。因為它太容易忘記,特別整理方便參考。
1、登錄MySQL
輸入mysql -u root和密碼即可登錄到Mysql。
2、選擇資料庫
語句如下:use mysql;
3、在mysql的user表中增加連接用戶
GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
其中:
「username」替換為將要授權的用戶名,比如clientusr;
「password」替換為clientusr設置的密碼;
4、可訪問數據表授權
創建好帳戶之後,就開始給上面的common user進行數據表授權,步驟3中增加的連接用戶默認許可權都是「N」的,必須在db表中為該帳戶授權,允許其訪問專用資料庫,當然超級用戶就不說了。
使用下面語句:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON dbx.* TO 'username'@'localhost' IDENTIFIED BY 'password';
本語句中的許可權根據實際需要確定:
"dbx"替換為授權訪問的資料庫名,如果只給某張表授權:dbx.tablename
"username"是步驟2授權用戶名
"password"是步驟2授權用戶的設置密碼
這樣就為該用戶授予了對某數據表的SELECT, INSERT, UPDATE, DELETE, CAREATE, DROP許可權。
5、生效授權,創建完畢
FLUSH PRIVILEGES;
備註:
1、不要直接使用INSERT語句添加user記錄,使用INSERT可能出現:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value錯誤。不過早期的MYSQL版本筆者倒沒出現這個錯誤,因為天緣一直都是直接修改user表或直接使用INSERT語句完成,後來升級MYSQL到5.1的時候,發現可能會出現這個錯誤。
2、上文3和4,也可使用一句話GRANT ALL ON tbx.* TO 'username' IDENTIFIED BY 'password',這句話會自動創建username並為之授權。更多授權許可權可參考MYSQL官方網站。
Ⅳ 如何讓mysql以root用戶遠程登陸mysql資料庫
開啟MySQL的遠程登陸帳號有兩大步:
1、確定伺服器上的防火牆沒有阻止3306埠。
MySQL默認的埠是3306,需要確定防火牆沒有阻止3306埠,否則遠程是無法通過3306埠連接到MySQL的。
如果您在安裝MySQL時指定了其他埠,請在防火牆中開啟您指定的MySQL使用的埠號。
如果不知道怎樣設置您的伺服器上的防火牆,請向您的伺服器管理員咨詢。
2、增加允許遠程連接MySQL用戶並授權。
1)首先以root帳戶登陸MySQL
在Windows主機中點擊開始菜單,運行,輸入「cmd」,進入控制台,MySQL的bin目錄下,然後輸入下面的命令。
在Linux主機中在命令提示行下輸入下面的命令。
>MySQL-uroot-p123456
123456為root用戶的密碼。
2)創建遠程登陸用戶並授權
>grantallPRIVILEGESondiscuz.*toted@'123.123.123.123'identifiedby'123456';
上面的語句表示將discuz資料庫的所有權限授權給ted這個用戶,允許ted用戶在123.123.123.123這個IP進行遠程登陸,並設置ted用戶的密碼為123456。
下面逐一分析所有的參數:
allPRIVILEGES表示賦予所有的許可權給指定用戶,這里也可以替換為賦予某一具體的許可權,例如:select,insert,update,sqlserver/42947.htmtarget=_blank>delete,create,drop等,具體許可權間用「,」半形逗號分隔。
discuz.*表示上面的許可權是針對於哪個表的,discuz指的是資料庫,後面的*
表示對於所有的表,由此可以推理出:對於全部資料庫的全部表授權為「*.*」,對於某一資料庫的全部表授權為「資料庫名.*」,對於某一資料庫的某一表授
權為「資料庫名.表名」。
ted表示你要給哪個用戶授權,這個用戶可以是存在的用戶,也可以是不存在的用戶。
123.123.123.123表示允許遠程連接的IP地址,如果想不限制鏈接的IP則設置為「%」即可。
123456為用戶的密碼。
執行了上面的語句後,再執行下面的語句,方可立即生效。
>flushprivileges;
遠程登錄mysql一些常用的代碼段,大家可參考一下。
一、允許root用戶在任何地方進行遠程登錄,並具有所有庫任何操作許可權,具體操作如下:
在本機先使用root用戶登錄mysql:
mysql-uroot-p"youpassword"
進行授權操作:
mysql>GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'youpassword'WITHGRANTOPTION;
重載授權表:
FLUSHPRIVILEGES;
退出mysql資料庫:
exit
二、允許root用戶在一個特定的IP進行遠程登錄,並具有所有庫任何操作許可權,具體操作如下:
在本機先使用root用戶登錄mysql:
mysql-uroot-p"youpassword"
進行授權操作:
GRANTALLPRIVILEGESON*.*TOroot@"172.16.16.152"IDENTIFIEDBY"youpassword"WITHGRANTOPTION;
重載授權表:
FLUSHPRIVILEGES;
退出mysql資料庫:
exit
三、允許root用戶在一個特定的IP進行遠程登錄,並具有所有庫特定操作許可權,具體操作如下:
在本機先使用root用戶登錄mysql:
mysql-uroot-p"youpassword"
進行授權操作:
GRANTselect,insert,update,deleteON*.*TOroot@"172.16.16.152"IDENTIFIEDBY"youpassword";
重載授權表:
FLUSHPRIVILEGES;
退出mysql資料庫:
exit
四、刪除用戶授權,需要使用REVOKE命令,具體命令格式為:
REVOKEprivilegesON資料庫[.表名]FROMuser-name;
具體實例,先在本機登錄mysql:
mysql-uroot-p"youpassword"
進行授權操作:
GRANTselect,insert,update,deleteONTEST-DBTOtest-user@"172.16.16.152"IDENTIFIEDBY"youpassword";
再進行刪除授權操作:
REVOKEallonTEST-DBfromtest-user;
****註:該操作只是清除了用戶對於TEST-DB的相關授權許可權,但是這個「test-user」這個用戶還是存在。
最後從用戶表內清除用戶:
DELETEFROMuserWHEREuser="test-user";
重載授權表:
FLUSHPRIVILEGES;
退出mysql資料庫:
exit
Ⅵ mysql授權後用戶為什麼訪問不了
建議你先通過 >show grants for user_name; 命令查詢你的用戶許可權
Ⅶ mysql 用戶登錄需要授權嗎
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
說明: privileges - 用戶的操作許可權,如SELECT , INSERT , UPDATE 等(詳細列表見該文最後面).如果要授予所的許可權則使用ALL.;databasename - 資料庫名,tablename-表名,如果要授予該用戶對所有資料庫和表的相應操作許可權則可用*表示, 如*.*.
例子: GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
注意:用以上命令授權的用戶不能給其它用戶授權,如果想讓該用戶可以授權,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
Ⅷ mysql中怎樣允許把自己的許可權授權給其他用戶
grant select on xxx to user1 with grant option就可以了
Ⅸ mysql怎樣添加用戶授權
方法/步驟
我們以管理員的身份先登錄到資料庫伺服器上,我想登錄到資料庫伺服器
Ⅹ mysql 授權 user@%'為什麼登陸的時候localhost 不行
原因: %不包括 localhost
mysql> grant all on salt.* to salt@『%『 identified by 『salt『;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
[root@saltstack_s yum.repos.d]# mysql -u salt -psaltpasswd@123 -h localhost #登陸不了的原因。是因為上面授權的*不包括localhost
ERROR 1045 (28000): Access denied for user 『salt『@『localhost『 (using password: YES)
[root@saltstack_s ~]# mysql -usalt -p -h 192.168.92.128
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 『help;『 or 『\h『 for help. Type 『\c『 to clear the current input statement.
mysql>