转载文章:https://blog.csdn.net/zwkkkk1/article/details/78444581?locationNum=10&fps=1
最近使用centos7,php nginx都采用编译安装,没用到数据库之前都用得好好的,今日想用的时候居然发现没有mysql服务。而centos 7之后开始改用MariaDB。这是什么鬼?
大致了解了下:https://blog.csdn.net/H12KJGJ/article/details/79616761
反正就是为了防止mysql以后的完全闭源而设计的一种mysql的替代品。
目前一般centos7的新主机都是自带MariaDB
安装命令
yum -y install mariadb mariadb-server
启动MariaDB
systemctl start mariadb
设置开机启动
systemctl enable mariadb
设置密码
mysqladmin -u root password 'root'
这样mariaDB就能在本机运行了,接下来要做的是,能够远程连接。(https://blog.csdn.net/u013474104/article/details/78465697)
1.直接修改表
命令行进入mysql,找到mysql数据库下的user表
mysql >select user,host from user ;
会发现host并没有支持所有(%)
执行命令:
mysql>update user set host='%' where user='root' ;
此时会报错Duplicate entry '%-root' for key 'PRIMARY'
先忽略此错误,再次查看:
mysql >select user,host from user ;
发现已经有%:
2.授权法:
参考文章:https://blog.csdn.net/u013474104/article/details/78465697
最后别忘了:flush privileges。
这样就可以通过navicat等连接数据库了
NOTE:可能遇到的问题
远程工具可连接上,在本地命令行mysql -uroot不用密码就可以连接上,但是不具有root权限:
原因其实很简单,mysql中一个用户名为空的访问本地权限的字段,所有登陆时优先匹配了这一条,就无法登陆了。
删除mysql.user表中 user字段为空的数据即可,然后flush privileges,就能正常登录了。