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

时间:2015-02-21 17:23:18

标签: mysql shell sh freebsd

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

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密码代码没有输入密码再次询问密码。有时候会出现这个屏幕并安装停止。我必须在这个屏幕上选择"确定&#34 ;或者"取消"有没有办法自动通过这个屏幕。

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

2 个答案:

答案 0 :(得分:0)

使用干净的freebsd 10+并在控制台中输入以下命令:

pkg install mysql55-server

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

答案 1 :(得分:0)

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

要安装mysql,请使用:

pkg install -y mysql55-server

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

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

另请注意,您不需要mysql_enable /etc/rc.conf才能启动服务一次。启动服务的现代方式是:

service mysql-server onestart

根据manual,如果您使用-p选项,则选项和密码之间不能有空格。因此,您应该使用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服务器并不是很有用。

相关问题