如何编码 Auto Mysql 5.5.5 安装 Freebsd shell 脚本

How to code Auto Mysql 5.5.5 Install for Freebsd shell Script

大家好我正在尝试编写自动代码 mysql 5.5.x freebsd 安装脚本我正在使用此代码

portsnap fetch extract
cd /usr/ports/databases/mysql55-client ; make install clean
cd /usr/ports/databases/mysql55-server ; make install clean
echo 'mysql_enable="YES"' >> /etc/rc.conf
/usr/local/etc/rc.d/mysql-server onestart
rehash
mysqladmin -uroot password "password"
/usr/local/etc/rc.d/mysql-server onerestart
mysql -p password
GRANT ALL PRIVILEGES ON *.* TO 'mt2'@'localhost' IDENTIFIED BY 'mt2!@#' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
flush privileges;
quit
/usr/local/etc/rc.d/mysql-server onerestart
reboot

我首先遇到了 2 个问题 mysql -p password code is not typing password it asking password again.Second 有时会出现此屏幕并安装 stopping.What 我必须在此选择屏幕 "ok" 或 "cancel" 并且有没有办法自动通过此屏幕。

http://i.stack.imgur.com/J2AAf.png

使用干净的 freebsd 10+ 并在控制台中键入此命令:

pkg install mysql55-server

添加 rc.conf,创建用户,就是这样。

如果您想进行自动安装,请使用包而不是端口。如您所见,在端口树中,您可能会被要求选择编译时选项。软件包是使用默认选项构建的,因此它们不会那样做。

所以要安装 mysql,请使用:

pkg install -y mysql55-server

(这将同时安装服务器和客户端。)

注意 -y 标志的使用。否则 pkg 将要求您确认是否要安装。

另请注意,您不需要在 /etc/rc.conf 中拥有 mysql_enable 即可启动服务 一次。一次启动服务的现代方式是;

service mysql-server onestart

根据 manual,如果您使用 -p 选项,则选项和密码之间不能有 space。所以你应该使用 mysql -pYOURPASSmysql --password YOURPASS.

此外,要在 shell 脚本中输入命令,您应该使用 here-document。假设您在 shell-脚本中使用 /bin/sh

mysql --password YOURPASS << END
GRANT ALL PRIVILEGES ON *.* TO 'mt2'@'localhost' IDENTIFIED BY 'mt2!@#' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
flush privileges;
quit
END

在使用 onerestart 重新启动之前重新启动 mysql 服务器不是很有用。