经过一下午的不懈努力,终于在阿里云上安装了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 …"错误
-
选择MysqL数据库进行操作 :MariaDB [(none)]> use MysqL;
-
查看user,password,host这三个字段的权限分配情况: MariaDB [MysqL]> select user,password,host from user;
通过以上输出可以看出数据库默认只允许用户root在本地服务器(localhost)上登录,不允许其他主机远程连接。 -
允许用户root使用密码(123456)在任何主机上连接该数据库,并赋予该用户所有权限。
MariaDB [MysqL]> grant all privileges on . to root@"%" identified by “123456”;
MariaDB [MysqL]> flush privileges;
-
再执行 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] 举报,一经查实,本站将立刻删除。