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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)