微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过阿里云ECS服务器安装MariadbMySQL具体过程及Navicat远程连接

经过一下午的不懈努力,终于在阿里云上安装了mariadb,并通过Navicat远程连接上了阿里云mariadb数据库。本人也是一步一步通过百度查查查才安装上的,一点点爬坑填坑,因此在这里记录一下,以备以后使用。

1. 安装mariadb

本人使用的服务器是Ubuntu 16.04.3版本,因为我之前安装过MysqL,怕两个数据库有冲突,所以就先把MysqL给卸载了,再安装Mariadb。

安装过程共需两步:
(1)sudo apt update

在这里插入图片描述


(2)sudo apt install mariadb-server

在这里插入图片描述


在这里插入图片描述


执行完上面两步mariadb就安装完了,第一次安装的话用户名是root,没有密码,执行以下语句执行对数据库的初始化,比如设置密码
MysqL_secure_installation

在这里插入图片描述


执行上面这条语句过程中应该还有一堆我也不懂什么选项,反正一路y就行了。

启动数据库:sudo MysqL -uroot -p
关闭数据库:Ctrl+C(键盘
重启数据库:service MysqL restart

启动数据库之后看看能不能进入到数据库中,笔者到这一切都是顺利的。

2. Navicat远程连接数据库

打开Navicat ,新建连接(选mariadb那项)。在常规中,连接名随便起,主机名填localhost,端口填3306,用户名密码分别对应阿里云上的数据库中对应的用户名密码

在这里插入图片描述

在SSH中,使用SSH通道前打钩,主机名或IP地址填阿里云的公网ip,端口填22,用户名密码分别对应阿里云的用户名密码

在这里插入图片描述


点击连接测试,若显示连接成功,就说明远程连接数据库成功了。

3. Navicat远程连接数据库时遇到的问题

笔者在实际测试连接时经常报这个错误:2013 - lost connection to MysqL server at ‘reading initial communication packet’,system error:0 …"错误

主要原因是没有为其他主机远程连接数据库开放权限
解决方法

  1. 在客户端测试与数据库服务器的连通性:ping一下公网ip,确认客户机与服务器之间的网络连通是没有问题的。

  2. 选择MysqL数据库进行操作 :MariaDB [(none)]> use MysqL;

    在这里插入图片描述

  3. 查看user,password,host这三个字段的权限分配情况: MariaDB [MysqL]> select user,password,host from user;

    在这里插入图片描述


    通过以上输出可以看出数据库认只允许用户root在本地服务器(localhost)上登录,不允许其他主机远程连接。

  4. 允许用户root使用密码(123456)在任何主机上连接该数据库,并赋予该用户所有权限。
    MariaDB [MysqL]> grant all privileges on . to root@"%" identified by “123456”;
    MariaDB [MysqL]> flush privileges;

    在这里插入图片描述

  5. 再执行 MariaDB [MysqL]> select user,password,host from user;

    在这里插入图片描述


    新加入的行中的“%”就意味着任何主机都被允许连接数据库,这样数据库的访问权限就设置好了。

重启数据库,再点击测试连接,这回就连接成功了。

网上还有一种解决方法:在/etc/MysqL/my.cnf中的[MysqLd]下添加skip-name-resolve
service MysqL restart重启MysqL.
笔者在实际操作过程中没在my.cnf中找到MysqLd,于是自己加了一个,并在下面输入skip-name-resolve,重启MysqL,在没执行上述5步方法前,并不好使。。。

把项目需要的表导进去吧,又可以愉快的进行项目开发了!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐