前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 配置远程登录

MySQL 配置远程登录

作者头像
smartsi
发布2019-08-07 08:30:37
4.7K0
发布2019-08-07 08:30:37
举报
文章被收录于专栏:SmartSiSmartSi

1. 修改配置

修改/etc/mysql/mysql.conf.d目录下的mysqld.cnf配置文件:

代码语言:javascript
复制
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address           = 127.0.0.1

bind-address前面加个#进行注释,允许任意IP访问。或者指定自己需要远程访问的IP地址。然后重启mysql:

代码语言:javascript
复制
ubuntu@VM-0-7-ubuntu:/etc/mysql/mysql.conf.d$ sudo /etc/init.d/mysql restart
Restarting mysql (via systemctl): mysql.service.

2. 授权用户

我们先看一下当前能登录到我们数据的用户以及允许连接的IP:

代码语言:javascript
复制
mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select User,Host from user;
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)

我们可以看到只有一个默认的root用户,且只允许使用localhost连接。下面我们另外添加一个新的root用户在指定IP下使用指定密码来访问数据库:

代码语言:javascript
复制
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'dev' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)

*.*中第一个*代表数据库名称,第二个*代表表名。在这里我们设置的是所有数据库里的所有表都授权给用户,如果只想授权某数据库或某些数据库下某些表,可以把*替换成你所需的数据库名和表明即可:

代码语言:javascript
复制
mysql> GRANT ALL PRIVILEGES ON test_db.user TO 'root'@'%' IDENTIFIED BY 'dev' WITH GRANT OPTION;

上述表示是把test_db数据下的user数据表授权给用户。

root表示授予root用户可以登录数据库。%表示授权的用户使用哪些IP可以登录,这里表示可以使用用户root在任意IP地址来访问数据库。dev表示分配root用户对应的密码。

当然我们也可以直接用UPDATE更新root用户Host, 但不推荐:

代码语言:javascript
复制
UPDATE user SET Host='%' WHERE User='root' AND Host='localhost';

授权用户之后,执行如下命令刷新一下权限:

代码语言:javascript
复制

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

至此我们已经完成了配置远程访问数据的所有操作,我们在看一下当前能访问我们数据库的用户:

代码语言:javascript
复制
mysql> select User,Host from user;
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | %         |
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 修改配置
  • 2. 授权用户
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档