MySQL遠端訪問許可權,同時允許遠端連線和本地連線
阿新 • • 發佈:2019-01-11
1、登陸mysql資料庫
mysql -u root -p
mysql> use mysql;
Database changed
mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host | user | password |
+--------------+------+-------------------------------------------+
| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| centos | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 127.0.0.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec)
可以看到在user表中已建立的root使用者。host欄位表示可以登入的主機,其值可以用IP,也可用主機名,現在是有三個本地HOST可以登入,現在可以將host為centos改為遠端主機都可以訪問,即
update user set host = ’%’ where user = ’root’ and host = ‘centos’;
改後表結構:
+--------------+------+-------------------------------------------+
| host | user | password |
+--------------+------+-------------------------------------------+
| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| % | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | | 127.0.0.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | +--------------+------+-------------------------------------------+ 此時本地主機localhost和127.0.0.1可用於本地登入,%表示允許所有遠端登入 然後執行
| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| centos | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
update user set host = ’%’ where user = ’root’ and host = ‘centos’;
| % | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | | 127.0.0.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | +--------------+------+-------------------------------------------+ 此時本地主機localhost和127.0.0.1可用於本地登入,%表示允許所有遠端登入 然後執行
mysql> flush privileges; 立即生效
mysql> quit;
現在便可在本地或者遠端登入了。
2、實現遠端連線(授權法) 將host欄位的值改為%就表示在任何客戶端機器上能以root使用者登入到mysql伺服器,建議在開發時設為%。 update user set host = ’%’ where user = ’root’; 將許可權改為ALL PRIVILEGESmysql> use mysql;Database changedmysql> grant all privileges on *.* to [email protected]'%' identified by "root";Query OK, 0 rows affected (0.00 sec) www.2cto.com mysql> select host,user,password from user;+--------------+------+-------------------------------------------+| host | user | password |+--------------+------+-------------------------------------------+| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E || 127.0.0.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E || % | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |+--------------+------+-------------------------------------------+3 rows in set (0.00 sec)這樣機器就可以以使用者名稱root密碼root遠端訪問該機器上的MySql.
| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |