secure连不上远程地址_[笔记]Mariadb安装并配置远程访问

1e12b0eb8161d5d5f5bd2b0859c5cdf6.png

引言

熟悉的小伙伴都知道我自用有一台NAS,并为此折腾了不少内容:

西蒙宫:折腾,用J3455搭建家庭nas

西蒙宫:让家庭NAS走向世界,兼谈Zerotier

西蒙宫:折腾——组装NAS编译安装ffmpeg

在NAS上部署了Nextcloud与Seafile文件服务,以及Jellyfin影音服务等内容,其中不少服务都依赖mysql数据库,然而这台nas总是命途多舛,最近又一次意外断电,导致mysql服务又挂了。

原因挺容易理解,mysql对数据的操作非常精密,一旦断电,内存中的数据来不及写入硬盘就容易发生错误。

于是,我陷入了沉思...

忽然脑中电光一闪,能不能在闲置VPS上部署一个数据库,让家庭NAS的所有服务都使用远程数据库呢?因为VPS不会断电,所以上面的数据库比较安全。

开源Mariadb是oracle的mysql数据库的有力替代品,而且mariadb对mysql的各个api兼容非常好,所以考虑使用Mariadb咯。

数据库的部署

Mariadb的安装在ubuntu 18.04上可以参考这里。

简要步骤如下:

首先更新库信息

sudo apt update

官方库里就有mariadb,直接安装

sudo apt install mariadb-server

数据库服务会自动开始,可以通过以下命令查看:

sudo systemctl status mariadb

d678048dccfbf9945f8322ea7e3c5fed.png

可以使用下面的命令查看mariadb的版本:

mysql -V

a90ec8c85319a7d90beb067a2fe577ac.png

接下来有个重要步骤关系到服务器的安全

sudo mysql_secure_installation

命令执行后需要回复一些问题,并设置数据库root密码,各位按需回答yes或no就可以了,这里略过。

安装完成后,可以尝试连接数据库

mysql -u root -p

98d7f1df01a382479d5b0beea3f9bbe1.png

至此,mariadb的安装过程结束。

配置远程访问

一般的mysql的配置文件是在/etc/mysql/my.cnf,mariadb也可找到这个文件,仔细阅读该文件的注释内容,可以知道mariadb的配置项集中于另一文件,其路径如下,使用vi打开:

vi /etc/mysql/mariadb.conf.d/50-server.cnf

将绑定ip地址从127.0.0.1改为0.0.0.0

同时更改绑定端口号从3306改为你想要的一个数值,例如33606,注意不要使用被防火墙保护的端口。

8d810c8328933343643e14f9d6450495.png

更改完毕后,重启数据库,应用配置文件

service mysql restart

创建数据库和用户,配置权限

接下来就很正常的配置新用户、数据库和配置权限。

1.登录Mysql

[root@xufeng Desktop]# mysql -u root -p
Enter password: 

2.添加新的用户

允许本地 IP访问localhost的Mysql数据库

MariaDB [(none)]> create user 'editest'@'localhost' identified by 'editest123456';
Query OK, 0 rows affected (0.06 sec)

允许外网IP访问数据库editest,本命令包含上面的命令,是所有的IP都可以访问该数据库

MariaDB [(none)]> create user 'editest'@'%' identified by 'editest123456';
Query OK, 0 rows affected (0.00 sec)

用户创建完成后,刷新授权

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

3.创建一个新的数据库,并使用show databases命令查看数据库是否创建OK

MariaDB [(none)]> create database editestdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.01 sec)MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| confluence         |
| editestdb          |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

4.将改用户editest赋权给数据库editestdb,并刷新授权

MariaDB [(none)]> grant all privileges on `editestdb`.* to 'editest'@'localhost' identified by 'editest123456' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)MariaDB [(none)]> grant all privileges on `editestdb`.* to 'editest'@'%' identified by 'editest123456' with grant option;
Query OK, 0 rows affected, 1 warning (0.01 sec)MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

5.退出 root 重新登录,使用editest登录检查本地登录是否正常,输入密码后,正常登录,并使用show databases命令查看数据库赋权是否正常。

[root@xufeng Desktop]# mysql -u editest -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 7
Server version: 5.7.22 MySQL Community Server (GPL)Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| editestdb          |
+--------------------+
2 rows in set (0.00 sec)

6.验证远程IP地址登录是否正常,使用MySQL Workbench配置数据库并进行验证OK

8442f967bd239371c51b033006da3b19.png

至此结束。

欢迎交流讨论~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从Wireshark看TCP连接的建立与关闭

TCP是一种面向连接、可靠的协议。TCP连接的建立与断开,都是需要经过通信双方的协商。用一句话概括就是:三次握手say hello(建立连接);四次握手say goodbye(断开连接)。要了解TCP连接的建立与断开…

linux管道通信机制有哪两种,linux的管道通信机制

弹性云服务器 ECS弹性云服务器(Elastic Cloud Server)是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率三年低至5折,多种配置可选了解详情什么是弹性…

python批量ping脚本_Python多线程批量Ping主机IP的脚本

Python 编写多线程 Ping 主机IP的脚本1. 先编写一个 Ping 主机IP的脚本ping_ip.pyimport subprocessimport time# 记录开始执行的时间start_time time.time()# 定义用来 ping 的254 个 ipip_list [10.3.1.str(i) for i in range(1,255)]for ip in ip_list:res subprocess.ca…

用Visual C#来清空回收站(2)

四.程序的源代码(recycled.cs)、编译方法及运行后的界面:  (1).程序的源代码:recycled.cs: using System.IO ; using System.Windows.Forms ; //导入程序中用到的名称空间 class Recycle { pu…

Linux6.8 ssh开启,CentOS 6.8升级 ssh到最新版SSH-8.2p1

查看当前版本ssh -VOpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013有漏洞需要升级编译所需工具包yum install gcc pam-devel zlib-devel安装telnet服务 //防止远程ssh升级失败yum -y install telnet-server* telnetvim /etc/xinetd.d/telnet将disable字段的yes改为no以启用te…

jq苹果手机全屏下点击无效果_苹果系统自带外挂?无需越狱也可录制动作脚本...

网络游戏开始流行起来之后,随之而来的是外挂的兴起,各式各样的外挂中有两种最为致命:物理外挂和系统自带外挂。随着国内电竞行业和电竞直播的兴起,“物理外挂”出现在我们周围的频率也越来越高,比如扩大视角的显示器、…

利用cors,实现js跨域访问Tomcat下资源

第一步:页面js代码: function createCORSRequest(method, url){var xhr new XMLHttpRequest();if ("withCredentials" in xhr){xhr.open(method, url, true);} else if (typeof XDomainRequest ! "undefined"){xhr new XDomainReq…

c语言不同类型变量用什么表示什么作用,C语言数据类型及变量整理

数据类型获取int的字节数大小方法printf("int bytes:%d",sizeof(int));列表整理Int 与 long int的区别早期的C平台是16位int系统,int用二字节表示,范围是-32768~32767;long是long int的简写,用4字节表示,范围…

python求第n个质数_找到第n个质数:麻木

我试图用埃拉霍斯特内斯的筛子找到第n个质数。是的,我看到了类似的帖子,但是我对这段代码有一个问题。一旦找到第n个素数,我就停止算法。我写的是:def nth_prime(n):limit 10**2pn 1 #keeps track of how many prime numbers we…

python中浮点数能用乘法吗_简单讲解Python中的数字类型及基本的数学计算

Python有四种类型的数字:1.整型 a = 2 print a 2.长整型 b = 123456789 print b 3.浮点数 c = 3.2E2 print c 4.复数 复数为实数的推广,它使任一多项式都有根。复数当中有个“虚数单位”j,它是-1的一个平方根。任一复数都可表达为x+yj,其中x及y皆为实数,分别称为复数之“实…

c语言设计通讯录管理程序,C语言程序的设计学生通讯录管理系统方案.docx

include ustdio.hH include "stdlib.h” include "string.h" include "conio.h” include Mstdlib.hu ^define null 0 struct record{char namc[20];char phone[20J;char adress[40J;char postcodeflO];char c_mail[30];}sludcnt[500];struct LinkList{str…

*在通配符及正则表达式中的差别

*在通配符和正则表达式中有其不一样的地方,在通配符中*可以匹配任意的0个或多个字符,而在正则表达式中他是重复之前的一个或者多个字符,不能独立使用的。比如通配符可以用*来匹配任意字符,而正则表达式不行,他只匹配任…

python主成分分析实验报告_python进行主成分分析

数据:序号x1x2x3x414025202101.553031203135042504.518051203.59506101.512507401194082704136092803.51160101703960111803.514401213023050132201.51720141601.53560152202.514301614022020172202141018401100192011260201202200数据标准化:x1x2x3x40-…

c语言可以编制出功能复杂的程序,2018级《C语言程序设计》复习题及答案(5页)-原创力文档...

2014 C2014 C级《 语言程序设计》复习题及答案级《 语言程序设计》复习题及答案一、单项选择题一、单项选择题1 C (B )1、以下不是 C 语言的特点的是 (B )、以下不是 语言的特点的是A CA C、 语言简洁、紧凑、 语言简洁、紧凑BB、 能够编制出功能复杂的程序、 能够编制出功能复…

通知:即日起本博客暂停更新,请移步至yanxin8.com获取最新文章

通知:即日起本博客暂停更新,请移步至yanxin8.com与博主交流及获取最新文章 转载于:https://www.cnblogs.com/iplus/p/4467089.html

python修饰器原理_Python修饰器的函数式编程

Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西。虽然好像,他们要干的事都很相似——都是想要对一个已有的模块做一些“修饰工作”&a…

电影俱乐部c语言程序,C语言课程设计___电影俱乐部程序设计

《C语言课程设计___电影俱乐部程序设计》由会员分享,可在线阅读,更多相关《C语言课程设计___电影俱乐部程序设计(22页珍藏版)》请在人人文库网上搜索。1、学 院: 专 业: 姓 名: 学 号:指导老师: 前 言 C语言…

[JavaScript] 函数同名问题

存在同名函数时,最后的函数会覆盖掉以前的同名函数。 1 var x 1,2 y z 0;3 function add(n) {4 return n n 1;5 }6 y add(x);7 function add(n) {8 return n n 3;9 } 10 z add(x); 11 console.log(x);//x值未变1 12 console.log(y…

湖北汽车工业学院c语言程序设计 汽车零部件采购管理程序,湖北汽车工业学院c语言课程设计实验报告(采购信息管理系统).docx...

湖北汽车工业学院c语言课程设计实验报告(采购信息管理系统)C语言课程设计  商品销售信息管理系统  #include  #include  #include  #include  structproduct//定义商品数据结构  {  intnum;//商品编号  charproductname[20];//商品名称  floatprice;//商品…

通信系统概论_现代通信系统概论 第一章 概述(1)

2020年,又开始上一门新课!!!喜欢挑战!让同学们开阔知识是本课程的主要目的!本课程讲解导航、遥控遥测等军用尖端技术和数字电话、广播电视、综合信息网、多媒体宽带网等现代民用技术。通信在过去分为模拟通…