Mysql的远程连接设置

Posted 培鹏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql的远程连接设置相关的知识,希望对你有一定的参考价值。

1、设置允许远程连接
首先打开 mysqld.cnf 配置文件。

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind - address 这一行
默认情况下, bind - address 的值为 127.0.0.1 ,所以只能监听本地连接。我们需要将这个值改为远程连接 ip 可访问,可使用通配符 ip 地址 *, ::, 0.0.0.0 ,当然也可以是单独的固定 ip,这样就仅允许指定 ip 连接,更加安全。
在某些 MySQL 版本的配置文件中,没有 bind - address 这一行,这种情况下,在合适的位置加上就可以了。
然后重启 MySQL 服务,使刚刚编辑的 mysqld.cnf 文件生效:

sudo systemctl restart mysql

2、设置连接数
方法一:进入MySQL用命令行修改,但是MySQL重启后就失效了,需要重新设置。(不推荐)
  命令如下:
  1、show variables like ‘max_connections’;(查看当前最大连接数)
  2、set global max_connections=1000;(设置最大连接数为1000,可以再次执行上面的命令查看设置是否成功)
  方法二:修改MySQL配置文件,永久生效(推荐)
  1、进入MySQL安装目录,打开my.ini或my.cnf文件;
  2、查看max_connections=100的配置参数,修改为max_connections=1000;如果没有这个参数,直接添加max_connections=1000即可;
  3、保存配置文件并退出,重启MySQL服务即可。
1、查看数据库当前连接信息,可以看到连接数据库的进程id,ip,用户名,连接的数据库,连接状态,连接时长等
  命令:SHOW FULL processlist

Mysql设置远程连接

开启MySQL远程访问权限 允许远程连接

1、登陆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 "password";
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host         | user | password                                  |
+--------------+------+-------------------------------------------+
| localhost    | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| %            | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)

 

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

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

use mysql;

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

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

 

以上是关于Mysql的远程连接设置的主要内容,如果未能解决你的问题,请参考以下文章

MySql设置远程连接

Mysql设置远程连接

MySQL设置远程连接服务器

MySQL设置远程连接

mysql远程连接的设置

设置mysql服务器远程连接