Mysql_不能用ip链接_能用localhost 和 127.0.0.1链接
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用新增用户登陆
参考: