在linux服务器上配置mysql并开放3306端口的操作步骤

目录
  • 安装mysql
  • 修改密码
  • 远程编辑数据库
  • 开放端口
  • 开放数据库权限
  • 后记

在做大作业,数据库零基础,折腾了一天才搞成功,特此记录一下踩过的坑。希望能帮到其他同学吧……
有不对欢迎指出,谢谢啦!

安装mysql

首先

sudo apt update
sudo apt install mysql-server -y

嗯,安装完了。
然后输入

sudo systemctl status mysql.service

如果看到:

尤其是这个绿绿的active,就表示已经启动了。
如果没有active的话,就手动输入命令:

sudo systemctl start mysql.service

修改密码

进入mysql

mysql -u root -p

其中-u后面是用户名,-p后面理论上是直接输入密码,但貌似mysql会建议你不要这么干。如果出现让你输密码的提示的话,直接回车即可,初始密码为空。

看到这样的界面就进入mysql的操作了。如果要退出,输入quit并回车即可。
然后在mysql中输入:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '123456';

即可修改密码。123456是你准备改的密码(它可能会阻止你改成这么弱的密码,那就换个强点的密码吧)

远程编辑数据库

我的服务器没有图形化界面,所以为了方便起见,我用了mysql workbench来远程操作数据库。

官网下载并安装,一路next就行没什么难的。

打开mysql workbench,点击加号。

然后填好信息,记得第二栏选Standard TCP/IP over SSH。

先点底下的Test Connection,如果弹出了OK的界面的话,再点最右侧的OK按钮
再点最右侧的OK按钮,最右侧的OK按钮,最右侧的OK按钮。重要的事说三遍。Test Connection只是检查是否能连上数据库的,点OK才能保存设置。
然后主界面的“Mysql Connection”应该就多了一个格子,双击即可进入远程数据库的编辑界面。

开放端口

本地mybatis没过ssh,连不上数据库,因此我们需要开放端口。
数据库的默认端口号是3306,不用改。
终端依次输入以下指令即可开放端口:

sudo apt-get install iptables
sudo iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
sudo iptables-save

然后可以安装一个netcat测试一下是否成功:

sudo apt-get install netcat
nc -zv 127.0.0.1 3306

以下是成功和失败的输出结果:

好,重点来了,你的本地机器想连服务器的数据库,当然是不能用127.0.0.1的,然而如果你nc -zv输入服务器ip地址,会发现Connection refused。
输入

netstat -an|grep 3306

红色的那一行,如果显示的是:::3306,表示可以对外开放。如果显示的是127.0.0.1:3306,表示只对本地开放。如果你是后者,那么跟着我继续应该就能成功解决了,否则……呃……再排排错找找教程?

首先我们需要编辑一个文件:

cd /etc/mysql/mysql.conf.d/
vim mysqld.cnf

打开后长这样,如果你红框里的内容没有注释掉,将它注释掉。另外,如果你发现你的数据库端口不是3306,把prot=3306那句的注释去掉。

:wq保存并退出后,终端输入

service mysql restart

重启mysql,然后

netstat -an|grep 3306
nc -zv 服务器ip地址 3306

检查一下,都和上文说的结果一样,就表明3306端口开放成功。

开放数据库权限

接下来要对外开放数据库权限。
首先还是

mysql -u root -p

进mysql
然后输入:

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

如果报错说没选择数据库的话,可以用:

show databases;

命令查看一下有哪些数据库,一般来说

use mysql;

(不是你自己建的要开放的数据库)
然后再输入上面的指令就可以了。
最后

flush privileges;

刷新,再quit退出。
最后终端输入:

sudo service mysql restart

重启一下数据库。
现在你的远程连接大概没问题了。
另外我的另一踩坑是mysql-connector-java的版本号问题,要和你的服务器mysql版本对应不然可能连不上。你登入mysql的时候会出一大段文字,里面就有版本号。不知道有没有人会犯和我一样的错……

后记

对着防火墙折腾了个把小时才发现连不上是mysql配置文件的问题,端口只开放给本地了,枯了。

到此这篇关于在linux服务器上配置mysql并开放3306端口的文章就介绍到这了,更多相关linux开放3306端口内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • linux下mysql开启远程访问权限 防火墙开放3306端口

    开启mysql的远程访问权限 默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限. 主流的有两种方法,改表法和授权法. 相对而言,改表法比较容易一点,个人也是比较倾向于使用这种方法,因此,这里只贴出改表法 1.登陆mysql mysql -u root -p 2.修改mysql库的user表,将host项,从localhost改为%.%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将l

  • 在Ubuntu/Linux环境下使用MySQL开放/修改3306端口和开放访问权限

    操作系统:Ubuntu 17.04 64位 MySQL版本:MySQL 5.7 一.查看3306端口是否开放 netstat -an|grep 3306 如果看到下图这样的,说明端口并未打开: 二.修改访问权限 进入目录"etc/mysql/mysql.conf.d/",如下图所示: 在这个目录下,有一个配置文件"mysqld.cnf",如下图所示: 打开这个配置文件: sudo vim mysqld.cnf 文件打开后有一大段注释说明,不用去管它,直接看到下图中的

  • 在linux服务器上配置mysql并开放3306端口的操作步骤

    目录 安装mysql 修改密码 远程编辑数据库 开放端口 开放数据库权限 后记 在做大作业,数据库零基础,折腾了一天才搞成功,特此记录一下踩过的坑.希望能帮到其他同学吧……有不对欢迎指出,谢谢啦! 安装mysql 首先 sudo apt update sudo apt install mysql-server -y 嗯,安装完了.然后输入 sudo systemctl status mysql.service 如果看到: 尤其是这个绿绿的active,就表示已经启动了.如果没有active的话,

  • 解决navicat连接不上linux服务器上的mysql问题

    一开始,心情是沉痛的,截图如下: 折腾一番后,解决方案如下: 首先确保 linux服务上mysql 的3306端口是对外开放的 切换到目录:/etc/sysconfig下,编辑iptables,把这个拷贝进去"-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT",效果如图: 然后重启防火墙 service iptables restart mysql开启root权限(mysql命令下执行) 赋予权限: grant all privileges o

  • 查看linux服务器上mysql配置文件路径的方法

    在类NUIX的系统中,配置文件的位置一般在/etc/my.cnf 或者 /etc/MySQL/my.cnf 我们见过有些人尝试修改配置文件但是不生效,因为他们修改的并不是服务器读取的文件.例如Debian下,/etc/mysql/my.cnf才是MySQL读取的配置文件,而不是/etc/my.cnf. 如果不知道当前使用的配置文件路径,可以尝试下面的操作: 对于服务器上只有一个MySQL实例的典型安装,这个命令很有用 以上就是小编为大家带来的查看linux服务器上mysql配置文件路径的方法全部

  • linux服务器下配置多tomcat实现实例

    linux服务器下配置多tomcat 车辆交易用的系统模块,正在做.老板要看看,以便车城那边的人提出意见.于是在服务器上再次增加一个tomcat. 以前是配置过的,配置过程其实很简单,这次太大意了,找了半天问题. 首先是拷贝一个tomcat,放到一个新的位置,这个tomcat就是我要用的新的tomcat. 然后去配置一下日志的输出位置,在bin目录下的catalia.sh或者startup.sh.网上怎么样配置的都有,呵呵. 然后修改server.xml,配置好虚拟目录和端口信息.在此,conn

  • 在linux服务器上安装Jenkins

    Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器上安装Jenkins. 一.获得一台linux服务器 要在linux下安装git,首先你得先有一台linux服务器,作为小白,手头的机器肯定都是windows的,搞个虚拟机安装对我这种小白简直是折磨人:这里使用最简单的方式获得一台linux服务器,就是从阿里云上租一台.镜像选择CentOS7.3 64位. 二.安装jdk Jenkins的运行需要依赖jdk,所以在安装Jenkins之前我

  • Tomcat在Linux服务器上的BIO、NIO、APR模式设置方法

    一.BIO.NIO.AIO 先了解四个概念: 同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写). 异步 : 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS(银行卡和密码),OS需要支持异步IO操作API). 阻塞 : ATM排队取款,你只能等待(使用阻塞IO时,Java调用会一直阻塞到读写完成才返回). 非阻塞 : 柜台取款,取个号,然后坐在椅子上做其它事,等号广播会通知你办理,没到

  • linux服务器上使用nginx访问本地静态资源的方法

    1.查看80端口是否被占用,一般80端口多被apache服务占用. netstat -anp|grep 80 2.修改apache服务的端口号 vim /etc/apache2/ports.conf 3.将端口号修改为8080 4.修改nginx服务配置 vim /etc/nginx/conf.d/nginx.conf 5.重启nginx服务 service nginx restart 6.页面尝试访问本地资源 7.访问成功! 总结 以上所述是小编给大家介绍的linux服务器上使用nginx访问

  • .Net Core WebApi部署在Linux服务器上的方法

    鸽了好久,终于有个时间继续写了,继上一篇之后,又写(水)了一篇,有什么不足之处请大家指出,多谢各位了. 下面有两个需要用到的软件,putty和pscp,我已经上传到博客园了,下载请点击这里. 一.准备服务器 首先和之前一样,先去腾讯云整了个云服务器,选择CentOS的镜像. 然后跟之前一样完成购买,得到公网的IP地址. 接着我们复制下来公网的IP地址,我这里使用了putty进行远程登录. 输入root用户名和你之前设置的密码进行登录. 然后,我们就可以安装.Net Core的运行环境了. 二.安

  • 详解vscode实现远程linux服务器上Python开发

    最近需要训练一个生成对抗网络模型,然后开发接口,不得不在一台有显卡的远程linux服务器上进行,所以,趁着这个机会研究了下怎么使用vscode来进行远程开发. (1)在windows系统命令行下运行命令:ssh-keygen, 一路回车,将会在C:\Users\用户名.ssh目录下生成两个文件:id_rsa和id_rsa.pub. 前者是私钥,后者是公钥.如下所示: (2)将公钥文件的内容拷贝到远程linux服务器需要免密登录的用户家目录内的.ssh目录内,重命名为authorized_keys

随机推荐