环境
- 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 问题
这是由于 mariadb 默认不支持timestamp字段为null,需要打开。
但根据 mariadb官方文档,这个配置不能由程序动态调整,只能在配置文件中调整。
所以,正确的解决办法是: 修改 mariadb的配置文件。不同系统,这个文件位置会有所不同,可能的路径有
- /etc/my.cnf
- /etc/mysql/my.cnf
- /etc/my.cnf.d/server.cnf
我的是最后一个,在 [mysqld] 下面增加如下一句:
[mysqld]
explicit_defaults_for_timestamp=ON
重启数据库和cabloy, 问题成功解决!
评论: