mysql:无法远程登入mysql server 的解决办法

本文介绍了一种常见的MySQL远程连接失败的问题及解决方法。通过排查网络问题并最终修改MySQL服务器的host表设置,实现了从Navicat等IDE工具成功访问远程数据库。
mysql这么小,大家都会在自己机器上装一个,在本地连本地的server,一般都不会碰到"host is not allowed to connect to this mysql server"这样的错误。如果不是最近一个rails 的项目,估计我也不会碰到,所以记录一下,给需要的人留个档。

我们的项目是ubuntu7.04+rails1.2.3+mysql5.0,前面的人基本上都是在vi下做开发,访问数据库也是用命令行,随着项目的增大,表结构由原来的几张变成了几十张,新来的开发人员基本上不习惯用命令行,所以决定用IDE远程访问数据库。

1、装好navicat,新建一个connection,双击该连接,出现错误提示"host is not allowed to connect to this mysql server".
2、怀疑网络问题,先ping服务器,能通,再telnet,服务器拒绝链接,网络问题被排除。
3、那只能是服务器的配置问题,查了一下manual,需要在服务器里mysql数据库的host表做些配置。
shell>mysql --user=root -p
输入密码
mysql>use mysql
mysql>GRANT SELECT,INSERT,UPDATE,DELETE ON [db_name].* TO [username]@[ipadd] identified by '[password]';

db_name:要开发远程连接权限数据库名
username:连接所使用的用户名
ipadd:客户端所在主机的IP地址,如果要开放多个网段的链接,可以使用%作为通配符,例如,开一个一个C类网段的连接,可以使用'192.168.0.%',[color=red][b]地址两边的单引号是必须的。[/b][/color]
password:用户密码
<think>好的,用户想连接到本地MySQL数据库,但不太清楚具体的录方法。我需要根据提供的引用信息和自己的知识来解答。 首先,引用[1]提到使用IDEA连接MySQL时,默认地址是localhost,端口3306,但如果安装时改过端口或者有多个版本,需要注意对应的端口。这说明本地连接的基础是知道正确的地址和端口,默认通常是localhost:3306,但可能有变化。 引用[2]提到在Mac本地运行MySQL服务,并使用knex和mysql2驱动连接,需要安装依赖。这可能涉及启动MySQL服务,比如通过命令行启动,或者检查服务状态,确保数据库服务在运行。 引用[3]展示了SSH连接远程数据库的例子,但用户问的是本地连接,所以这部分可能不太相关,不过里面的连接字符串格式可以参考,比如用户名、密码、地址、端口和数据库名。 引用[4]提到小程序连接时的认证错误,解决办法可能需要修改用户权限或更新认证方式,比如使用mysql_native_password。这可能提示用户在录时如果遇到类似错误,需要调整用户权限。 接下来,用户的问题是如何录本地MySQL,可能有两种方式:命令行和图形界面工具。需要分步骤说明。 首先,确保MySQL服务已经启动。在Windows可以通过服务管理器,在Mac/Linux可以用系统命令。比如,Mac上使用brew services start mysql,或者sudo mysql.server start。 然后,使用命令行录。默认情况下,安装MySQL时会设置root密码,用户可能需要使用mysql -u root -p,然后输密码。如果忘记密码,可能需要重置,但用户现在可能只是初次录,所以先提供基本步骤。 如果用户遇到权限问题,比如无法用root录,可能需要检查是否设置了密码,或者在安装时是否有默认密码。有些安装方式会在安装过程中提示设置密码,而有些可能默认密码为空,但现代版本可能要求必须设置密码。 另外,引用[4]中的认证错误提示可能需要修改用户的认证插件,比如使用ALTER USER语句设置mysql_native_password,这可能是在录后需要做的配置,但用户现在的问题是如何录,所以可能在录成功后遇到这个问题,可以放在常见问题里。 对于图形工具,比如IDEA、Navicat、MySQL Workbench,连接时需要填写主机名、端口、用户名和密码。引用[1]中的IDEA例子,说明这些信息是必须的,确保用户正确输。 总结步骤: 1. 启动MySQL服务。 2. 使用命令行或工具连接。 3. 处理可能的错误,如认证方式或权限问题。 需要注意不同操作系统下的命令差异,比如Windows的net start mysql,Mac/Linux的sudo systemctl start mysql等。此外,用户可能没有设置root密码,或者安装后需要初始化,这些情况需要提及。 可能的问题:用户忘记密码怎么办?这时候需要提供重置步骤,但可能超出当前问题范围,可以放在相关问题里。 最后,生成相关问题,帮助用户扩展了解,比如修改密码、处理连接错误、远程连接等。</think>### 如何连接到本地MySQL数据库 #### 一、确认MySQL服务已启动 1. **Windows系统** - 按 `Win + R` 输 `services.msc`,找到 `MySQL` 服务并右键选择"启动"[^1] - 或使用命令提示符: ```bash net start mysql ``` 2. **Mac/Linux系统** ```bash # Mac(通过Homebrew安装) brew services start mysql # Linux(Systemd) sudo systemctl start mysql ``` --- #### 二、通过命令行MySQL 1. **默认方式(需输密码)** 使用以下命令并按提示输密码: ```bash mysql -u root -p ``` - `-u` 指定用户名(默认 `root`) - `-p` 表示需要密码验证 2. **无密码录(若未设置密码)** ```bash mysql -u root ``` 3. **指定端口和主机(非默认配置时)** 若安装时修改了端口(例如改为 `3307`): ```bash mysql -u root -p -h 127.0.0.1 -P 3307 ``` --- #### 三、通过图形化工具连接(以IDEA为例) 1. 打开IDEA的数据库工具,选择MySQL 2. 输连接信息: - **Host**: `localhost` - **Port**: `3306`(默认值,若未修改) - **User**: `root` - **Password**: 安装时设置的密码[^1] 3. 点击"Test Connection"验证 --- #### 四、常见问题解决 1. **认证协议错误** 若提示 `ER_NOT_SUPPORTED_AUTH_MODE`,需在命令行执行: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; FLUSH PRIVILEGES; ``` 随后重新连接[^4]。 2. **忘记root密码** - 停止MySQL服务 - 启动时跳过权限检查: ```bash mysqld_safe --skip-grant-tables ``` - 重新设置密码后重启服务[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值