前言
MariaDB、MySQL……开心就好,反正都差不多,参见:MariaDB和mySQL到底区别在哪,实验说明问题!
讲真,在Deepin下安装MariaDB
并不困难,而且MariaDB和MySQL
的命令也差不多,唯一遇到的问题就是安装完成后root用户的密码无法更改。
这里记录下,这里只安装Server端的MariaDB。
环境
- 虚拟机:Deepin 20 Beta——IP:
192.168.31.44
- MariaDB-Server 10.3.22
- 主机:Windows 10 v1909
下载
命令:
apt-get install mariadb-server -y
初始化
命令:
mysql_secure_installation
接下来会问你一些问题:
- 是否设置
root
密码?
Set root password? [Y/n] y
- 是否禁止匿名
anonymous
用户登陆?
Remove anonymous users? [Y/n] y
- 是否禁止远程
root
登陆?
Disallow root login remotely? [Y/n] n
- 是否移除测试数据库?
Remove test database and access to it? [Y/n] y
- 是否重新加载特权表?
Reload privilege tables now? [Y/n] y
设置密码
完成上面这些后,我发现并没有什么*用,因为此时MariaDB还是可以不需要密码就可以访问,具体为什么,我没查到。
另外,通过shell
修改root
密码失败,登陆进去用了下面几种方法修改,失败:
> use mysql
> update user set password=password('YOUR PASSWORD') where user='root';
> use mysql
> set password for 'root'@'localhost'=password('YOUR PASSWORD');
当然,这些命令执行后刷新了下权限,flush privileges;
,不过都不行。
最后试了下这个可行的,命令:
> use mysql
> update mysql.user set authentication_string = password('YOUR PASSWORD'), plugin = 'mysql_native_password' where user = 'root' and host = 'localhost';
这样,root
就需要使用密码来登陆了,但其他的用户我还没试过是不是都要这样。
开放服务和端口
既然都讲到安装了,顺便说说开放Deepin的端口吧,貌似Deepin没有默认安装有防火墙之类的,但是有规则。
检查端口开放
先检查下端口是否开放,MariaDB和MySQL一样,使用的是3306端口。
检查端口命令:
netstat -an|grep 3306
很遗憾,它返回了这个:
开放3306端口
直接点,命令:
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
找到下图的127.0.0.1
,改成0.0.0.0
(我比较懒,直接用# 注释掉了),同时,把上面已被注释的端口port给恢复,取消注释,最后保存,退出。
之后,重启下mysql
的服务,为什么是MySQL而不是MariaDB,自己搜索去。
停止命令:sudo service mysql stop
启动命令:sudo service mysql start
允许root用户被远程访问登陆
首先进入mysql
库,命令:
> use mysql;
其次允许root远程登陆,命令:
> update user set host = '%' where user = 'root';
授予全部权限,命令:
> grant all privileges on *.* to 'root'@'%' identified by 'YOUR PASSWORD';
刷新权限缓存,命令:
> flush privileges;
验证
上述步骤都完成以后,我们可以验证下。
首先验证端口是否被开放,命令:netstat -an|grep 3306
。如果还是没有像下图一样的:::3306,那么最好多试着重启MySQL服务。
其次在外部主机上(我用的是虚拟机,桥接的网卡,虚拟机DeepinIP地址是192.168.31.44
)使用数据库管理软件Navicat Premium 12
进行远程访问。
就很成功:
当然,没有Navicat Premium
的小伙伴不用担心,只需要你的主机安装有MySQL的客户端也可以进行访问:
Windows 10下:
mysql -h 192.168.31.44 -P 3306 -u root -p
输入密码后,返回:
前一个是输入对的I虚拟机P地址,后一个乱输的IP,验证是不是本地MySQL在干扰,可见,MySQL也可以访问MariaDB Server。
至此,安装结束。