教您如何安全的应用MySQL(5) mysql>drop database test;修改为一个不容易猜的ID:mysql>flush privileges;mysql>quit;4.删除历史命令记录 这些历史文件包括~/.bash_history、~/.mysql_history等。如果打开它们,你会大吃一惊,怎么居然有一些明文的密码在这里?!#cat /dev/null > ~/.bash_history#cat /dev/null > ~/.mysql_historyPHP和MySQL通信 默认情况下,PHP会通过/tmp/mysql.sock来和MySQL通信,但这里的一个大问题是MySQL生成的根本不是它,而是/chroot/mysql/tmp/mysql.sock。解决的办法就是做一个连接:#ln /chroot/mysql/tmp/mysql.sock /tmp/mysql.sock注意:由于hard links不能在文件系统的分区之间做,所以该处的连接必须位于同一分区内部。 自启动配置 自启动配置前先提示一点,用于PHP的数据库需要用一个新建的账号,其上有数据库权限设置,比如FILE、GRANT、ACTER、SHOW DATABASE、RELOAD、SHUTDOWN、PROCESS、SUPER等。 自启动脚本示例:#!/bin/shCHROOT_MYSQL=/chroot/mysql SOCKET=/tmp/mysql.sockMYSQLD=/usr/local/mysql/libexec/mysqldPIDFILE=/usr/local/mysql/var/`hostname`.pidCHROOTUID=/usr/bin/chrootuidecho -n " mysql"case "$1" instart) rm -rf ${SOCKET} nohup ${CHROOTUID} ${CHROOT_MYSQL} mysql ${MYSQLD} >/dev/null 2>&1 & sleep 5 && ln ${CHROOT_MYSQL}/${SOCKET} ${SOCKET} ;;stop) kill `cat ${CHROOT_MYSQL}/${PIDFILE}` rm -rf ${CHROOT_MYSQL}/${SOCKET} ;;*) echo "" echo "Usage: `basename $0` {startstop}" >&2 exit 64 ;;esacexit 0文件位于/etc/rc.d/init.d下,名为mysqld,注意要可执行。#chmod +x /etc/rc.d/init.d/mysqld#ln -s /etc/rc.d/init.d/mysql /etc/rc3.d/S90mysql#ln -s /etc/rc.d/init.d/mysql /etc/rc0.d/K20mysql尽管不能做到100%的安全,但是这些措施可以保护我们的系统更加安全。