设为首页 收藏本站
查看: 822|回复: 0

[经验分享] MySQL数据库远程连接

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-3-28 09:21:21 | 显示全部楼层 |阅读模式
平台:Linux与win7

注:mysql是mysql数据库命令终端提示符、

方法一:

Linux终端下与WIN7终端下输入的下面指令:
# mysql -h localhost -u root -p //localhost与IP:127.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.86为mysql客户端主机的ip地址,也就是你的机器ip地址。
有个小细节需要注意。如果你的服务器装了防火墙的话,需要打开3306的访问,否则也会连接不上。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-16347-1-1.html 上篇帖子: mysql 启动错误-server PID file could not be found 下篇帖子: mysql空间扩展 VS PostGIS 数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表