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的远程连接设置的主要内容,如果未能解决你的问题,请参考以下文章