mysql登录远程服务器,如何登录远程服务器的mysql

发布时间:2022-11-20

本文目录一览:

1、如何远程访问MySQL数据库详解 2、如何让mysql数据库允许被远程连接访问? 3、mysql怎么开启远程登录功能 4、怎么用mysql登录远程服务器 5、如何登录远程mysql

如何远程访问MySQL数据库详解

默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件。

一、修改/etc/mysql/my.conf

找到bind-address = 127.0.0.1这一行 改为bind-address = 0.0.0.0即可

二、为需要远程登录的用户赋予权限

1、新建用户远程连接mysql数据库

grant all on *.* to admin@'%' identified by '123456' with grant option;
flush privileges;

允许任何ip地址(%表示允许任何ip地址)的电脑用admin帐户和密码(123456)来访问这个mysql server。 注意admin账户不一定要存在。

2、支持root用户允许远程连接mysql数据库

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;

三、查看系统用户

如何让mysql数据库允许被远程连接访问?

第一:更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称'%'。或者新加条记录,"host" 项为要访问的ip地址,并授权。重启mysql服务。 第二:在系统防火墙添加例外端口:3306,并允许例外。

错误提示:

ERROR 1130: Host '192.168.1.3' is not allowed to connect to this MySQL server 的解决方法:

1. 改表法

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

mysql -u root -pvmware
use mysql;
update user set host = '%' where user = 'root';
select host, user from user;

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;

3. 在window自带的防火墙里的例外添加3306端口

总结:

mysql -u root -p
use mysql;
select 'host' from user where user='root';
update user set host = '%' where user ='root';
flush privileges;
select 'host' from user where user='root';

第一句是以权限用户root登录 第二句:选择mysql库 第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称) 第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址 第五句:刷新MySQL的系统权限相关表 第六句:再重新查看user表时,有修改。 重启mysql服务即可完成。

mysql怎么开启远程登录功能

第一种方法:比较详细

以下的文章主要介绍的是MySQL 数据库开启远程连接的实际操作流程。

1、进入MySQL服务器

d:\MySQL\bin\MySQL -h localhost -u root

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

update user set host = '%' where user = 'root';
select host, user from user;

2、授予任何主机访问数据的权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION

3、修改生效

FLUSH PRIVILEGES

4、退出MySQL服务器

EXIT

这样就可以在其它任何的主机上以root身份登录啦! 以上的相关内容就是对MySQL 数据库开启远程连接的介绍,望你能有所收获。

第二种方法:

1、在控制台执行

mysql -u root -p mysql

系统提示输入数据库root用户的密码,输入完成后即进入mysql控制台。

2、在mysql控制台执行

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION;

3、命令说明

'root'@'%' 可以这样理解:root是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,你也可以替换成任意其它用户名或指定唯一的IP地址;'MyPassword'是给授权用户指定的登录数据库的密码;另外需要说明一点的是我这里的都是授权所有权限,可以指定部分权限。

4、检查用户表内容

select host, user from user;

怎么用mysql登录远程服务器

MySQL允许远程访问的设置

1. 注释bind-address = 127.0.0.1

cd /etc/mysql
sudo vim my.cnf

将bind-address = 127.0.0.1注释掉(即在行首加#),如下:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1

除了注释掉这句话之外,还可以把后面的IP地址修改成允许连接的IP地址。但是,如果只是开发用的数据库,为了方便起见,还是推荐直接注释掉。 从上面的注释中,可以看出,旧版本的MySQL(从一些资料上显示是5.0及其以前的版本)上使用的是skip-networking。所以,善意提醒一下,使用旧版本的小伙伴请注意一下。

2. 删除匿名用户

登录进数据库:

mysql -uroot -p123456

然后,切换到数据库mysql:

use mysql;

删除匿名用户:

delete from user where user='';

3. 增加允许远程访问的用户或者允许现有用户的远程访问

给root授予在任意主机(%)访问任意数据库的所有权限:

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

如果需要指定访问主机,可以把%替换为主机的IP或者主机名。另外,这种方法会在数据库mysql的表user中,增加一条记录。如果不想增加记录,只是想把某个已存在的用户(例如root)修改成允许远程主机访问,则可以使用如下SQL来完成:

update user set host='%' where user='root' and host='localhost';

4. 退出数据库

exit

在MySQL Shell执行完SQL后,需要退出到Bash执行系统命令,需要执行exit。因为这个太常用也太简单。以下内容就提示“退出”,不再重复列出这个命令。

5. 重启数据库

完成上述所有步骤后,需要重启一下数据库,才能让修改的配置生效:

sudo service mysql restart

到此为止,应该就可以远程访问数据库了。

如何登录远程mysql

首先让我们看一下远端MYSQL的用户表:

select host,user from user;

输出结果:

+---------------+------+
| host          | user |
+---------------+------+
| localhost     | root |
+---------------+------+
5 rows in set (0.00 sec)

由此我们可以看到root用户仅允许本地(localhost)登录,如果要远程登录该mysql服务器的话,就需要新建一个普通权限的用户,新建用户使用如下命令:

grant select,update,insert,delete on mas.* to duan@localhost identified by "123456";

这句命令的意思是:新建用户duan,并且只允许该用户在本地(localhost)登录,密码是123456,并且赋予它对mas库中所有表select,update,insert的权限。我们在这有一个mas库,所以用mas.代表mas库下的所有表。如果要对所有的表,包括mysql库的表都有操作权限则可以替换成“.*”。 现在该duan用户,已经可以登录mysql了,但是也还是只能本地登录。若要duan用户可以远程登录mysql,则还需要如下命令:

update user set host = '%' where user = 'duan';