banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Chroot mysql nhưng vẫn không chịu chạy  XML
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 20/09/2011 20:09:58 (+0700) | #1 | 247449
khang0001
Member

[Minus]    0    [Plus]
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
[Profile] [PM]
em đã hoàn tất hết các công đoạn config mysql. bây giờ vào phần cuối là chroot mysql nữa là xong nhưng làm mãi mà nó vẫn ko chịu chạy . em làm theo các bước như sau :
cài đặt mysql
Code:
groupadd mysql
useradd -g mysql mysql -d /dev/null -s /sbin/nologin
./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql --with-unix-socket-path=/tmp/mysql.sock --with-mysqld-ldflags=-all-static --without-innodb 
make
make install
strip /usr/local/mysql/libexec/mysqld
scripts/mysql_install_db
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql
cp support-files/my-medium.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf

tạo chroot
Code:
mkdir -p /chroot/mysql/dev
mkdir -p /chroot/mysql/etc
mkdir -p /chroot/mysql/tmp
mkdir -p /chroot/mysql/var/tmp
mkdir -p /chroot/mysql/usr/local/mysql/libexec
mkdir -p /chroot/mysql/usr/local/mysql/share/mysql/english
chown -R root:sys /chroot/mysql
chmod -R 755 /chroot/mysql
chmod 1777 /chroot/mysql/tmp
cp /usr/local/mysql/libexec/mysqld /chroot/mysql/usr/local/mysql/libexec/
cp /usr/local/mysql/share/mysql/english/errmsg.sys /chroot/mysql/usr/local/mysql/share/mysql/english/
cp /etc/hosts /chroot/mysql/etc/
cp /etc/host.conf /chroot/mysql/etc/
cp /etc/resolv.conf /chroot/mysql/etc/
grep mysql /etc/group > /chroot/mysql/etc/group
grep mysql /etc/passwd > /chroot/mysql/etc/passwd
mknod /chroot/mysql/dev/null c 2 2
chown root:sys /chroot/mysql/dev/null
chmod 666 /chroot/mysql/dev/null

copy database của mysql
Code:
cp -R /usr/local/mysql/var/ /chroot/mysql/usr/local/mysql/var
chown -R mysql:mysql /chroot/mysql/usr/local/mysql/var

chạy chroot
Code:
chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &

kết quả :
Code:
mysql     2015  0.0  2.8  31420  3552 pts/0    Sl   09:32   0:00 /usr/local/mysql/libexec/mysqld
root      2023  0.0  0.5   4000   696 pts/0    R+   09:44   0:00 grep mysql

đến đây rồi thì hết biết làm sao để cho mydsql chạy . hướng dẫn chỉ đến đây thôi. mọi người giúp em cách để cho mysql chạy với chế độ chroot đi ạ.
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 20/09/2011 21:09:17 (+0700) | #2 | 247454
[Avatar]
dexxa
Member

[Minus]    0    [Plus]
Joined: 01/07/2006 20:35:01
Messages: 121
Offline
[Profile] [PM]
Trước tiên phải hiểu rõ chroot là gì và cấu trúc file system thì mới có thể chroot chuẩn được. Tham khảo thêm ở đây

http://www.symantec.com/connect/articles/securing-mysql-step-step

[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 20/09/2011 21:22:29 (+0700) | #3 | 247460
khang0001
Member

[Minus]    0    [Plus]
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
[Profile] [PM]

dexxa wrote:
Trước tiên phải hiểu rõ chroot là gì và cấu trúc file system thì mới có thể chroot chuẩn được. Tham khảo thêm ở đây

http://www.symantec.com/connect/articles/securing-mysql-step-step

 

mình đã làm giống như cái link ở trên, nếu cậu xem thì sẽ thấy, mình chỉ có chỉnh lại 1 số chi tiết thôi vì cái ở trên dùng cho BSD còn mình là centos . cái trên chỉ có chỉ đến lúc khởi động mysql nhưng ko có cho biết kết quả phải như thế nào thì mới đúng, làm sao để đăng nhập vào mysql được. cậu có thể chỉ giúp mình được không
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 21/09/2011 07:34:38 (+0700) | #4 | 247478
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
Thử:

ldd /chroot/mysql/usr/local/mysql/libexec/mysqld

rồi gởi thông tin lên coi?
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 21/09/2011 10:17:56 (+0700) | #5 | 247489
khang0001
Member

[Minus]    0    [Plus]
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
[Profile] [PM]

conmale wrote:
Thử:

ldd /chroot/mysql/usr/local/mysql/libexec/mysqld

rồi gởi thông tin lên coi? 

Code:
[root@dhcppc7 ~]# ldd /chroot/mysql/usr/local/mysql/libexec/mysqld
        not a dynamic executable


em đã thử thay file /etc/init.d/mysql bằng file có nội dung sau

Code:
#!/bin/sh

CHROOT_MYSQL=/chroot/mysql
SOCKET=/tmp/mysql.sock
MYSQLD=/usr/local/mysql/libexec/mysqld
PIDFILE=/var/run/mysqld/`hostname`.pid
CHROOTUID=/usr/local/bin/chrootuid

echo -n " mysql"

case "$1" in
start)
        rm -rf ${CHROOT_PHP}/${SOCKET}
        nohup ${CHROOTUID} ${CHROOT_MYSQL} mysql ${MYSQLD} >/dev/null 2>&1 &
        sleep 5 && ln ${CHROOT_MYSQL}/${SOCKET} ${CHROOT_PHP}/${SOCKET} && ln ${CHROOT_MYSQL}/${SOCKET} ${SOCKET}
        ;;
stop)
        kill `cat ${CHROOT_MYSQL}/${PIDFILE}`
        rm -rf ${CHROOT_MYSQL}/${SOCKET}
        ;;
*)
        echo ""
        echo "Usage: `basename $0` {start|stop}" >&2
        exit 64
        ;;
esac

exit 0

em tạo thêm 1 file mysql.sock ở thư mục chroot/mysql/tmp/
sau đó khởi động mysql thì kết quả là

Code:
/etc/init.d/mysql start
 mysqlln: creating hard link `/tmp/mysql.sock' to `/chroot/mysql//tmp/mysql.sock': File exists

không biết là bị sai ở đâu nữa. nhờ anh chỉ giúp

Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 21/09/2011 10:33:22 (+0700) | #6 | 247492
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
Sao mysqld nằm trong chroot: /chroot/mysql/usr/local/mysql/libexec/mysqld mà script khởi động lại khởi động cái "/usr/local/mysql/libexec/mysqld" là sao?

thử ls -la /chroot/mysql/usr/local/mysql/libexec/mysqld

và: file /chroot/mysql/usr/local/mysql/libexec/mysqld xem thử nó báo cái gì?
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 21/09/2011 10:39:51 (+0700) | #7 | 247494
khang0001
Member

[Minus]    0    [Plus]
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
[Profile] [PM]

conmale wrote:
Sao mysqld nằm trong chroot: /chroot/mysql/usr/local/mysql/libexec/mysqld mà script khởi động lại khởi động cái "/usr/local/mysql/libexec/mysqld" là sao?

thử ls -la /chroot/mysql/usr/local/mysql/libexec/mysqld

và: file /chroot/mysql/usr/local/mysql/libexec/mysqld xem thử nó báo cái gì? 


Code:
ls -la /chroot/mysql/usr/local/mysql/libexec/mysqld
-rwxr-xr-x 1 root root 4019924 Sep 20 09:28 /chroot/mysql/usr/local/mysql/libexec/mysqld


Code:
file /chroot/mysql/usr/local/mysql/libexec/mysqld

/chroot/mysql/usr/local/mysql/libexec/mysqld: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, statically linked, for GNU/Linux 2.6.9, stripped


em nghĩ là khi mình chroot rồi thì cái thư mục gốc bây h nằm ở /chroot/mysql nên mysqld bây h sẽ vẫn nằm ở /usr/local/mysql/libexec/mysqld
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 21/09/2011 10:55:54 (+0700) | #8 | 247495
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
OK, vậy là /chroot/mysql/usr/local/mysql/libexec/mysqld là static binary. Khỏi lo đến linked library.

- Riêng phần init script cho mysql thì em làm sai rồi. Em muốn chạy bản mysql trong /chroot/mysql/usr/local/mysql/ mà sao trong init script lại dùng bản /usr/local/mysql/ ?

- sock được mysql tự động tạo ra chớ em không thể tự tạo ra được nó. Muốn tạo sock ở đâu thì phải chỉnh my.cnf.

Nói chung em bị hổng nhiều thứ quá mà đã vội vã nhảy tới "chroot". Đây là cái kẹt của "step by step". Làm mà không biết tạo ra mình phải làm như vậy. Quá nguy hiểm.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 21/09/2011 11:02:08 (+0700) | #9 | 247497
khang0001
Member

[Minus]    0    [Plus]
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
[Profile] [PM]
vậy h em phải làm thế nào để cho mysql nó chạy trong chroot ạ, anh comanle có thể chỉ giúp em được không ạ. đúng là em vẫn còn hổng nhiều kiến thức quá. anh có thể tư vấn giúp em là bây h nên đọc thêm sách gì để nâng cao thêm kiến thức không ạ. em chỉ mới học basic về LPI thôi. cảm thấy vẫn chưa đủ.
- thực ra em củng đã thử tự build rồi chroot mysql nhưng không chạy nên mới test thử bằng cách là làm giống y như hd xem thế nào, nếu như hd mà chạy được có nghĩa là mình làm sai 1 cái gì đó. sau đó mới rà lại để xem chỗ nào sai rồi học thêm . em nghĩ cách làm đó củng ko có gì sai. cứ đi theo người ta rồi mình để ý , rồi áp dụng lại cho bản thân.
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 21/09/2011 11:23:56 (+0700) | #10 | 247501
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

khang0001 wrote:
vậy h em phải làm thế nào để cho mysql nó chạy trong chroot ạ, anh comanle có thể chỉ giúp em được không ạ. đúng là em vẫn còn hổng nhiều kiến thức quá. anh có thể tư vấn giúp em là bây h nên đọc thêm sách gì để nâng cao thêm kiến thức không ạ. em chỉ mới học basic về LPI thôi. cảm thấy vẫn chưa đủ.
- thực ra em củng đã thử tự build rồi chroot mysql nhưng không chạy nên mới test thử bằng cách là làm giống y như hd xem thế nào, nếu như hd mà chạy được có nghĩa là mình làm sai 1 cái gì đó. sau đó mới rà lại để xem chỗ nào sai rồi học thêm . em nghĩ cách làm đó củng ko có gì sai. cứ đi theo người ta rồi mình để ý , rồi áp dụng lại cho bản thân. 


Nguyên tắc căn bản của "chroot" có nghĩa là áp đặt một dịch vụ nằm trong một khu vực tách rời và riêng biệt. Khi nói đến dịch vụ thì phải nói đến tất cả mọi thứ liên quan đến dịch vụ đó, kể cả binaries, libraries, scripts, sockets, logs ...v....v.... thuộc về dịch vụ đó. Trong trường hợp mysql ở trên, em phải tìm ra hết tất cả những gì liên quan đến mysql và đặt nó trong "chroot". Sau đó, để khởi tạo dịch vụ trong chroot này, script khởi tạo cũng phải "gọi" đúng những thứ nằm trong "chroot".

Nói một cách khác, trước tiên em phải hiểu mysql hoạt động như thế nào, nó cần những gì, nó tạo ra những gì và những thứ nó tạo ra nằm ở đâu. Sau đó mới mang cả một "đống" đó vô trong một cái gọi là "jail" (chroot). Nếu em không hiểu mysql đến mức độ em tự tạo ra cái mysql.sock thì chứng tỏ em cố gắng làm một việc mà em không hề hiểu lý do tại sao.

Em không cần "đọc thêm" một cái gì hết mà chỉ cần đọc và làm cho đủ và trọn vẹn tài liệu do chính mysql cung cấp trước cái đã. Chừng nào kiện toàn kiến thức về mysql rồi hãy nghĩ đến chuyện chroot nó. Phải đi trước khi chạy.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 21/09/2011 11:32:30 (+0700) | #11 | 247502
khang0001
Member

[Minus]    0    [Plus]
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
[Profile] [PM]

conmale wrote:

khang0001 wrote:
vậy h em phải làm thế nào để cho mysql nó chạy trong chroot ạ, anh comanle có thể chỉ giúp em được không ạ. đúng là em vẫn còn hổng nhiều kiến thức quá. anh có thể tư vấn giúp em là bây h nên đọc thêm sách gì để nâng cao thêm kiến thức không ạ. em chỉ mới học basic về LPI thôi. cảm thấy vẫn chưa đủ.
- thực ra em củng đã thử tự build rồi chroot mysql nhưng không chạy nên mới test thử bằng cách là làm giống y như hd xem thế nào, nếu như hd mà chạy được có nghĩa là mình làm sai 1 cái gì đó. sau đó mới rà lại để xem chỗ nào sai rồi học thêm . em nghĩ cách làm đó củng ko có gì sai. cứ đi theo người ta rồi mình để ý , rồi áp dụng lại cho bản thân. 


Nguyên tắc căn bản của "chroot" có nghĩa là áp đặt một dịch vụ nằm trong một khu vực tách rời và riêng biệt. Khi nói đến dịch vụ thì phải nói đến tất cả mọi thứ liên quan đến dịch vụ đó, kể cả binaries, libraries, scripts, sockets, logs ...v....v.... thuộc về dịch vụ đó. Trong trường hợp mysql ở trên, em phải tìm ra hết tất cả những gì liên quan đến mysql và đặt nó trong "chroot". Sau đó, để khởi tạo dịch vụ trong chroot này, script khởi tạo cũng phải "gọi" đúng những thứ nằm trong "chroot".

Nói một cách khác, trước tiên em phải hiểu mysql hoạt động như thế nào, nó cần những gì, nó tạo ra những gì và những thứ nó tạo ra nằm ở đâu. Sau đó mới mang cả một "đống" đó vô trong một cái gọi là "jail" (chroot). Nếu em không hiểu mysql đến mức độ em tự tạo ra cái mysql.sock thì chứng tỏ em cố gắng làm một việc mà em không hề hiểu lý do tại sao.

Em không cần "đọc thêm" một cái gì hết mà chỉ cần đọc và làm cho đủ và trọn vẹn tài liệu do chính mysql cung cấp trước cái đã. Chừng nào kiện toàn kiến thức về mysql rồi hãy nghĩ đến chuyện chroot nó. Phải đi trước khi chạy. 

vâng ạ, em sẽ thử đem hết tất cả các thứ liên quan đến mysql vào chroot rồi chạy thử.
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 21/09/2011 16:01:45 (+0700) | #12 | 247534
khang0001
Member

[Minus]    0    [Plus]
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
[Profile] [PM]
em đã thử copy tất cả các thư viện kèm theo của mysql vào thư mục /chroot/mysql để chạy thử thì kết quả như sau
Code:
[root@dhcppc7 /]# chroot /chroot/mysql

bash-3.2# /usr/local/mysql/bin/mysqld_safe &

[1] 4714
bash-3.2# chown: `mysql': invalid user
Starting mysqld daemon with databases from /usr/local/mysql/var
STOPPING server from pid file /usr/local/mysql/var/dhcppc7.pid
110921 09:57:19  mysqld ended

nó báo lỗi là ko thấy user mysql. em đã kiểm tra kĩ trong file passwd và group thì có user mysql rồi. không hiểu là vì sao ko thấy mysql
em thử bằng lệnh chroot để tạo ra 1 nhà tù để chạy thử mysql, copy các file như /bin/bash, /bin/sh , các command liên quan, thư viên liên quan để chạy thử xem thế nào.
em chắc là đã copy hết tất cả những gì liên quan đến mysql rồi.
anh comanle giúp em với
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 21/09/2011 16:45:36 (+0700) | #13 | 247535
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

khang0001 wrote:
em đã thử copy tất cả các thư viện kèm theo của mysql vào thư mục /chroot/mysql để chạy thử thì kết quả như sau
Code:
[root@dhcppc7 /]# chroot /chroot/mysql

bash-3.2# /usr/local/mysql/bin/mysqld_safe &

[1] 4714
bash-3.2# chown: `mysql': invalid user
Starting mysqld daemon with databases from /usr/local/mysql/var
STOPPING server from pid file /usr/local/mysql/var/dhcppc7.pid
110921 09:57:19  mysqld ended

nó báo lỗi là ko thấy user mysql. em đã kiểm tra kĩ trong file passwd và group thì có user mysql rồi. không hiểu là vì sao ko thấy mysql
em thử bằng lệnh chroot để tạo ra 1 nhà tù để chạy thử mysql, copy các file như /bin/bash, /bin/sh , các command liên quan, thư viên liên quan để chạy thử xem thế nào.
em chắc là đã copy hết tất cả những gì liên quan đến mysql rồi.
anh comanle giúp em với 


mysql nằm trong /chroot/mysql mà sao lại start mysql từ /usr/local/mysql/bin/mysqld_safe là sao?
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 21/09/2011 16:52:50 (+0700) | #14 | 247537
khang0001
Member

[Minus]    0    [Plus]
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
[Profile] [PM]
em làm theo bài nầy
Code:
/hvaonline/posts/list/0/19738.html#119195

ý của em là tạo 1 môi trường nhà tù là thư mục /chroot/mysql . lấy đó là thư mục gốc của nhà tù, copy các file như /bin/bash, /bin/sh, các thư viện có liên quan đến mysql, các command cần thiết để chạy và các thư viện liên quan đến các commnd đó.
khi đó có 1 môi trường nhà tù rồi, thì chạy mysql trong đó. nên /usr/local/mysql/bin/mysqld_safe là lúc đó em đã chuyển thư mục gốc đến /chroot/mysql rồi. dấu bash-3.2# là bằng chứng em đã chuyển thư mục gốc thành công, bây h chỉ còn chạy mysql trong cái nhà tù đó nữa là dc. em làm đúng như nguyên tắc có bảng của chroot. nhưng bị 1 vấn đề là không nhận ra các user. em đã thử copy các file như passwd, group , rồi chạy thử
chown root:root /var
thì kết quả là vẫn là ko nhận ra đc user. em ko biết là mình bi mắt lỗi gì nữa, anh comanle chỉ giúp em
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 22/09/2011 03:11:38 (+0700) | #15 | 247548
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
Hèm... tẩu hoả rồi smilie

Em trình bày lại chính xác từng bước từ đầu đến cuối em đã làm những gì coi?
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 22/09/2011 08:17:50 (+0700) | #16 | 247557
khang0001
Member

[Minus]    0    [Plus]
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
[Profile] [PM]
Đầu tiên em cài đặt Mysql với câu lệnh
Code:
groupadd mysql
useradd -g mysql mysql 
./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql --with-unix-socket-path=/tmp/mysql.sock --with-mysqld-ldflags=-all-static --without-innodb 
make
make install
strip /usr/local/mysql/libexec/mysqld
scripts/mysql_install_db
chown -R root /usr/local/mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql
cp support-files/my-medium.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf

đến đây thì mysql khởi động được, xem như cài đặt mysql hoàn tất
tiếp đến cài đặt chrootuid
Code:
mkdir -p /chroot/mysql/dev
mkdir -p /chroot/mysql/etc
mkdir -p /chroot/mysql/tmp
mkdir -p /chroot/mysql/var/tmp
chown -R root:sys /chroot/mysql
chmod -R 755 /chroot/mysql
chmod 1777 /chroot/mysql/tmp
cp /etc/hosts /chroot/mysql/etc/
cp /etc/host.conf /chroot/mysql/etc/
cp /etc/resolv.conf /chroot/mysql/etc/
grep mysql /etc/group > /chroot/mysql/etc/group
grep mysql /etc/passwd > /chroot/mysql/etc/passwd
mknod /chroot/mysql/dev/null c 2 2
chown root:sys /chroot/mysql/dev/null
chmod 666 /chroot/mysql/dev/null

copy tất cả thư mục của mysql vừa cài đặt sang thư mục vừa chroot
Code:
mkdir -p /chroot/mysql/usr/local/mysql/
cp -R /usr/local/mysql/ /chroot/mysql/usr/local/mysql/
chown -R mysql:mysql /chroot/mysql/usr/local/mysql/

sau đó chạy chrootuid thì vẫn không được
Code:
chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &

như kết quả của post thứ nhất , không thể chạy được
sau đó em mới tìm hiểu thêm thì biết. lệch chrootuid là kết hợp của 2 lệnh chroot và su. nên em suy luận nếu vậy thì làm trước lệnh chroot . nếu thành công thì chrootuid chắc củng sẽ thành công
nên em đánh lệnh
Code:
chroot /chroot/mysql

thì nó báo lỗi thiếu thư viện và /bin/bash
nên em copy tất cả các thư viện và /bin/bash, /bin/sh
Code:
mkdir -p /chroot/mysql/bin
mkdir -p /chroot/mysql/lib
mkdir -p /chroot/mysql/usr/lib/

cp /lib/libdl.so.2 /lib/libtermcap.so.2 /lib/libc.so.6 /lib/ld-linux.so.2 \ 
/lib/librt.so.1 /lib/libssl.so.6 /lib/libcrypto.so.6 /lib/libpthread.so.0 \
/lib/libcrypt.so.1 /lib/libnsl.so.1/lib/libm.so.6 /lib/libgcc_s.so.1 \
/lib/libcom_err.so.2 /lib/libresolv.so.2 \
/lib/libkeyutils.so.1 /lib/libselinux.so.1 /lib/libsepol.so.1 /chroot/mysql/lib/

cp /usr/lib/libkrb5.so.3 /usr/lib/libz.so.1  /usr/lib/libstdc++.so.6 /usr/lib/libgssapi_krb5.so.2 \
/usr/lib/libk5crypto.so.3 /usr/lib/libkrb5support.so.0 /chroot/mysql/usr/lib/

sau đó đánh lệnh
Code:
chroot /chroot/mysql

thì đc bash-3.2#
khởi tạo thành công môi trường chroot rồi. bây h chỉ còn copy tất cả những gì cần thiết để cho mysql chạy là xong
em đánh lệnh
Code:
/usr/local/mysql/bin/mysqld_safe &

thì nó báo
Code:
/usr/local/mysql/bin/mysqld_safe: line 75: sed: command not found
/usr/local/mysql/bin/mysqld_safe: line 74: sed: command not found
/usr/local/mysql/bin/mysqld_safe: line 223: dirname: command not found
/usr/local/mysql/bin/mysqld_safe: line 255: /bin/hostname: No such file or directory
/usr/local/mysql/bin/mysqld_safe: line 262: /bin/hostname: No such file or directory
/usr/local/mysql/bin/mysqld_safe: line 285: /dev/null: No such device or address
/usr/local/mysql/bin/mysqld_safe: line 316: /dev/null: No such device or address
/usr/local/mysql/bin/mysqld_safe: line 333: touch: command not found
/usr/local/mysql/bin/mysqld_safe: line 333: chown: command not found
Starting mysqld daemon with databases from /usr/local/mysql/var
/usr/local/mysql/bin/mysqld_safe: line 394: date: command not found
/usr/local/mysql/bin/mysqld_safe: line 397: rm: command not found
STOPPING server from pid file /mysql/var/.pid
/usr/local/mysql/bin/mysqld_safe: line 442: date: command not found
/usr/local/mysql/bin/mysqld_safe: line 442: tee: command not found
/usr/local/mysql/bin/mysqld_safe: line 443: tee: command not found

có nghĩa là nó thiếu các command cần thiết để chạy mysql
nên em đã copy tất cả các command đó vào thư mục chroot
như là sed, dirname, /bin/hostname, touch,chowns,date,rm,tee
riêng cái dev/null em đã tạo trước đó rồi mà vẫn ko dc nó chấp nhận nên em đã xóa luôn và copy từ thư mục root vào luôn

sau khi làm xong hết thì đánh lệnh
Code:
chroot /chroot/mysql/ 
/usr/local/mysql/bin/mysqld_safe &

thì nó báo
Code:
chown: `mysql': invalid user
Starting mysqld daemon with databases from /usr/local/mysql/var
STOPPING server from pid file /usr/local/mysql/var/dhcppc7.pid
110922 02:24:39  mysqld ended


em củng không hiểu vì sao nó ko thấy user mysql nữa. trong file passwd và group em có duy nhất 1 mình user mysql thôi. em mới test thử bằng cách, copy cả 2 file gốc passwd và group vào thư mục chroot rồi test thử với user root xem thế nào
Code:
chown root:root /var
chown 'root': invalid user

lệnh nầy đánh khi đã vào thư mục chroot
em củng không hiểu mình đã làm sai gì nữa. anh comanle chỉ giúp em
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 22/09/2011 08:40:06 (+0700) | #17 | 247561
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]
Thay vì:

chroot /chroot/mysql/ /usr/local/mysql/bin/mysqld_safe &

Thử:

chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &


coi sao?
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 22/09/2011 08:54:11 (+0700) | #18 | 247564
khang0001
Member

[Minus]    0    [Plus]
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
[Profile] [PM]

conmale wrote:
Thay vì:

chroot /chroot/mysql/ /usr/local/mysql/bin/mysqld_safe &

Thử:

chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &


coi sao? 


Code:
[root@dhcppc7 ~]# chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &
[1] 1986
[root@dhcppc7 ~]# 110921 13:42:48 [Note] /usr/local/mysql/libexec/mysqld: ready for connections.
Version: '5.0.92-log'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution


Code:
ps aux| grep mysql
mysql     1986  0.0  2.8  31420  3556 pts/0    Sl   09:42   0:00 /usr/local/mysql/libexec/mysqld
root      1994  0.0  0.5   4000   672 pts/0    R+   09:43   0:00 grep mysql


test thử

Code:
chrootuid /chroot/mysql mysql /usr/local/mysql/bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.92-log Source distribution

No entry for terminal type "xterm";
using dumb terminal settings.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


như vậy là đã thành công chưa anh conmale. hizhiz.
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 22/09/2011 08:59:39 (+0700) | #19 | 247566
[Avatar]
conmale
Administrator

Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
[Profile] [PM]

khang0001 wrote:

conmale wrote:
Thay vì:

chroot /chroot/mysql/ /usr/local/mysql/bin/mysqld_safe &

Thử:

chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &


coi sao? 


Code:
[root@dhcppc7 ~]# chrootuid /chroot/mysql mysql /usr/local/mysql/libexec/mysqld &
[1] 1986
[root@dhcppc7 ~]# 110921 13:42:48 [Note] /usr/local/mysql/libexec/mysqld: ready for connections.
Version: '5.0.92-log'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution


Code:
ps aux| grep mysql
mysql     1986  0.0  2.8  31420  3556 pts/0    Sl   09:42   0:00 /usr/local/mysql/libexec/mysqld
root      1994  0.0  0.5   4000   672 pts/0    R+   09:43   0:00 grep mysql


test thử

Code:
chrootuid /chroot/mysql mysql /usr/local/mysql/bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.92-log Source distribution

No entry for terminal type "xterm";
using dumb terminal settings.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


như vậy là đã thành công chưa anh conmale. hizhiz. 



Mèn đét quơi.... đã thấy cái mysql> chình ình ra đó mà còn hỏi "thành công chưa" smilie

Bởi vậy, anh nói là kiện toàn kiến thức mysql trước mà không chịu.
What bringing us together is stronger than what pulling us apart.
[Up] [Print Copy]
  [Question]   Chroot mysql nhưng vẫn không chịu chạy 22/09/2011 09:07:25 (+0700) | #20 | 247567
khang0001
Member

[Minus]    0    [Plus]
Joined: 20/05/2011 07:22:25
Messages: 196
Location: Final Fantasy 8
Offline
[Profile] [PM]
Mèn đét quơi.... đã thấy cái mysql> chình ình ra đó mà còn hỏi "thành công chưa" smilie

Bởi vậy, anh nói là kiện toàn kiến thức mysql trước mà không chịu.

thanks anh conmale ạ. hizhzi. em sẽ cố gắng kiện toạn kiến thức mysql
Mộ em hoa cỏ nào xanh, Rêu phong nào bám lòng anh càng buồn, Tử thần sao cướp mất em, Để mình anh lại bơ vơ chốn nầy, Em ra đi để mặc mình anh với đời, Hận mình nghèo không mua nổi tình em
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|