mysql默认情况下,只允许localhost连接,如果需要外部IP连接到mysql,需要向mysql数据库里的“user”表里添加相关授权。
    例如:让newuser用户使用newpwd密码从IP:192.168.1.3主机链接到mysql服务器   
   
    具体步骤:

  1. linux下登陆mysql 直接输入指令mysql -uroot -predhat如果有主机选择就输入-h172.25.X.X 注意-p后面输入密码时候不要空格,直接-p后输入密码。
    2.  mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
    3.  mysql>flush privileges;     
   
    grant语法:
    grant 权限名(所有的权限用all) on      库名(*全部).表名(*全部) to  '要授权的用户名 '@'%'(%表示所有的IP,可以只些一个IP) identified by "密码";
身份检查使用user表(Host, User和Password)3个范围列执行。服务器只有在user表记录的Host和User列匹配客户端主机名和用户名并且提供了正确的密码时才接受连接。
在user表Host值的指定方法:
      * Host值可以是主机名或IP号,或'localhost'指出本地主机。
      * 你可以在Host列值使用通配符字符“%”和“_”。
      * Host值'%'匹配任何主机名,空Host值等价于'%'。它们的含义与LIKE操作符的模式匹配操作相同。例如,'%'的Host值与所有主机名匹配,而'%.mysql.com'匹配mysql.com域
的所有主机。


远程使用Navicat for mysql 客户端软件连接 局域网内其它mySql数据库时,连接出现 2003-Can’t connect to MySQL on ’10.52.12.92’(10061)错误,是由于MySQL不准许远程连接。

修改方法如下:

    1:在服务端MySQL文件夹下找到my.ini文件。修改bind-address=127.0.0.1 为 bind-address=0.0.0.0

    2:重新启动MySQL服务。



域名解析时间过长,导致无法连接

在hosts文件 上添加src  的hostname

Vi  /etc/hosts

10.51.14.193  archermind





1. my.cnf 配置文件中 skip-networking 被配置

skip-networking 这个参数,导致所有TCP/IP端口没有被监听,也就是说出了本机,其他客户端都无法用网络连接到本mysql服务器

所以需要把这个参数注释掉。

2.my.cnf配置文件中 bindaddress 的参数配置

bindaddress,有的是bind-address  ,这个参数是指定哪些ip地址被配置,使得mysql服务器只回应哪些ip地址的请求,所以需要把这个参数注释掉。

3.防火墙的原因

通过 /etc/init.d/iptables  stop  关闭防火墙

我的问题,就是因为这个原因引起的。关闭mysql 服务器的防火墙就可以使用了。


4.碰到一个极端情况,不是很理解

   把GRANT 语句中的 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' I   通配符% 换成制定IP地址就可以了,可能跟hostname有关吧




出现Access denied for user 'root'@'localhost' (using password: YES) in 怎么办啊


第一步
删除c:\windowns下面的my.ini
第二步
打开c:\mysql\bin\winmysqladmin.exe 输入用户名 和密码
第三步 在dos下 输入 mysqld-nt -remove 删除服务
在接着输入 mysqld-nt -install
第四步 输入mysql 启动成功。
其它可参考的方法: 
1.看看hosts文件中localhost是不是指向127.0.0.1 
2.如果是没启动mysql服务,则可运行net start mysql。 
3.一些相关命令: 
mysqld-nt --install #启动Mysql 
mysql #运行Mysql 
mysql -h ipAddress -u username -p 
或者:直接去bin里点mysqld.exemysqld-nt.exe,看下它的进程能否正常运行,如不行,再去控制面板,服务里去启动它,看下是什么错误。如果不行,就在添加删除里删去mysql,然后再重装mysql,一般都能解决问题,可以在安装前备份一下DATA。
Error: Can't connect to MySQL server on 'localhost' (10061)
Errno.: 2003
错误编号:2003
问题分析:
无法连接到 MySQL 服务器,可能的情况为:
1、MySQL 服务没有启动,一般是在异常的情况下 MySQL 无法启动导致的,比如无可用的磁盘空间,my.ini 里 MySQL 的 basedir 路径设置错误等;
2、MySQL 服务器资源紧张,导致无法连接。
解决方法:
1、如果你是虚拟主机用户(购买的空间),则联系空间商检查 MySQL 是否正常启动,并确认 MySQL 的配置信息(是否为 localhost);
2、如果你是独立主机用户(拥有管理主机权限),则按下面步骤检查:
     1)检查磁盘空间是否还有剩余可用空间,尽量保持有足够的磁盘空间可用。
     2)检查 my.ini 里的 basedir (MySQL 安装地址) 和 datadir (数据目录存放地址)等参数设置是否正确,然后重新启动下 MySQL 服务。
还有一种方法是将服务器的windows补丁。
微软9月9日发布了TCP/IP更新补丁(KB967723),如果服务器开启自动更新或者有自动更新软件下载更新了这个补丁,那么就会出现这个问题。
有人可能会问,为什么9号出现的补丁,到现在才发现问题?
大家都知道,服务器不是每天都重启的,有的服务器可能一个月或者一年半载重启一次,有的可能在9月9日以后重启过服务器,所以补丁生效了(我个人这么认为)。


linnux 下出现这种情况

执行grant语句,把locahost改为本地的IP地址

flush;

Logo

更多推荐