linux下編譯安裝MariaDB 10.4.7,解決錯誤:cannot access ‘/auth_pam_tool_dir’: No such file or directory


編譯安裝MariaDB 10.4.7,前面的步驟我就不復述了,一切正常沒什么問題。

當執行到:scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql,這時系統提示以下錯誤:

chown: cannot access ‘/auth_pam_tool_dir’: No such file or directory
Cannot change ownership of the '/auth_pam_tool_dir' directory
 to the 'mysql' user. Check that you have the necessary permissions and try again.

又是百度又是google的,半天也沒解決問題,最后研究了代碼,才有了下面的解決方案:

1、可以切換到源碼目錄,例如:/data/mariadb-10.4.7

cd /data/mariadb-10.4.7

2、修改 mysql_install_db 文件:

vim /data/mariadb-10.4.7/scripts/mysql_install_db

在 323 行附近,找到代碼:

# Configure paths to support files
if test -n "$srcdir"
  then
......

部分,在下面增加為變量 builddir 賦值,結果如下:

  builddir='/data/mariadb-10.4.7' #******* 賦值 *******
  basedir="$builddir"
  bindir="$basedir/client"
  resolveip="$basedir/extra/resolveip"

3、繼續向下,在 363 行附近,找到代碼:

  plugindir=`find_in_dirs --dir auth_pam.so $basedir/lib*/plugin $basedir/lib*/mysql/plugin`
  pamtooldir=$plugindir #***** 就是這行 ******
# relative from where the script was run for a relocatable install
elif test -n "$dirname0" -a -x "$rel_mysqld" -a ! "$rel_mysqld" -ef "./bin/mysqld"

我們在 pamtooldir=$plugindir 一行的下面,增加新行,覆蓋原先的值,結果為:

  plugindir=`find_in_dirs --dir auth_pam.so $basedir/lib*/plugin $basedir/lib*/mysql/plugin`
  pamtooldir=$plugindir
  pamtooldir='./plugin/auth_pam' #******* 新增行 *******
# relative from where the script was run for a relocatable install
elif test -n "$dirname0" -a -x "$rel_mysqld" -a ! "$rel_mysqld" -ef "./bin/mysqld"

保存,退出。

4、確定當前是在源碼目錄下,即:/data/mariadb-10.4.7/ ,直接執行命,就OK了。

./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql #參數 --basedir 和 --datadir ,自行設定,照抄我的不一定好使~

破飯,收攤。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM