一般的mysql是不建義開啟遠程訪問權限的,這樣相對來說安全一些,不過今天我來為需要遠程訪問權限朋友介紹一下.
1、登陸mysql數據庫
mysql -u root -p
查看user表,代碼如下:
- mysql> use mysql;
- Database changed
- mysql> select host,user,password from user;
- +--------------+------+-------------------------------------------+
- | host | user | password |
- +--------------+------+-------------------------------------------+
- | localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
- | 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E | --Vevb.com
- +--------------+------+-------------------------------------------+
- 2 rows in set (0.00 sec)
可以看到在user表中已創建的root用戶,host字段表示登錄的主機,其值可以用IP,也可用主機名.
(1)有時想用本地IP登錄,那么可以將以上的Host值改為自己的Ip即可。
2、實現遠程連接(授權法)
將host字段的值改為%就表示在任何客戶端機器上能以root用戶登錄到mysql服務器,建議在開發時設為%。
update user set host = ’%’ where user = ’root’;
將權限改為ALL PRIVILEGES,代碼如下:
- mysql> use mysql;
- Database changed
- mysql> grant all privileges on *.* to root@'%' identified by "root";
- Query OK, 0 rows affected (0.00 sec)
- mysql> select host,user,password from user;
- +--------------+------+-------------------------------------------+
- | host | user | password |
- +--------------+------+-------------------------------------------+
- | localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
- | 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
- | % | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
- +--------------+------+-------------------------------------------+
- 3 rows in set (0.00 sec)
這樣機器就可以以用戶名root密碼root遠程訪問該機器上的MySql.
3、實現遠程連接(改表法),代碼如下:
- use mysql;
- update user set host = '%' where user = 'root';
這樣在遠端就可以通過root用戶訪問Mysql.
另一種方法:mysql默認是不可以通過遠程機器訪問的,通過下面的配置可以開啟遠程訪問,我的mysql環境是ubuntu+mysql5.
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替換為你的密碼,這樣就開啟了遠程訪問功能.
上面的兩種方法一種是直接用root用戶在cmd模式下操作,一種是在配置文件里面操作,大同小義了吧.
新聞熱點
疑難解答