Mysql_不能用ip链接_能用localhost 和 127.0.0.1链接

piaoling  2012-07-18 09:02:03

Mysql_不能用ip链接_能用localhost 和 127.0.0.1链接

OS:Ubuntu

lijg@lijg-pc:~/tempdb$ mysql -h localhost -uroot -p 

lijg@lijg-pc:~/tempdb$ mysql -h 127.0.0.1 -uroot -p

 

但是用ip就不行了

 

lijg@lijg-pc:~/tempdb$ mysql -h 192.168.7.247 -uroot -p t800

Enter password: 

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.7.247' (111)

 

解决方法:

步骤1、确认已有账户权限

 

mysql> use mysql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Database changed

mysql> select Host, user, password from user;

+---------------+------------------+-------------------------------------------+

| Host          | user             | password                                  |

+---------------+------------------+-------------------------------------------+

| localhost     | root             | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| lijg-pc       | root             | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| 127.0.0.1     | root             | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |

| localhost     | debian-sys-maint | *F4464C1C25D56494A2BB5976B2D39C64A89B01B4 |

+---------------+------------------+-------------------------------------------+

5 rows in set (0.00 sec)

 
加入权限:

grant all privileges on *.* to '用户名'@'IP地址' identified by '密码';

all privileges 所有权限 也可以写成 select ,update等
*.* 所有库的所有表 如 databasename.*
用户名 随便起
IP  数据库所在的IP
identified by ‘密码’ 表示通过密码连接

执行完上述命令后用下面的命令刷新一下权限

flush privileges;

另外也可以这样加入权限(不推荐阿)

可以登录mysql,没有开放的账户的话可以使用以下语句添加账户、密码和权限

INSERT INTO `user` VALUES ('%','admin',PASSWORD('123456'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','N','N','N','','','','',0,0,0,0,'',NULL);

INSERT INTO `user` VALUES ('localhost','admin',PASSWORD('123456'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','');

FLUSH PRIVILEGES;

 

步骤2、确认防火墙是否启用

如果有启用请确认有开放通信端口(如3306),没有允许通信端口的话,请添加通信端口(其实这个是最重要的);

 

 

步骤3 检查配置是不是限制只能从localhost链接(ubuntu默认的安装方式)

 

1. 应该吧root的主机设置为%

2.修改my.conf配置

注意需要重新启动数据库,linux下启动、停止与重启 

/etc/init.d/mysql start/stop/restart

[mysqld]
...
bind_address=127.0.0.1 # 屏蔽掉该处 
...
[mysqld]
...
skip_networking # 屏蔽掉该处 

问题:mysql只能用localhost或127.0.0.1连接

解决:mysql安装完后,默认是root用户,root用户只能在服务器登录,需要分配新用户。

 

 

方法:
1.运行mysql客户端,以root用户登陆。

2.用如下命令选择需要操作的数据库,use database(数据库名),如:use multilingual;

3.用如下命令分配新用户: grant all on * to 'capinfo'(用户名) identified by 'capinfo'(密码);

  第一个capinfo是用户名,第二个capinfo是密码

4.退出即可使用IP用新增用户登陆

参考:

http://www.itkee.com/database/detail-795.html

http://blog.sina.com.cn/s/blog_53f716d40100haql.html

类别 :  sql(5)  |  浏览(4501)  |  评论(0)
发表评论(评论将通过邮件发给作者):

Email: