問題描述
本想使用
GRANT ALL PRIVILEGES ON *.* TO 'ZB'@'192.168.0.145' IDENTIFIED BY 'aabbccdd' WITH GRANT OPTION;
命令來實(shí)現(xiàn)以下需求:
允許名為ZB的用戶,以aabbccdd作為密碼迎卤,從IP地址為192.168.0.145的主機(jī)連接到mysql服務(wù)器,并且可以訪問mysql服務(wù)器的任何數(shù)據(jù)庫(kù)玷坠。
報(bào)錯(cuò)內(nèi)容如下圖所示:綠色方框
the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'zhangbin' WITH GRANT OPTION' at line 1
原因
- MySql 8.0.15沒法使用
GRANT ALL PRIVILEGES ON *.* TO 'ZB'@'192.168.0.145' IDENTIFIED BY 'aabbccdd' WITH GRANT OPTION;
一行命令設(shè)置用戶權(quán)限蜗搔。 - 必須分兩步來實(shí)現(xiàn)設(shè)置用戶權(quán)限【先創(chuàng)建用戶、在對(duì)該用戶分配用戶權(quán)限】八堡。
解決辦法:我用的是授權(quán)
的做法來給用戶分配訪問權(quán)限樟凄。
步驟一:創(chuàng)建用戶ZB并設(shè)置密碼aabbccdd。
create user 'ZB'@'192.168.0.145' identified by 'aabbccdd';
步驟二:對(duì)用戶ZB分配訪問權(quán)限秕重。
GRANT ALL PRIVILEGES ON *.* TO 'ZB'@'192.168.0.145' WITH GRANT OPTION;
grant 權(quán)限列表 on 數(shù)據(jù)庫(kù) to '用戶名'@'訪問主機(jī)' ;
完整命令截圖
/usr/local/mysql/bin/mysql -u root -p
use mysql;
select host,user from user;
create user 'ZB'@'192.168.0.145' identified by 'aabbccdd';
GRANT ALL PRIVILEGES ON *.* TO 'ZB'@'192.168.0.145' WITH GRANT OPTION;
select host,user from user;
FLUSH PRIVILEGES;
拓展1不同。接著上面的命令,如果你想讓任何ID地址的主機(jī)都可以訪問mysql服務(wù)器溶耘,那么請(qǐng)按如下配置二拐。
/usr/local/mysql/bin/mysql -u root -p
use mysql;
select host,user from user;
create user 'ZB'@'%' identified by 'aabbccdd';
GRANT ALL PRIVILEGES ON *.* TO 'ZB'@'%' WITH GRANT OPTION;
select host,user from user;
FLUSH PRIVILEGES;
拓展2。修改表中的host字段的值的方式來給用戶分配訪問權(quán)限
修改用戶名為root的主機(jī)對(duì)應(yīng)的host的值凳兵。改成只要名為root的用戶百新,那么無論什么IP地址都可以訪問mysql服務(wù)器。詳細(xì)代碼和截圖如下
/usr/local/mysql/bin/mysql -u root -p
use mysql;
select host from user where user='root';
update user set host = '%' where user ='root';
select host from user where user='root';
FLUSH PRIVILEGES;