在初始化MySQL的过程中经常会碰到各种问题,如
FATAL ERROR: Could not find ./bin/my_print_defaults
ERROR: 1 Can't create/write to file '/root/test/data/mysql/db.MYI' (Errcode: 13 - Permission denied)
出现这些问题的原因无非是两种,
1> 没有传递合适的参数。
譬如:
[root@localhost ~]# /usr/test/mariadb-10.1.16-linux-x86_64/scripts/mysql_install_db --datadir=/usr/test/mariadb-10.1.16-linux-x86_64/ --user=mysql &
没有指定basedir,无法找到my_print_defaults命令
2> 目录对当前用户没有权限
譬如:
[root@localhost test]# /usr/test/Percona-Server-5.6.31-rel77.0-Linux.x86_64.ssl101/scripts/mysql_install_db --basedir=/usr/test/Percona-Server-5.6.31-rel77.0-Linux.x86_64.ssl101/ --user=mysql
没有指定datadir,默认是当前目录下的data目录。如果放到/usr下执行倒是没有问题,/root目录本身的权限是500的。对于其它用户,它是没有权限在/root目录及其子目录创建文件的。
下面对MariaDB的初始化脚本进行较为详细的解析。