MySQL 服务器静默安装

MySQL 服务器静默安装

我想使用 SSH 连接和 bash 脚本在 Raspberry Pi (Debian) 上安装 mysql 服务器,其中包含安装命令。要点是,安装需要使用脚本自动完成。我不想在 SSH 窗口中出现任何用户交互或图形提示。

这就是为什么我使用以下代码来设置 mysql 服务器但阻止任何图形反馈:

sudo DEBIAN_PRIORITY=critical apt-get install -y -q mysql-server php5-mysql

到目前为止,它运行良好,安装运行没有任何提示等。但是当我在安装后尝试更改MySQL服务器的root密码时,我总是得到响应:

$ mysql -u root

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

我期望静默安装使用标准用户“root”和空密码,但我也尝试了很多其他可能的选项。我还尝试了其他命令,例如:

$ mysql -u "root" -p ""
$ mysql --user="root" --password=""

或者

$ mysqladmin -u root password ""

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

但不幸的是没有任何成功。

有谁知道一种方法,可以在脚本中以静默方式和非图形方式安装 mysql 服务器,并在脚本中配置 root 密码,或者在设置完所有内容后更改它?

答案1

在 Debian 中,您有/etc/mysql/debian.cnf用户的密码debian 系统维护

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = xxxxxxxxxxxxxxxx
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = xxxxxxxxxxxxxxxx
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

使用 [client] 部分中的用户和密码,您可以在 MySQL 安装后更改 root 密码。

那么你可以这样做:

PASS=`sudo awk '/password/ { print $3;exit }' /etc/mysql/debian.cnf`
echo "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');" \
| mysql -u debian-sys-maint -p$PASS

答案2

我相信您正在尝试连接到 mysql-server 而不启动它。

在 mysql 中,有两个主要组件,服务器 ( mysqld) 和客户端 ( mysql)。你的第一个电话

apt-get install mysql-server php5-mysql

安装服务器(以及 mysql 对 php 的支持)。您没有在此调用中列出 mysql 客户端,但它将自动安装。然后你需要启动服务器。在 CentOS 中,这可以通过调用来完成(不确定 Ubuntu,但可能类似)

# /etc/rc.d/init.d/mysqld start

然后你就可以用你的命令连接到mysql服务器

$ mysql -u root

相关内容