mysql 我可以指示mariadb-install-db和mariadb忽略配置中的“用户”设置吗?

nfzehxib  于 5个月前  发布在  Mysql
关注(0)|答案(1)|浏览(41)

如果我想建立一个mariadb数据库,并以本地用户的身份启动mariadb:
我可以很容易地覆盖诸如--datadir=$HOME/mariadb/data--error_log=$HOME/mariadb/log/mysql_error.log之类的参数,
但是我没有找到一种直接的方法让mariadb-install-dbmysqld忽略在我的系统配置文件中设置的user = mysql设置。
我在ubuntu系统上运行mariadb10.5,标准系统配置文件位于/etc/mysql/
请注意,这并不是一个真正的阻塞点,因为我收到了 warnings,安装程序和mysqld守护程序都成功地应用了它们的操作。但它会产生可怕的警告:

$ mariadb-install-db --user=legec --datadir=$HOME/mariadb/data
chown: cannot access '/usr/lib/mysql/plugin/auth_pam_tool_dir/auth_pam_tool': Permission denied
chown: changing ownership of '/usr/lib/mysql/plugin/auth_pam_tool_dir': Operation not permitted
2023-12-14 17:51:57 0 [Warning] Ignoring user change to 'legec' because the user was set to 'mysql' earlier on the command line
2023-12-14 17:51:57 0 [Warning] Ignoring user change to 'legec' because the user was set to 'mysql' earlier on the command line
...

Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/

$ echo $?
0

字符串
在我的系统上,user = mysql设置在文件/etc/mysql/mariadb.conf.d/50-server.cnf中提供,
如果我删除该行并从SQL中删除--user=legec选项,则警告将消失。

问题

有没有一种方法可以让mysqldmariadb-install-db以本地用户身份运行,并完全忽略任何user设置?
或者覆盖一个选项来声明“我想以当前用户身份运行,忽略任何user设置”?

yvgpqqbh

yvgpqqbh1#

简单的方法是使用--no-defaults

mariadb-install-db --no-defaults  --datadir=$HOME/mariadb/data

字符串
如果没有--user设置,它将使用当前用户作为安装用户,而不会尝试chown auth_pam_tool helper。
--no-defaults和所有--default*命令行选项一样,必须在命令行中首先出现。
要保留现有设置,请执行以下操作:

my_print_defaults --mysqld | grep -Ev -- '--(user|datadir)' |
  xargs mariadb-install-db --no-defaults --datadir=$HOME/mariadb/data

相关问题