현재의 mysql 패스워드를 모를때 변경할수 있는 shell

=============================================================
==========================================
#!/bin/sh
echo "mysql 데몬을 중지 합니다"
pkill mysqld
sleep 4
echo "mysql 데몬을 시작 합니다"
/usr/local/mysql/bin/mysqld_safe --skip-grant &
sleep 4
echo " "
echo "mysql 패스워드를 변경합니다."
echo " "
echo "변경할 mysql root 패스워드를 입력하시오"
read newpassword
echo "use mysql;
update user set password=password('$newpassword') where user='root';
flush privileges;" > insert_query
echo " "
/usr/local/mysql/bin/mysql -u root < insert_query
rm -rf insert_query
echo "mysql 데몬을 중지 합니다"
pkill mysqld
sleep 4
echo "mysql 데몬을 시작 합니다"
/usr/local/mysql/bin/mysqld_safe &
sleep 4
echo " "
echo "mysql 패스워드가 $newpassword로 변경되었습니다"
echo " "
2006/11/10 14:13 2006/11/10 14:13
mysql-5.0.18 버전에서 사용자 추가 스크립트.

버전이 다른 경우는 mysql db의 db 테이블에서 필드 수를 확인하고
아래의 쿼리만 수정하면 된다.

('y'의 갯수가 필드 수와 동일 해야 함.)

"insert into db values('localhost','$db','$db_user','y','y','y','y','y','y','y','y','y','y','y'
,'y','y','y','y','y','y');"

=============================================================
==========================================
#!/bin/sh
echo "추가할 db명을 입력하고 엔터를 치세요."
read db
sleep 1
echo " "
echo "사용할 db user명을 입력하고 엔터를 치세요"
read db_user
sleep 1
echo " "
echo "$db_user계정에서 사용할 패스워드를 입력하고 엔터를 치세
요"
read passwd
sleep 1
echo " "
echo "create database $db;" >> query
echo "use mysql;" >> query
echo "insert into user (host,user,password) values('localhost','$db_user',password('$passwd'));" >> query
echo "insert into db values('localhost','$db','$db_user','y','y','y','y','y','y','y','y','y','y','y'
,'y','y','y','y','y','y');" >> query
echo "flush privileges" >> query
echo "mysql root계정의 패스워드를 입력 하세요."
sleep 1
echo "mysql root계정의 패스워드가 설정되어 있지 않다면, 그냥 엔
터를 치세요"
if /usr/local/mysql/bin/mysql -u root -p < query; then
echo " "
sleep 1
echo "mysql db 및 계정이 추가 완료되었습니다. 아래와 같이
접속을 하세요."
sleep 1
echo " "
echo "/usr/local/mysql/bin/mysql -u $db_user -p $db"
echo " "
else
echo " "
echo "DB 생성에 실패 하였습니다. ERROR 라인을 확인 하시
고 다시 시도하세요."
echo " "
fi
rm -rf query
2006/11/10 14:13 2006/11/10 14:13
네임서버 데몬을 구동 시키면 OK라는 메시지와 함께 정상 구동되는데 nslookup으로 query를 해보면 응답을 못줍니다.
로그 메시지(/var/log/messages)를 보니 아래와 같은 메시지가 있던데 상관관계가 있나여?

Oct 16 02:24:42 TEST named[1589]: the default for the 'auth-nxdomain' option is now 'no'


/etc/named.conf 파일을 보시면

options {
directory "/var/named";
allow-transfer { 1.1.1.1; };
auth-nxdomain yes;
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};

위의 부분에서 auth-nxdomain 부분이 no로 설정되어있어서 그렇습니다.

yes로 변경후 네임서버를 재구동 시키셔서 다시 테스트 해보시기 바랍니다.
(auth-nxdomain yes; 라인이 없는경우 넣어 주시면 됩니다.)

위의 사항은 Bind 9.X 이상의 버전에 해당됩니다.
2006/11/10 14:10 2006/11/10 14:10