mysql远程访问的设立(转载)

mysql远程访问的设置(转载)

登陆以后运行以下命令,给予远程访问客户端权限..

grant all on *.* to ‘remote’@’172.16.21.39’ identified by ‘password’;

remote表示用户名.

‘172.16.21.39’ 远程ip地址

password表示远程登陆密码.

默认状况下,出于安全考虑,mysql数据库屏蔽了远程访问功能。 然而在许多状况下,你需要在家

或者从web程序去访问远端数据库服务器,这就相当麻烦了。

第一步: 激活网络设置

你需要编辑mysql配置文件my.cnf.

通常状况,my.cnf放置于在以下目录:

/etc/mysql/my.cnf (Debian linux)

/etc/my.cnf (Red Hat Linux/Fedora Linux)

/var/db/mysql/my.cnf (FreeBSD)

# vi /etc/my.cnf

然后用vi编辑my.cnf,修改内容从以下行:

[mysqld]

你所需要:

1. 确保skip-networking被删除或者屏蔽,否则不支持TCP/IP 访问

2. 增加行bind-address = 65.55.55.2,替代65.55.55.2 为你的服务器地址

修改后,配置为:

[mysqld]

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

bind-address = 65.55.55.2

# skip-networking

….

..

保存并关闭配置文件

重启mysql服务器:# /etc/init.d/mysql restart

第二步, 给远程ip授访问权限

1. 以root身份登陆mysql # mysql -u root -p

2. 授权给新数据库

如果你有一个新的数据库名称为foo。用户bar需要在客户端地址为202.54.10.20上访问。

在服务器端执行 (授权法):

mysql> CREATE DATABASE foo;

mysql> GRANT ALL ON foo.* TO bar@’202.54.10.20′ IDENTIFIED BY ‘PASSWORD’;

如何给以存在的数据库授权?

如果用户 webadmin 经常在客户端地址202.54.10.20 访问 webd数据库,那么在服务器端执行的命

令应该为(改表法):

mysql> update db set Host=’202.54.10.20′ where Db=’webdb’;

mysql> update user set Host=’202.54.10.20′ where user=’webadmin’;

第三步: 执行exit命令退出mysql环境,

第四步 测试

From remote system type command:

$ mysql -u webadmin –h 65.55.55.2 –p

注解;

-u webadmin: webadmin为mysql的用户名

-h IP or 域名: 65.55.55.2 is MySQL server IP address or hostname (FQDN)

-p : 密码提示

你也可以使用telnet去连接远程的3306端口 $ telnet 65.55.55.2 3306

笔者注:

这篇文章解决了我在suse环境中的mysql远程访问问题。但是实际操作中,my.cnf似乎并不是特别

重要。在我的操作中,my.cnf创建和修改没有执行(忽略第一步)。最重要的步骤应该是第四步

GRANT ALL ON b2c.* TO root@’5.179.201.86′ IDENTIFIED BY ”;

其中b2c为所要访问的远程数据库名,5.179.201.86为mysql客户端主机的ip地址,也就是你的机器

ip地址。

有个小细节需要注意。如果你的服务器装了防火墙的话,需要打开3306的访问,否则也会连接不上

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tsuliuchao/archive/2009/10/27/4733960.aspx

mysql远程访问的设立(转载)

相关文章:

你感兴趣的文章:

标签云: