不可以连接远程mysql数据库,mysql数据库远程连接不上

本文目录一览:

怎么解决mysql不允许远程连接的错误

如果mysql不支持远程连接,会出现提示:错误代码是1130,ERROR 1130: Host * is not allowed to connect to this MySQL server

解决方案:

将需要被访问的mysql服务器的localhost值改成%,进入mysql的BIN目录

运行代码如下:

–打开mysql数据库服务

mysql -u root -p

–打开mysql数据库文件

mysqluse mysql;

–将mysql数据库中user表中user字段下的root用户的host值改为通配符%(默认是localhost)

mysqlUPDATE user SET host =’%’ WHERE user = ‘root’;

–修改之后再刷新一下权限

mysqlflush privileges;

具体分析

1、在本机登入mysql后,更改“mysql”数据库里的“user”表里的“host”项,从”localhost”改为’%’。

代码如下:

mysql

mysqluse mysql;

mysqlselect ‘host’ from user where user=’root’;

#查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)

代码如下:

mysqlupdate user set host = ‘%’ where user =’root’;

#修改host值(以通配符%的内容增加主机/IP地址,当然也可以直接增加某个特定IP地址,如果执行update语句时出现ERROR 1062 (23000): Duplicate entry ‘%-root’ for key ‘PRIMARY’ 错误,需要select host from user where user = ‘root’;

查看一下host是否已经有了%这个值,如果有了直接执行下面的flush privileges;即可)

代码如下:

mysqlflush privileges;

mysqlselect host,user from user where user=’root’;

mysqlquit

MySQL数据库不允许从远程访问怎么办?

本文提供了三种解决方法:

1、改表法。可能匙你d帐号不允许从远程登陆,只能在localhost。这个时候只要在localhostd那台电脑,登入mysql后,更改

“mysql”

数据库里d

“user”

表里d

“host”

项,从”localhost”改称”%”

mysql

-u

root

-pvmwaremysqluse

mysql;

mysqlupdate

user

set

host

=

‘%’

where

user

=

‘root’;

mysqlselect

host,

user

from

user;

2、授权法。

GRANT

ALL

PRIVILEGES

ON

*.*

TO

‘myuser’@’%’IDENTIFIED

BY

‘mypassword’

WI

TH

GRANT

OPTION;

如果你想允许用户myuser从ip为192.168.1.6d主机连接到mysql服务器,并使用mypassword作为密码

GRANT

ALL

PRIVILEGES

ON

*.*

TO

‘myuser’@’192.168.1.3’IDENTIFIED

BY

‘mypassword’

WITH

GRANT

OPTION;

我用d第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句

mysqlFLUSH

RIVILEGES

使修改生效,就可以了

另外一种方法:

在安装mysqld机器上运行:

1、d:/mysql/bin/mysql

-h

localhost

-u

root

//这样应该可以进入MySQL服务器

2、mysqlGRANT

ALL

PRIVILEGES

ON

*.*

TO

‘root’@’%’WITH

GRANT

OPTION

//赋予任何主机访问数据d权限

3、mysqlFLUSH

PRIVILEGES

//修改生效

4、mysqlEXIT

//退出MySQL服务器

这样就可以在其它任何d主机上以root身份登录啦。

mysql-front 无法远程连接mysql数据库

不允许远程连接这个数据库,你看下mysql端口是否打开,另外查看一下mysql是否允许远程连接

几个解决方案,自己看下

1.修改改mysql配置文件(/etc/mysql/my.cnf),注释以下行:

#bind-address

=

127.0.0.1

2.重启mysql数据库,对于ubuntu系统,执行如下命令

sudo

/etc/init.d/mysql

restart

3.以root用户登录mysql后,执行如下命令:

grant

all

privileges

on

*.*

to

root@’允许登录的远程机器ip’

identified

by

‘密码’

或者

grant

all

privileges

on

*.*

to

‘myuser’@’%’

identified

by

‘mypassword’

with

grant

option;

如果你想允许用户myuser从ip为168.160.12.50的主机连接到mysql服务器,并使用mypassword作为密码

grant

all

privileges

on

*.*

to

‘myuser’@’168.160.12.50’

identified

by

‘mypassword’

with

grant

option;

无法连接远程MySQL数据库哪,如何解决

一、连接远程数据库:

1、显示密码

如:MySQL

连接远程数据库(192.168.5.116),端口“3306”,用户名为“root”,密码“123456”

C:/mysql -h

192.168.5.116 -P 3306 -u root -p123456

2、隐藏密码

如:MySQL 连接本地数据库,用户名为“root”,

C:/mysql -h

localhost -u root -p

Enter password:

二、配置mysql允许远程链接

默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。本文提供了二种方法设置mysql可以通过远程主机进行连接。

一、改表法

在localhost登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host”

项,将”localhost”改称”%”

例如:

#mysql -u root

-p

Enter password:

……

mysql

mysqlupdate user

set host = ‘%’ where user = ‘root’;

mysqlselect host,

user from user;

二、授权法

例如:

你想myuser使用mypassword(密码)从任何主机连接到mysql服务器的话。

mysqlGRANT ALL

PRIVILEGES ON *.* TO ‘myuser’@’%’IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

mysqlGRANT ALL

PRIVILEGES ON *.* TO ‘myuser’@’192.168.1.3’IDENTIFIED BY

‘mypassword’ WITH GRANT OPTION;

mysqlFLUSH

PRIVILEGES

使修改生效,就可以了

常见问题:

1、在采用法二授权法之后,无法在本地登录mysql(如:#mysql -u root -p -h

192.168.5.116

Enter password:

ERROR 1045 (28000): Access denied for user

‘root’@’loadb116’ (using password: YES)

上例中loadb116是主机名.

解决方法:

1、这时可以使用:mysql -u

root -p 登录,进入到mysql后。

mysql grant all privileges on *.* to ‘root’@’loadb116’

identified by ‘123456’ with grant option;

Query OK, 0 rows affected

(0.00 sec)

mysql flush

privileges;

Query OK, 0 rows affected (0.00

sec)

2、在本地使用ip地址登录

#

mysql -u root -p -h

192.168.5.116

Enter password:

Welcome to the MySQL

monitor. Commands end with ; or /g.

Your MySQL connection id is 60

Server

version: 5.1.45 MySQL Community Server (GPL)

Type ‘help;’ or ‘/h’ for

help. Type ‘/c’ to clear the buffer.

mysql

Mysql无法远程连接,要如何解决

原因是MySQL默认不支持远程连接,(那么phpMyAdmin为什么可以连接呢?那是因为phpMyadmin的环境是上传到服务器的,其本身访问数据库是相当于本机localhost访问的),如果想远程访问,可以使用下面的方法来解决。

远程连接mysql数据库时出现如下提示信息:“MYSQL CONNECT ERROR – 1130:Host ’202.43.**.**’ is not allowed to connect to this MySQL server”

在创建mysql账户时,限制连接账户远程登录。也就是说,除了当前mysql所在的安装服务器外,其他的ip(主机)都是不允许访问的,即使你的用户名和密码是正确的。这时候就要修改用户的访问权限。

首先是用root用户登录到mysql的安装主机,然后进入mysql:

mysql -u root -p

root是mysql的最高授权用户名,这时会提示你输入密码,正确输入密码后回车,进入mysql。回车

然后输入如下命令:

grant all on 数据库名.* to ‘数据库账户名’@’%’ identified by ‘密码’ with grant option;

回车

flush privileges;

回车

注意:上面的单引号不能省,数据库名.* 表示要开放的数据库下所有表,如果该连接的所有数据库都要开放,可以用 *.* 代替。

‘数据库账户名’@’%’ 这里表示要开放的账户,百分号表示在任何主机都允许访问。

如果以上两步均显示 “Query OK, 0 rows affected (0.00 sec)”,那么说明命令已经成功执行,现在就可以远程连接你的mysql数据库了。

(1).如果想赋予所有操作的权限

grant all on … to 用户名……

(2).如果想赋予操作所有数据库的所有表的权限

grant … on *.* to 用户名……

(3).如果想赋予某个数据库的所有表

grant … on 数据库名称.’*’ to 用户名…… ([ * ]两边一定要加单引号)

(4).如果想赋予某个数据库的某张表

grant … on 数据库名称.表名 to 用户名……

(5).如果想任何客户端都能通过该用户名远程访问

grant … on … to 用户名@% ……. (要把IP地址改成[ % ])

(6).改完了以后一定要重新启动MySQL服务

用户会存到Mysql服务器上的user表中,所以下面的两种方法都可以解决这个问题:

1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%”

mysql -u root -p

mysqluse mysql;

mysqlupdate user set host = ’%’ where user = ’root’;mysqlselect host, user from user;

mysqlflush privileges;

2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO ’myuser’@’%’ IDENTIFIED BY ’mypassword’ WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO ’myuser’@’192.168.1.3’ IDENTIFIED BY ’mypassword’ WITH GRANT OPTION;

如果还是无法远程我们可参考

1、Mysql的端口是否正确,通过netstat -ntlp查看端口占用情况,一般情况下端口是3306。在用工具连接MySQl是要用到端口。例如My AdminMy Query BrowserMySQl Front等。

2、检查用户权限是否正确。

例如:用户Tester,user表里有两条记录:host分别为localhost和%(为了安全,%可以换成你需要外部连接的IP)。

3、查看/etc/my.cnf中,skip-networking 是否已被注掉,需要注掉。

报错:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.51.112’ (111)

4、查看iptables是否停掉,没关的情况下,无法连接。

通过:service iptables stop临时关闭。

报错:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.51.112’ (113)

另外,我们还可以通过配置http通道来使Navicat远程连接到数据库,这样做的好处是不需要前面繁杂的配置。在主机名IP地址那里填写LocalHost

用户名与密码一栏则填写你所在的数据库用户名与密码。

这时候还不能连接数据库的,需要通过Http通道的形式进行数据库连接。

点击连接属性标签栏中的Http,如下图所示:

勾选使用Http通道后,在通道地址一栏输入你的网址与后台文件地址。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/248309.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:26
下一篇 2024-12-12 13:26

相关推荐

  • 如何修改mysql的端口号

    本文将介绍如何修改mysql的端口号,方便开发者根据实际需求配置对应端口号。 一、为什么需要修改mysql端口号 默认情况下,mysql使用的端口号是3306。在某些情况下,我们需…

    编程 2025-04-29
  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • openeuler安装数据库方案

    本文将介绍在openeuler操作系统中安装数据库的方案,并提供代码示例。 一、安装MariaDB 下面介绍如何在openeuler中安装MariaDB。 1、更新软件源 sudo…

    编程 2025-04-29
  • Python操作MySQL

    本文将从以下几个方面对Python操作MySQL进行详细阐述: 一、连接MySQL数据库 在使用Python操作MySQL之前,我们需要先连接MySQL数据库。在Python中,我…

    编程 2025-04-29
  • 数据库第三范式会有删除插入异常

    如果没有正确设计数据库,第三范式可能导致删除和插入异常。以下是详细解释: 一、什么是第三范式和范式理论? 范式理论是关系数据库中的一个规范化过程。第三范式是范式理论中的一种常见形式…

    编程 2025-04-29
  • MySQL递归函数的用法

    本文将从多个方面对MySQL递归函数的用法做详细的阐述,包括函数的定义、使用方法、示例及注意事项。 一、递归函数的定义 递归函数是指在函数内部调用自身的函数。MySQL提供了CRE…

    编程 2025-04-29
  • leveldb和unqlite:两个高性能的数据库存储引擎

    本文将介绍两款高性能的数据库存储引擎:leveldb和unqlite,并从多个方面对它们进行详细的阐述。 一、leveldb:轻量级的键值存储引擎 1、leveldb概述: lev…

    编程 2025-04-28
  • Python怎么导入数据库

    Python是一种高级编程语言。它具有简单、易读的语法和广泛的库,让它成为一个灵活和强大的工具。Python的数据库连接类型可以多种多样,其中包括MySQL、Oracle、Post…

    编程 2025-04-28
  • MySQL bigint与long的区别

    本文将从数据类型定义、存储空间、数据范围、计算效率、应用场景五个方面详细阐述MySQL bigint与long的区别。 一、数据类型定义 bigint在MySQL中是一种有符号的整…

    编程 2025-04-28
  • MySQL左连接索引不生效问题解决

    在MySQL数据库中,经常会使用左连接查询操作,但是左连接查询中索引不生效的情况也比较常见。本文将从多个方面探讨MySQL左连接索引不生效问题,并给出相应的解决方法。 一、索引的作…

    编程 2025-04-28

发表回复

登录后才能评论