在本地不安装mysql数据库能连接吗?

在本地不安装mysql数据库能连接吗?,第1张

本地不安装mysql 服务器是可以的,但是至少要安装客户端, 也要安装一个  ODBC 的驱动。

下面这种情况, 是 连接本机的 MySQL

前提是 本机安装了  MySQL , 并开启了 MySQL 的服务。

E:\MySQL\MySQL Server 5.1\bin>mysql -u root -p

Enter password: ********

Welcome to the MySQL monitor.  Commands end with or \g.

Your MySQL connection id is 4

Server version: 5.1.50-community MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

This software comes with ABSOLUTELY NO WARRANTY. This is free software,

and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

下面这种情况, 是 本机只有客户端, 没有运行服务程序。

连接的是 另外一台机器上面的  MYSQL 数据库,  本机是没有数据库的。

F:\mysql-4.1.10a-win32\bin>mysql -u test_user -h 192.168.56.101 -p

Enter password: ************

Welcome to the MySQL monitor.  Commands end with or \g.

Your MySQL connection id is 8 to server version: 5.0.96-community-nt

Type 'help' or '\h' for help. Type '\c' to clear the buffer.

mysql>

是root用户的话,IP就是<localhost>或<127.0.0.1>,只是代表使用本机,不是代表本机IP地址, *** 作方法如下:

1、首先,利用Navicat创建一个数据库和表,数据库名为testdb,表为userinfo,并添加一条新记录。

2、用如下的数据库连接字符串访问数据库时,是没有问题的。Driver = MySQL ODBC 5.1 DriverServer = localhostPort=3306DATABASE = testdbuser = rootpassword = 123456。

3、其中,Server是数据库所在主机IP地址,Prot是连接端口;user和password则为连接数据库的用户名和密码,使用Select * from userinfo 可以正确获取到数据。

4、但是当把localhost换成实际的IP地址的时候,就报错了,说明这个数据库testdb是默认没开启访问权限的,默认情况下只允许localhost和127.0.0.1访问。

5、更新root账户的权限。打开mysql命令行窗口,输入grant all privileges on *.* to root@"%" identified by 'abc' with grant option  flush privileges。

6、创建一个新账户,如guest,并将可被访问的主机定义为%,即所有主机都可访问该账户。测试,没有问题。

方法/步骤

1

在未配置MySQL之前,根据MySQL服务端的信息,用navicate客户端进行连接测试,如图一、图二所示

2

在MySQL所在机器上登录root用户,如图三所示

3

切换到mysql库,并查看user表,如图四所示

use mysql

select host,user,password from user

4

修改host列的用户,建议修改localhost用户,如图五所示

执行命令如下:

update user set host = '%' where host = 'localhost'

select host,user,password from user

flush privileges

5

再次用navicate客户端进行连接测试,如图六所示

END

FAQ

1

为什么只改一条呢?

因为%代表了任何ip地址均可以访问此mysql库,所以只有一条%记录即可,多条无意义,如需根据不同的ip、不同用户有不同的权限访问,可设置为多条。

2

为什么只是修改某条user记录,而不是insert一个用户呢?

因为新增的用户,相关权限是没有的,如果新纪录的各项都设置为Y,则权限过大,如果新纪录的各项都设置为N,则权限过小,远程登录之后,无法进行其他 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8657145.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存