linux經常修改的檔案2 2001永久更改ip編輯/etc/sysconfig/network-scripts/ifcfg-eth0檔案,修改ip,然後執行ifdown eth0; ifup eth02002 允許|禁止root通過SSH登陸修改sshd_config:PermitRootLogin no|yes 2003改變sshd的連接埠在/etc/ssh/sshd_config中加入一行:Port 2222,/etc/init.d/sshd restart重啟守護進程 2004 防止任何人使用su命令成為root1.vi /etc/pam.d/suauth sufficient /lib/security/pam_rootok.so debugauth required /lib/security/pam_wheel.so group=wheel2.在/etc/pam.d/su設定檔中定義了wheel組2005 如何讓ssh只允許指定的使用者登入方法1:在/etc/pam.d/sshd檔案中加入auth required pam_listfile.so item=user sense=allow file=/etc/sshusers onerr=fail然後在/etc下建立sshusers檔案,編輯這個檔案,加入你允許使用ssh服務的使用者名稱,重新起動sshd服務即可。方法2:pam規則也可以寫成deny的auth required pam_listfile.so item=user sense=deny file=/etc/sshusers onerr=succeed方法3:在sshd_config中設定AllowUsers,格式如AllowUsers a b c重啟sshd服務,則只有a/b/c3個使用者可以登陸2006 壓縮傳輸檔案或目錄傳輸到遠程:tar czf - www | ssh server "tar zxf -"壓縮到遠程:tar czf - www | ssh server "cat > www.tar.gz"解壓到遠程:ssh server "tar zxf -" < www.tar.gz解壓到本地:ssh server "cat www.tar.gz" | tar zxf -2007 rsync同步壓縮傳輸檔案或目錄rsync -aze ssh --delete sample_dir/ remote_host:remote_dir/sample_dir/目錄最後的/不能少 2008 無需輸入密碼使用ssh密鑰登入ssh-keygen -b 1024 -t rsassh server "mkdir .ssh; chmod 0700 .ssh"scp ~/.ssh/id_rsa.pub server:~/.ssh/authorized_keys這樣就不在提示密碼,直接可以登入server了對檔案複製、同步等操作都比較方便在ssh_config裡加入這兩句就更方便了ForwardAgent yesStrictHostKeyChecking no3001 mysql的資料庫存放在什麼地方1. 如果使用rpm包安裝,應該在/var/lib/mysql目錄下,以資料庫名為目錄名2. 如果源碼安裝在/usr/local/mysql中,應該在/usr/local/mysql/var中,以資料庫名為目錄名3002 從mysql中匯出和匯入資料匯出資料庫mysqldump 資料庫名 > 檔案名稱匯入資料庫mysqladmin create 資料庫名mysql 資料庫名 < 檔案名稱3003 忘了mysql的root口令怎麼辦# service mysql stop# mysqld_safe --skip-grant-tables &# mysqladmin -u user password 'newpassword''# mysqladmin flush-privileges3004修改mysql的root口令大致有2種方法:1、mysql>mysql -uroot -pxxx mysqlmysql>update user set password=password('new_password') where user='user';mysql>flush privileges;2、格式:mysqladmin -u使用者名稱 -p舊密碼 password 新密碼#mysqladmin -uroot -password ab12註:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了3005 如何使用rpm方式安裝mysql首先下載合適的rpm包,例如下載了檔案 MySQL-5.0.19-0.i386.rpm用一下方法安裝:#rpm -ivhU MySQL-5.0.19-0.i386.rpm通常情況下,安裝完這個rpm包後,只具備有mysqld服務功能,其它相關的client程式和開發包還需要另外安裝#rpm -ivhU MySQL-devel-5.0.19-0.i386.rpm#rpm -ivhU MySQL-client-5.0.19-0.i386.rpm3006 如何安裝已經編譯好了的mysql二進位包首先下載合適的二進位包,例如下載了檔案 mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz#groupadd mysql#useradd -g mysql mysql#cd /usr/local#tar zxf mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz#ln -s mysql-standard-4.1.13-pc-linux-gnu-i686 mysql#cd mysql#scripts/mysql_install_db --user=mysql#chgrp -R mysql *#bin/mysqld_safe --user=mysql &有什麼個人化的配置,可以通過建立 /etc/my.cnf 或者 /usr/local/mysql/data/my.cnf,增加相關的參數來實現5007 如何自己編譯mysql以redhat linux 9.0為例:下載檔案 mysql-4.1.13.tar.gz#tar zxf mysql-4.1.13.tar.gz#cd mysql-4.1.13#./configure --prefix=/usr/local/mysql --enable-assembler \--with-mysqld-ldflags=-all-static --localstatedir=/usr/local/mysql/data \--with-unix-socket-path=/tmp/mysql.sock --enable-assembler \--with-charset=complex --with-low-memory --with-mit-threads#make#make install#groupadd mysql#useradd -g mysql mysql#chgrp -R mysql /usr/local/mysql/#/usr/local/mysql/bin/mysqld_safe --user=mysql &有什麼個人化的配置,可以通過建立 /etc/my.cnf 或者 /usr/local/mysql/data/my.cnf,增加相關的參數來實現5009 如何登入mysql使用mysql提供的用戶端工具登入#PATH_TO_MYSQL/bin/mysql -uuser -ppassword dateabase5010 mysqld起來了,卻無法登入,提示"/var/lib/mysql/mysql.sock"不存在(yejr)這種情況大多數是因為你的mysql是使用rpm方式安裝的,它會自動尋找 /var/lib/mysql/mysql.sock 這個檔案,通過unix socket登入mysql。常見解決辦法如下:1、建立/修改檔案 /etc/my.cnf,至少增加/修改一行[mysql][client]socket = /tmp/mysql.sock#在這裡寫上你的mysql.sock的正確位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下2、指定IP地址,使用tcp方式串連mysql,而不使用本地sock方式#mysql -h127.0.0.1 -uuser -ppassword3、為 mysql.sock 加個串連,比如說實際的mysql.sock在 /tmp/ 下,則# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可5011 如何新增一個mysql使用者格式:grant select on 資料庫.* to 使用者名稱@登入主機 identified by "密碼"例1、增加一個使用者test1密碼為abc,讓他可以在任何主機上登入,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用以root使用者連入MYSQL,然後鍵入以下命令:mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";但例1增加的使用者是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一台電腦上登入你的mysql資料庫並對你的資料可以為所欲為了,解決辦法見例2。例2、增加一個使用者test2密碼為abc,讓他只可以在localhost上登入,並可以對資料庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MYSQL資料庫所在的那台主機),這樣使用者即使用知道test2的密碼,他也無法從internet上直接存取資料庫,只能通過MYSQL主機上的web頁來訪問了。mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";如果你不想test2有密碼,可以再打一個命令將密碼消掉。mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "";另外,也可以通過直接往user表中插入新紀錄的方式來實現5012 如何查看mysql有什麼資料庫mysql>show databases;5013 如何查看資料庫下有什麼表mysql>show tables;5014 匯出資料的幾種常用方法1、使用mysqldump#mysqldump -uuser -ppassword -B database --tables table1 --tables table2 > dump_data_20051206.sql詳細的參數2、backup to文法mysql>BACKUP TABLE tbl_name[,tbl_name...] TO '/path/to/backup/directory';詳細請查看mysql手冊3、mysqlhotcopy#mysqlhotcopy db_name [/path/to/new_directory]或#mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory或#mysqlhotcopy db_name./regex/詳細請查看mysql手冊4、select into outfile詳細請查看mysql手冊5、用戶端命令列#mysql -uuser -ppassword -e "sql statements" database > result.txt以上各種方法中,以mysqldump最常用5015 如何在命令列上執行sql語句(yejr)#mysql -uuser -ppassword -e "sql statements" database5016 匯入備份出來檔案的常見方法1、由mysqldump出來的檔案#mysql -uuser -ppassword [database] < dump.sql2、檔案類型同上,使用source文法mysql>source /path_to_file/dump.sql;3、按照一定格式儲存的文字檔或csv等檔案#mysqlimport [options] database file1 [file2....]詳細請查看mysql手冊4、檔案類型同上,也可以使用load data文法匯入詳細請查看mysql手冊5017 讓mysql以大記憶體方式啟動(陳緒)將/usr/share/mysql下的某個mysql-*.cnf(如1G記憶體時為mysql-huge.cnf)拷貝為/etc/mysql.cnf檔案,並重啟mysql