SSH 연결과 설치 명령이 포함된 bash 스크립트를 사용하여 Raspberry Pi(Debian)에 mysql 서버를 설치하고 싶습니다. 요점은 스크립트를 사용하여 설치를 자동화해야 한다는 것입니다. SSH 창에 사용자 상호 작용이나 그래픽 프롬프트가 표시되는 것을 원하지 않습니다.
이것이 바로 다음 코드를 사용하여 mysql 서버를 설정하지만 그래픽 피드백을 방지하는 이유입니다.
sudo DEBIAN_PRIORITY=critical apt-get install -y -q mysql-server php5-mysql
지금까지는 잘 작동하고 있으며 프롬프트 등의 메시지 없이 설치가 실행됩니다. 하지만 설치 후 MySQL 서버의 루트 비밀번호를 변경하려고 하면 항상 다음과 같은 응답을 받습니다.
$ 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 서버를 자동으로 비그래픽 방식으로 설치하고 스크립트에 루트 비밀번호를 구성하거나 모든 것이 설정된 후 이를 변경하는 방법을 아는 사람이 있습니까?
답변1
/etc/mysql/debian.cnf
데비안에는 사용자의 비밀번호가 있습니다데비안 시스템 유지 관리.
# 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
MySQL을 설치한 후 [client] 섹션의 사용자 및 비밀번호를 사용하여 루트 비밀번호를 변경할 수 있습니다.
그러면 다음과 같이 할 수 있습니다:
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를 시작하지 않고 연결하려고 한다고 생각합니다.
mysqld
mysql에는 서버( )와 클라이언트( ) 라는 두 가지 주요 구성 요소가 있습니다 mysql
. 너의 첫 번째 전화
apt-get install mysql-server php5-mysql
서버(및 PHP에 대한 mysql 지원)를 설치합니다. 이 호출에서는 mysql 클라이언트를 나열하지 않지만 자동으로 설치됩니다. 그런 다음 서버를 시작해야 합니다. CentOS에서는 다음을 호출하여 이 작업을 수행할 수 있습니다(Ubuntu에 대해서는 확실하지 않지만 아마도 비슷할 것입니다).
# /etc/rc.d/init.d/mysqld start
그런 다음 명령을 사용하여 mysql 서버에 연결할 수 있습니다
$ mysql -u root