在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限
作者:女儿控伪全栈老徐 发布时间:2024-01-14 00:47:02
操作系统:Ubuntu 17.04 64位
MySQL版本:MySQL 5.7
一、查看3306端口是否开放
netstat -an|grep 3306
如果看到下图这样的,说明端口并未打开:
二、修改访问权限
进入目录“etc/mysql/mysql.conf.d/”,如下图所示:
在这个目录下,有一个配置文件“mysqld.cnf”,如下图所示:
打开这个配置文件:
sudo vim mysqld.cnf
文件打开后有一大段注释说明,不用去管它,直接看到下图中的部分:
注意上图中的第一行红色的注释:
“By default we only accept connections from localhost”,这几句话的意思是说“在默认情况下我们只允许本地服务访问MySQL”,所以我们需要注释掉下方那条配置,直接在它前面加上一个井号即可:
# bind-address = 127.0.0.1
如下图所是,这条配置也变成了注释:
拓展一下思路,如果我们出于安全考虑,希望限制只有某台应用服务器可以访问MySQL的话,那么其实就需要调整这条配置项就可以了。
三、修改端口号
还是这个配置文件,看到这个配置文件的中间部分的配置项:
我们需要在其中增加一条端口配置:
port = 3306
加完以后整个配置文件看起来是这样的:
修改完文件之后记得保存。
四、开放root账户的访问权限
在第三步中,我们仅仅只是取消了本地访问限制,但是我们还是没有对账户权限进行设置。
重启MySQL服务,并进入MySQL控制台:
service mysql stop
service mysql start
mysql -h 127.0.0.1 -u root -p
切换到系统数据库“mysql”中:
use mysql;
查看一下该数据库中的所有的表:
show tables;
我们要修改上图中的最后一张表“user”,看一下这张表有哪些字段:
desc user;
字段非常多,就不一一罗列了。我们要用到的只是“Host”和“User”两个字段而已:
select host,user from user;
在这张表里,我们看到root用户仅仅只能在本地访问MySQL服务,所以我们要把它修改为“%”,意思是无论在哪里root账户都能够访问数据库服务:
update user set host='%' where user='root';
注意,在真实的生产环境中,并不建议这么修改,因为安全风险太大。我建议根据实际情况将root用户的host项修改为某个指定的ip地址,或仍然保持localhost
最后一项设置,开放root账户所有权限:
grant all privileges on *.* to 'root'@'%' identified by '你的root账户密码';
使各种权限设置立即生效:
flush privileges;
五、再次确认3306端口状态
netstat -an|grep 3306
如果看到下图这样,就可以了:
来源:https://blog.csdn.net/freezingxu/article/details/77088506


猜你喜欢
- 前言:python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病。然而在IO密集型的网络编程里,异步处理比同步处理能提升
- 这篇文章主要介绍了python多进程间通信代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- Python 跟 Python3 完全就是两种语言1、 import caffe FAILED环境为 Ubuntu 16 cuda
- 前言本篇给大家分享一下《通过Python的pdfplumber库将pdf转为图片》。一、pdfplumber库是什么?pdfplumber是
- 在上一篇文章中 ,我说到:强硬的把CSS和HTML塞到PHP里面可以防止代码太枯燥(DRY)并最终导致代码臃肿,因为的CSS和HTML需要比
- 计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。比如,输入用户的年龄,根据年龄打印不同的内容。。。Python程序中,能让计算机
- 本文介绍了一个较为通用的获取 checkbox 值的方法,希望对新手有用。<script type="text/javasc
- 前言因为昨天重新研究了下python的打包方法,今天一番准备把之前写的一个pdf合并软件重新整理一下,打包出来。但在打包的过程中仍然遇到了一
- 前言:在数据库开发过程中我们经常会使用分页,核心技术是使用用limit start, count分页语句进行数据的读取。 一、My
- 问题最近在做项目的时候, dialog组件回调close里面 一般我都会加个resetFields 重置初始值和校验其他地方都没问题, 在t
- IIS设置首先打开IIS就不用说了巴第2步右建默认网站属性第3步主目录选项卡点击第3步的配置按钮弹出窗口的设置,至此IIS设置完毕任意编辑器
- #共有方法 + * instra='人生苦短'strb='我用python'lista=list(range
- 本文实例讲述了php绘制圆形的方法。分享给大家供大家参考。具体实现方法如下:php绘图的基本步骤,有四步(php.ini里的 extensi
- 由于项目的需要在一个页面中选择打印内容。 把自己要打印的东西用一个DIV层抱起来。例如: <!-- 信访事项转办告知单Start --
- keras.utils.to_categorical这个方法,源码中,它是这样写的:Converts a class vector (int
- python如何为创建大量实例节省内存,具体内容如下案例:某网络游戏中,定义了玩家类Player(id, name, status,....
- 这是我在网上看到的一篇不错的mysql数据库优化文章,内容说的很全! 1、使用索引来更快地遍历表 缺省情况下建立的索引是非群集索引,但有时它
- 呵,以前也没考虑过这方面的东西,现在写的代码越来越多,越来越复杂,如果再不把不用的变量及时释放掉,到时肯定会出问题。今天无意中在无忧Q群里看
- 在判断列表是否为空时,你更喜欢哪种方式?决定因素是什么?在 Python 中有很多检查列表是否是空的方式,在讨论解决方案前,先说一下不同方法
- 代码很简单,功能也很简单 =w=webpage2pdf#!/usr/bin/env python3import systry: from P