myql Connect

mysql折腾笔记

2014-01-05 10:58

经常吹嘘自己玩过各种数据库. redis, mysql, sqlite, mongodb..常用数据库都不在话下,不料今天却在远程连接mysql上栽了跟头,于是记一下这个教训

mysql默认是不开启远程连接的,要让mysql支持远程连接需要两个步骤

第一步

首先是打开/etc/mysql/my.cnf, 如果发现自己的mysql配置文件不是这个路径,强烈建议重装mysql(我就是因为装的mysql和别人不一样才鼓捣很久), 重装失败可以后面详解

bind-address = 127.0.0.1那一行配置改为bind-address = 0.0.0.0

bind-address表示监听时绑定的IP地址,为什么要这么改呢?

因为网卡收到请求,会把每个socket的目标地址和端口解析出来,并对照进程监听的IP和端口,如果IP和端口吻合,就传给进程

端口我们都知道mysql是3306,错不了. 而IP默认是127.0.0.1,是一个环回地址,只有本机请求本机,目标地址才会是127.0.0.1,因此我们需要将绑定IP改为网卡地址, 也就是外网IP, 因为远程连接数据库目标IP肯定是公网IP. 不过还可以改成0.0.0.0,这样就表示监听所有IP, 只要端口一样, 网卡都会把请求传给进程

第二步

进入mysql

mysql -uroot -p, 输入密码

添加一个可以远程访问的用户

GRANT ALL PRIVILEGES ON *.* TO  ‘USERNAME‘@‘IP‘  IDENTIFIED  BY  ‘PASSWORD‘;

FLUSH PRIVILEGES;

注意此处有三个变量, IP就是指远程client的ip地址,如果希望所有IP都可以访问, 就把IP改为%

重启mysql, service mysql restart

然后就可以通过navicat, 或者mysql --host ip地址 -uUSERNAME -p来访问了

如果你发现依然不能访问,首先确定是否打开了iptables(防火墙), (随便做个网页,用外网访问一下如果可以就不是iptables的问题)

这个时候就需要重装mysql了

千万不要以为精通mysql的安装(apt-get install mysql-server)就同样精通mysql的卸载了(apt-get remove mysql-server), (yum党退散

如果出现卸载不完全, 还出现了如下提示

Unable to set password for the MySQL “root” user An error occurred while setting the password for the MySQL administrative user. This may have happened because the account already has a password, or because of a communication problem with the MySQL server.

可以进行如下步骤:

dpkg --get-selections | grep mysql

libdbd-mysql-perl                               install
libmysqlclient18                                install
mysql-client-5.5                                install
mysql-client-core-5.5                           install
mysql-common                                    install
mysql-server                                    install
mysql-server-5.5                                install
mysql-server-core-5.5                           install

把这些都删了

apt-get remove libdbd-mysql-perl libmysqlclient18 mysql-client-5.5 ... --purge

收尾清理垃圾

apt-get autoremove
apt-get autoclean
rm /etc/mysql/ -fr
rm /var/lib/mysql/ -fr

然后再执行

apt-get install mysql-server

就成功啦

时间: 2024-08-09 23:56:05

myql Connect的相关文章

mysql链接错误:2003 can't connect to mysql server on 10038

出现这个错误原因是端口号不是3306. 打开D:\Program Files\MySQL\MySQL Server 5.5 \my.ini文件,当然还有其他的.ini的文件: [client] port=3306 [mysql] default-character-set=utf8 # SERVER SECTION# ----------------------------------------------------------------------## The following opt

oracle使用connect by进行级联查询 树型菜单

Oracle使用connect by进行级联查询 树型菜单(转) connect by可以用于级联查询,常用于对具有树状结构的记录查询某一节点的所有子孙节点或所有祖辈节点. 来看一个示例,现假设我们拥有一个菜单表t_menu,其中只有三个字段:id.name和parent_id.它们是具有父子关系的,最顶级的菜单对应的parent_id为0.现假设我们拥有如下记录: id name parent_id 1 菜单01 0 2 菜单02 0 3 菜单03 0 4 菜单0101 1 5 菜单0102

redis error It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. SocketFailure on PING

应用redis出现如下错误 It was not possible to connect to the redis server(s); to create a disconnected multiplexer, disable AbortOnConnectFail. SocketFailure on PING 参考stack overflow上文章 http://stackoverflow.com/questions/30895507/it-was-not-possible-to-connec

打开vsphere client提示Unable connect to MKS

问题描述:客户有3台服务器,突然发现用户的vsphere client打开虚拟机控制台的时候,提示Unable connect to MKS:Failed to connect to server IP地址:902 解决方法:通过测试发现,有一台是没问题的,另外两台无法均报错,通过对比发现,出现问题的两台服务器网关地址填写错误导致的,把网关地址修改为正确的,发现问题得到解决.

svn更新报错:svn unable to connect to a repository at url

出现错误:unable to connect to a repository at url 解决办法1. 右键点击本地副本,TortoiseSVN -> Settings -> Saved Data,2. 点击个个“Clear”按钮,把本地缓存都清除了,点击“确定”:3. 再重新checkout即可!

时间获取程序客户端 TCP 使用非阻塞connect

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie /** * TCP,使用非阻塞 connect **/ #include "unp.h" int connect_nonb(int sockfd, const SA *saptr, socklen_t salen, int nsec) { int flags, n, error; socklen_t len; fd_set rset, wset; struct timeval t

Unable to connect to the MKS: Failed to connect to <server IP>:902.控制台黑屏

本人此次遇到此问题的是VSphere 5.1. 在此问题出现之前都正常,没出过任何问题,问之做过什么动作,是客户重配了网络,这其实是我要求改的,但是客户改的和我要求的不一样. 我计划是vswitch0做管理,vswitch1做vmotion,vswitch2做vm network:由于安装ESXI 5.1时自动生成vswitch0:10.23.70.60,客户误搭建了vswitch1:10.23.70.54做管理,vswitch2做vmotion,vswitch3做vm network,且vsw

解决mysql报错Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’

启动mysql 报错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 1.先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.另外看看是不是权限问题. 2.确定你的mysql.sock是不是在那个位置,mysql -u 你的mysql用户名 -p -S /var/lib/mysql/

使用github出了些问题?fatal: unable to access;Failed connect to github.com:8087;

使用github出了些问题?fatal: unable to access;Failed connect to github.com:8087; No error 我今天使用git push origin master的时候,提示我fatal: unable to access 'https://XXXX@github.com/XXX/XXX' Failed connect to github.com:8087; No error 在谷歌上查了很多办法都没有解决,有的方法是https连接模式改成