mysql 远程连接方法

mysql 远程连接方法,第1张

mysql开启远程连接:

以 root用户登入mysql

GRANT all privileges ON wang.* TO 'wang'@'%' identified by 'wang'

flush privileges

请点击输入图片描述

修改配置文件

vi /etc/mysql/my.cnf

把bind-address           = 127.0.0.1  这行注掉

重启数据库

service mysql restart

请点击输入图片描述

本地测试连接3306端口

telnet 192.168.1.77 3306   若已连通

确定已安装mysql客户端which mysql

/usr/bin/mysql

然后mysql -uwang -h192.168.1.77 -p  看能否登录

请点击输入图片描述

外网如何利用网络辅助nat123实现访问内网mysql数据库?

网络环境:动态公网IP。

明确mysql数据库内网访问地址端口,确保mysql数据库服务正常,在内网可以正常访问连接。内网使用nat123动态域名解析。内网服务器安装nat123客户端,并使用它。登陆。进入主面板/域名解析列表/添加域名。选择动态域名解析记录,使用二级域名,或自己的域名。鼠标放在输入框有向导提示。

请点击输入图片描述

路由器端口映射,路由映射mysql数据库访问端口。

因为公网IP是在路由器上的,外网访问时,需要经过路由,需要在路由器上做端口映射,将内网mysql数据库访问端口打通。路由器端口映射位置:转发规则/虚拟服务器/添加允许外网访问端口和协议。我的mysql数据库端口是默认的3306,我内网对应mysql数据库主机的内网IP地址是192.168.1.22。

请点击输入图片描述

外网访问时,使用动态解析域名。

在外网访问mysql数据库时,使用动态解析域名进行连接访问。域名是不变的,可以上网即可访问,再也不担心动态公网IP变化的问题。

请点击输入图片描述

一、连接远程数据库:

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>

mysql>update user

set host = '%' where user = 'root'

mysql>select host,

user from user

二、授权法

例如:

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

mysql>GRANT ALL

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

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

mysql>GRANT ALL

PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY

'mypassword' WITH GRANT OPTION

mysql>FLUSH

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的配置文件,有的是my.ini,有的是my.cnf【linux】.

1:设置mysql的配置文件

/etc/mysql/my.cnf

找到 bind-address =127.0.0.1 将其注释掉;//作用是使得不再只允许本地访问;

重启mysql:/etc/init.d/mysql restart

2:登录mysql数据库:mysql -u root -p

mysql>use mysql

查询host值:

mysql>select user,host from user

如果没有"%"这个host值,就执行下面这两句:

mysql>update user set host='%' where user='root'

mysql>flush privileges

或者也可以执行:

mysql>grand all privileges on *.* to root@'%' identifies by ' xxxx'

其中 第一个*表示数据库名;第二个*表示该数据库的表名;如果像上面那样 *.*的话表示所有到数据库下到所有表都允许访问;

‘%':表示允许访问到mysql的ip地址;当然你也可以配置为具体到ip名称;%表示所有ip均可以访问;

后面到‘xxxx'为root 用户的password;

举例:

任意主机以用户root和密码mypwd连接到mysql服务器

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION

mysql>flush privileges

IP为192.168.1.102的主机以用户myuser和密码mypwd连接到mysql服务器

mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.102' IDENTIFIED BY 'mypwd' WITH GRANT OPTION

mysql>flush privileges


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

原文地址: http://outofmemory.cn/sjk/6704751.html

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

发表评论

登录后才能评论

评论列表(0条)

保存