环境

- cabloy 4.0
- mariadb 10.5
- arch linux

关于数据库安装

数据库安装后,如果启动失败,并报:

mysql.service 单元已失效

查看日志,提示 没找到 授权表。

这时应该执行 sudo mysql_install_db --user=mysql --datadir=/var/lib/mysql (如果没有datadir参数,则会在当前的./data 目录建立初始数据库)

关于默认无sys数据库问题

cabloy 的 src/backend/config.local.cfg 里面默认连接到 sys 数据库 会报找不到数据库错误。 建议修改为sys为 mysql, 或者手动进入数据库创建一个sys数据库。

该问题已于新版cabloy中修正,无需关注了。

设置密码

此时启动的数据库,只能使用当前账户,和root账户免密码本地登陆。 此时需要设置一个密码,让cabloy 可以登陆。

  • 1.方法一

登陆mysql客户端,执行修改。

  • 2.方法二

执行 mysql_secure_install 命令,按提示设置密码。

关于 timestamp default null 问题

2021-01-17_09-56

这是由于 mariadb 默认不支持timestamp字段为null,需要打开。

但根据 mariadb官方文档,这个配置不能由程序动态调整,只能在配置文件中调整。

webwxgetmsgimg

所以,正确的解决办法是: 修改 mariadb的配置文件。不同系统,这个文件位置会有所不同,可能的路径有

  • /etc/my.cnf
  • /etc/mysql/my.cnf
  • /etc/my.cnf.d/server.cnf

我的是最后一个,在 [mysqld] 下面增加如下一句:

 [mysqld]
explicit_defaults_for_timestamp=ON

重启数据库和cabloy, 问题成功解决!