欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MYSQL开启远程连接的方法及问题解决

程序员文章站 2022-03-31 10:28:49
默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件。 1.编辑/etc/my.cnf 在[mysqld]节中: 找到...

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

1.编辑/etc/my.cnf

在[mysqld]节中:

找到bind-address = 127.0.0.1这一行

bind-address=0.0.0.0 #全部地址或者指定的ip地址

2.重启服务

service mysqld restart

3.验证

netstat -tln

2、登陆mysql数据库

mysql -u root -p

查看user表

mysql> use mysql;

Database changed

mysql> select host,user,password from user;

+--------------+------+-------------------------------------------+

| host | user | password |

+--------------+------+-------------------------------------------+

| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |

| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |

+--------------+------+-------------------------------------------+

2 rows in set (0.00 sec)

可以看到在user表中已创建的root用户。host字段表示登录的主机,其值可以用IP,也可用主机名,

(1)有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。

2、实现远程连接(授权法)

将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。

update user set host = ’%’ where user = ’root’;

将权限改为ALL PRIVILEGES

mysql> use mysql;

Database changed

mysql> grant all privileges on *.* to root@'%' identified by "123456"; //% 指所有主机IP都可以连接,用root用户以及密码123456进行远程连接数据库;

mysql> grant all privileges on *.* to root@'172.16.1.29' identified by "123456"; //允许主机IP:172.16.1.29都可以连接,用root用户以及密码123456进行远程连接数据库;

flush privileges ; 配置生效

mysql> select host,user,password from user;

+--------------+------+-------------------------------------------+

| host | user | password |

+--------------+------+-------------------------------------------+

| localhost | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |

| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |

| % | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |

+--------------+------+-------------------------------------------+

这样机器就可以以用户名root密码root远程访问该机器上的MySql.

3、实现远程连接(改表法)

use mysql;

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

这样在远端就可以通过root用户访问Mysql