设置mysql允许外部IP连接的解决方法
2013-12-12 14:31
375 查看
mysql默认情况下,只允许localhost连接,如果需要外部IP连接到mysql,需要向mysql数据库里的“user”表里添加相关授权。
例如:让newuser用户使用newpwd密码从IP:192.168.1.3主机链接到mysql服务器
具体步骤:
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有关吧
linnux 下出现这种情况
执行grant语句,把locahost改为本地的IP地址
flush;
例如:让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.exe或mysqld-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;
相关文章推荐
- 设置mysql允许外部IP连接的解决方法
- 设置mysql允许外部IP连接的解决方法
- 设置mysql允许外部IP连接的解决方法
- 设置mysql允许外部IP连接的解决方法
- 设置mysql允许外部IP连接的解决方法
- 设置mysql允许外部IP连接的解决方法
- 设置mysql允许外部IP连接的解决方法
- 设置mysql允许外部IP连接的解决方法
- 外部主机不允许连接Mysql设置的解决方法
- 外部主机不允许连接Mysql设置的解决方法
- 外部主机不允许连接Mysql设置的解决
- 设置MySql允许外部连接的方法
- 外部主机不允许连接Mysql设置的解决
- 使用navicat设置mysql允许外部IP连接【1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL serve】
- 设置mysql允许外部IP访问
- 解决MySQL不允许(其它IP)从远程访问的方法
- Linux mysql命令安装允许远程连接的安装设置方法
- 通过TCP/IP方式连接 “不能上到 mysqL 服务器连接 ”解决方法
- 在Linux环境下mysql的root密码忘记解决方法 1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。 2.修改MySQL的登录设置: # vi /etc/my.c
- Mysql设置只允许Ip远程连接