萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> 解決mysql不能遠程連接數據庫方法

解決mysql不能遠程連接數據庫方法

一般的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 |
+--------------+------+-------------------------------------------+
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替換為你的密碼,這樣就開啟了遠程訪問功能.


更多詳細內容請查看:http://www.111cn.net/database/mysql/34989.htm


上面的兩種方法一種是直接用root用戶在cmd模式下操作,一種是在配置文件裡面操作,大同小義了吧。

copyright © 萬盛學電腦網 all rights reserved