最近在配置MySQL远程链接的时候发现个人MySQL数据库采用的是 MariaDB 引擎,与普通的数据库配置有点不一样
通过查找资料终于完成了,特此记录方便之后查询
MariaDB 与普通的MySQL数据库的一个不一样在于它的配置文件不止一个,它将不一样的数据放入到不一样的配置文件中,以前的/etc/mysql/my.cnf内容以下:
从文件中的注释上来看,它主要有这么几个配置文件mysql
这也就是为何咱们在my.cnf作相关设置有的时候不起做用(可能在其余配置文件中有相同的项,MySQL最终采用的是另一个文件中的设置)。
根据官方的说法, MariaDB为了提升安全性,默认只监听127.0.0.1中的3306端口而且禁止了远程的TCP连接,咱们能够经过下面两步来开启MySQL的远程服务sql
grep -rn "skip-networking" *
,结果以下:
十分幸运的是这两项都在同一文件中(我本身的是没有skip-networking项)
咱们打开文件/etc/mysql/mariadb.conf.d/50-server.cnf,注释掉bind-address项,以下:
只有这些仍然不够,咱们只是开启了MySQL监听远程链接的选项,接下来须要给对应的MySQL帐户分配权限,容许使用该帐户远程链接到MySQL
输入shell
select User, host from mysql.user;
查看用户帐号信息:
root帐户中的host项是localhost表示该帐号只能进行本地登陆,咱们须要修改权限,输入命令:数据库
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
修改权限。%表示针对全部IP,password表示将用这个密码登陆root用户,若是想只让某个IP段的主机链接,能够修改成安全
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
注意:此时远程链接的密码可能与你在本地登陆时的密码不一样了,主要看你在IDENTIFIED BY后面给了什么密码
具体的请参考GRANT命令
最后别忘了服务器
FLUSH PRIVILEGES;
保存更改。再看看用户信息:
这个时候发现相比以前多了一项,它的host项是%,这个时候说明配置成功了,咱们能够用该帐号进行远程访问了
输入测试
service mysql restart ```重启远程服务器,测试一下:  若是这些都作完了,仍是不能链接,能够看一下端口是否是被防火墙拦截了 参考地址:[官方文档](https://mariadb.com/kb/zh-cn/configuring-mariadb-for-remote-client-access/)