第一次尝试:
sudo apt-get install -y mysql-server
由于MySQL安装的时候,会弹出交互环境,要求输入密码,所以此法不通
第二次尝试:
如果之前出错,一种是下面这种删mysql-server,还有一个就是直接vagrant destroy
1. 关win10的ruby进程
2. 重启 vagrant reload
3. vagrant ssh 登录后 sudo dpkg --configure -a
4. 删mysql-server
sudo apt-get --purge remove mysql-server
sudo apt autoremove
然后使用debconf预设密码
# 安装mysql时,解决输入密码问题
# sudo apt-get --purge remove mysql-server
# sudo apt autoremove
# https://stackoverflow.com/questions/7739645/install-mysql-on-ubuntu-without-a-password-prompt
sudo apt-get -y install debconf-utils
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password admin'
sudo debconf-set-selections <<< 'mysql-server mysql-sudo server/root_password_again password admin'
sudo apt-get -y install mysql-server
为了安全从配置文件读取密码,把上面两行文本输入my_pass文件
# 从配置文件读取密码
# https://blog.csdn.net/fickyou/article/details/50960444
sudo apt-get -y install debconf-utils
sudo debconf-set-selections mysql_pass
sudo apt-get -y install mysql-server
使用debconf预设置mysql密码,此法有时候能通,可是有时候,会出现这种情况。WTF
default: mysql-server-core-5.7
default: dpkg-preconfigure: unable to re-open stdin: No such file or directory
第三次尝试:
禁用交互模式
# https://serverfault.com/questions/500764/dpkg-reconfigure-unable-to-re-open-stdin-no-file-or-directory
# export DEBIAN_FRONTEND=noninteractive # 禁止交互(不可取)
配上这个环境变量之后,安装顺畅多了。。。。
。。。。然而,试着跑项目,程序直接崩溃。。。。
出现这种情况,惊不惊喜,意不意外。。。
禁止了交互,mysql连接就不是用密码了,用的是auth_socket
,我也不知道什么鬼
# [ERROR 1698 (28000): Access denied for user 'root'@'localhost']
解决方法依照下面提供的两种方法(没尝试过,毕竟没法一键部署):
https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost
第四次尝试:
还尝试个毛线,一键装机个毛线,老老实实去vagrant ssh
登录,手动安装mysql吧!心累啊。😄
某一刻:
脚本安装mysql成功了,万岁万岁、万万岁~~~
下面是成功的脚本,只需要两行(mysql_pass文件自己写)
# 装 mysql 从配置文件读取密码
debconf-set-selections /var/www/u-bbs/mysql_pass
apt-get -y install mysql-server
网友评论