MySQL数据库远程连接

 

MySQL数据库远程连接

参考:

http://www.jb51.net/article/24508.htm

http://www.linuxdiyf.com/viewarticle.php?id=84249

http://www.linuxdiyf.com/viewarticle.php?id=84249

 

平台:Linuxwin7

注:mysqlmysql数据库命令终端提示符

方法一:

Linux终端下与WIN7终端下输入的下面指令:
# mysql -h localhost -u root -p //localhost
IP127.0.0.1等价的
                                    //localhost
可用mysql服务器IP替换

Mysql> use mysql;//必须写这句,不然会出现erro信息:no database select

 

Mysql> update user set host=’%’where user=’root’;

使用update 后,出现erro:

ERRO 1062(23000):Duplicate entry ‘%-roo’for key ‘PRIMARY’

duplicate entry:重复录入,可能mysql数据库中已经包含了’%’,用指令select查看下如下行代码。

 

Mysql> select host,user from user;//查看主机(ip)与用户

select host from user where user=’root’

Mysql> flush privileges;

Mysql> exit

# /etc/init.d/mysql restart  //重起服务 win7不用这句,直接运行                                      //mysqld.exe就行了

方法二:

1、在控制台执行 # mysql -h localhost -u root -p mysql

//这个命令的第一个mysql是执行命令

                       //第二个mysql是系统数据名称,不一样的。


2 mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘201167‘ WITH GRANT OPTION;  //withgrant option
可不用
 

注示:root‘@‘%‘ 可以这样理解:root是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,你也可替换成任意其它用户名或指定唯一的IP地址;‘201167‘ 是给授权用户指定的登录数据库的密码;另外需要说明一点的是我这里的都是授权所有权限,可以指定部分权限,GRANT具体操作详情 见:http://dev.mysql.com/doc/refman/5.1/en/grant.html

 

3.mysql>FLUSH PRIVILEGES ;
4.mysql> select host, user from user; //
不放心的话检查一

                                      //用户表里的内容

 

Linux平台下方法三:

默认状况下,出于安全考虑,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)

/etc/mysql/my.cnf

# 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授访问权限
   
看方法一或二。

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

第四步 测试
$ mysql -u root–h 192.168.174.146 –p

注解;
root
mysql的用户名
-h IP or
域名: 65.55.55.2 is MySQL server IP address or hostname (FQDN)
-p :
密码提示
你也可以使用telnet去连接远程的3306端口 $ telnet 192.168.174.146 3306

笔者注:

这篇文章解决了我在suse环境中的mysql远程访问问题。但是实际操作中,my.cnf似乎并不是特别重要。在我的操作中,my.cnf创建和修改没有执行(忽略第一步)。最重要的步骤应该是第二步
GRANT ALL ON *.* TO‘root’@‘192.168.174.146‘ IDENTIFIED BY ‘‘;
其中b2c为所要访问的远程数据库名,5.179.201.86mysql客户端主机的ip地址,也就是你的机器ip地址。
有个小细节需要注意。如果你的服务器装了防火墙的话,需要打开3306的访问,否则也会连接不上。

 

 

MySQL数据库远程连接,布布扣,bubuko.com

MySQL数据库远程连接

上一篇:ubuntu 安装apache2,mysql,php5,phpmyadmin等软件


下一篇:mysql 启动错误-server PID file could not be found