1)如果不慎忘記了MySQL的root密碼,我們可以在啟動MySQL服務器時加上參數–skip-grant-tables來跳過授權表的驗證 (./safe_mysqld –skip-grant-tables &),這樣我們就可以直接登陸MySQL服務器,然后再修改root用戶的口令,重啟MySQL就可以用新口令登陸了。
2)啟動MySQL服務器時加上–skip-show-database使一般數據庫用戶不能瀏覽其它數據庫。
3)啟動MySQL服務器時加上–chroot=path參數,讓mysqld守護進程運行在chroot環境中。這樣SQL語句LOAD DATA INFILE和Select … INTO OUTFILE就限定在chroot_path下讀寫文件了。這里有一點要注意,MySQL啟動后會建立一個mysql.sock文件,默認是在/tmp目錄下。使用了chroot后,MySQL會在chroot_path/tmp去建立mysql.sock文件,如果沒有chroot_path/tmp目錄或啟動MySQL的用戶沒有這個目錄寫權限就不能建立mysql.sock文件,MySQL會啟動失敗。比如我們加了–chroot=/usr/local/mysql/啟動參數,那么最好建立一個啟動MySQL的用戶能寫的
/usr/local/mysql/tmp目錄,當然我們也可以用–socket=path來指定mysql.sock文件的路徑,但這個path一定要在chroot_path里面。
4)啟動MySQL服務器時加上–log-slow-queries[=file]參數,這樣mysqld會把SQL命令執行時間超過long_query_time的寫入file文件。如果沒有指定=file,mysqld默認會寫到數據目錄下的hostname-slow.log。如果只指定了filename,沒有指定路徑,那么mysqld也會把filename寫到數據目錄下。我們通過這個日志文件可以找出執行時間超長的查詢語句,然后盡可能的優化它減輕MySQL服務器的負擔。
5)如果我們只需本機使用MySQL服務,那么我們還可以加上–skip-networking啟動參數使MySQL不監聽任何TCP/IP連接,增加安全性。(非常推薦)
———————————————————————–
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
那是通訊用的文件,不能刪,這是我以前做的筆記,有點亂,但還是可以參考一下的
mysql默認安裝在/var/lib/mysql目錄下
Couldn’t connect to engine!
Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
a.表示MySQL沒有啟動,需要啟動MySQL(使用命令:/etc/rc.d/init.d/mysql start)。
b.沒有將mysql.sock指定到/var/lib/mysql目錄。需要在/etc/rc.d/init.d/的mysql自動啟動文件中運行safe_mysqld的時候加上以下參數:–socket=/var/lib/mysql/mysql.sock :
在/etc/rc.d/init.d/mysql中找到 $bindir/safe_mysqld –datadir=$datadir –pid-file=$pid_file,並修改成:
$bindir/safe_mysqld –datadir=$datadir –pid-file=$pid_file –socket=/var/lib/mysql/mysql.sock –default-character-set=gbk -O back_log=100 &
有時會出現即使加了�socket啟動參數仍然不能連接MySQL服務器的現象,但是實際上mysql.sock這個文件是存在的(假設在/tmp目錄下);這時一個快捷的方法就是在/var/lib/mysql/目錄下建立一個連接:
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
然后再次啟動mysql服務器:/etc/rc.d/init.d/mysql start
Excerpt:www.aslibra.com/blog/read.php/974.htm