日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql安装被打断_Mysql的安装/性能优化/安全加固

發(fā)布時間:2024/7/23 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql安装被打断_Mysql的安装/性能优化/安全加固 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
aa

安裝:

增加一個登錄用戶和群組#groupaddmysql

#useradd -r -g mysql mysql解壓縮Mysql數(shù)據(jù)包

#tar-zxvf mysql-5.6.13.tar.gz進(jìn)入Mysql解壓縮目錄

#cd mysql-5.6.13配置安裝mysq

l#cmake.

#make &&make install建立配置文件

#cp./support-files/my-medium.cnf/etc/my.cnf修改相應(yīng)文件的權(quán)限

#chown -R root:mysql? /usr/local/mysql

#chown -R? mysql? data初始化數(shù)據(jù)庫

#scripts/mysql_install_db? --user=mysql調(diào)整lib庫路徑

#echo“/usr/local/mysql/lib/mysql”>>/etc/ld.so.conf

#ldconfig刷新文件路徑

Mysql啟動控制

#/usr/local/mysql/bin/mysqld_safe? --user=mysql? &將mysql添加為系統(tǒng)服務(wù)

#cpsupport-files/mysql.server? /etc/init.d/mysqld

#chmod +x /etc/init.d/mysqld

#chkconfig --add mysqld

#chkconfig mysqld on

設(shè)置mysql程序的執(zhí)行路徑

#exportPATH=$PATH:/usr/local/mysql/bin

#echo“PATH=$PATH:/usr/local/mysql/bin”>>/etc/profile

注意:在編譯mysql源碼時碰到如下錯誤

checkingfortermcapfunctionslibrary...configure:error:Nocurses/termcaplibraryfound

解決方法:./configure--with-named-curses-libs=/lib64/libncursesw.so.5

性能優(yōu)化和安全加固:

1、修改root用戶的的口令

缺省情況下MySQL沒有設(shè)置密碼,我們可以用三種方法設(shè)置密碼頭:*用mysqladmin命令來改root用戶口令

#mysqladmin-urootpasswordecan5com//設(shè)置MySQL管理操作用戶root的密碼為P@ssw0rd

*用setpassword修改口令:

mysql>setpasswordforroot@localhost=password('P@ssw0rd');*直接修改user表的root用戶口令mysql>usemysql;

mysql>updateusersetpassword=password('P@ssw0rd')whereuser='root';mysql>flushprivileges;

2、刪除默認(rèn)的數(shù)據(jù)庫和用戶

我們的數(shù)據(jù)庫是在本地,并且也只需要本地的php腳本對mysql進(jìn)行讀取,所以很多用戶不需要.mysql初始化后會自動生成空用戶和test庫,這會對數(shù)據(jù)庫構(gòu)成威脅,我們?nèi)縿h除.我們使用mysql客戶端程序連接到本地的mysql服務(wù)器后出現(xiàn)如下提示:mysql>dropdatabasetest;mysql>usemysql;

mysql>deletefromdb;

mysql>deletefromuserwherenot(host="localhost"anduser="root");mysql>flushprivileges;

3、改變默認(rèn)mysql管理員的名稱//僅為建議

根據(jù)個人習(xí)慣,因為默認(rèn)的mysql的管理員名稱是root,所以如果能夠修改的話,能夠防止一些腳本小子對系統(tǒng)的窮舉.我們可以直接修改數(shù)據(jù)庫,把root用戶改為"admin".mysql>usemysql;

mysql>updateusersetuser="admin"whereuser="root";mysql>flushprivileges;

4、提高本地安全性

提高本地安全性,主要是防止mysql對本地文件的存取,比如黑客通過mysql把/etc/passwd獲取了,會對系統(tǒng)構(gòu)成威脅.mysql對本地文件的存取是通過SQL語句來實(shí)現(xiàn),主要是通過LoadDATALOCALINFILE來實(shí)現(xiàn),我們能夠通過禁用該功能來防止黑客通過SQL注射等獲取系統(tǒng)核心文件.禁用該功能必須在my.cnf的[mysqld]部分加上一個參數(shù):set-variable=local-infile=0

5、禁止遠(yuǎn)程連接mysql

因為我們的mysql只需要本地的php腳本進(jìn)行連接,所以我們無需開socket進(jìn)行監(jiān)聽,那么我們完全可以關(guān)閉監(jiān)聽的功能.有兩個方法實(shí)現(xiàn):

*配置my.cnf文件,在[mysqld]部分添加skip-networking參數(shù).

*mysqld服務(wù)器中參數(shù)中添加--skip-networking啟動參數(shù)來使mysql不監(jiān)聽任何TCP/IP連接,增加安全性.如果要進(jìn)行mysql的管理的話,可以在服務(wù)器本地安裝一個phpMyadmin來進(jìn)行管理.

6、控制數(shù)據(jù)庫訪問權(quán)限

對于使用php腳本來進(jìn)行交互,最好建立一個用戶只針對某個庫有update、select、delete、insert、droptable、createtable等權(quán)限,這樣就很好避免了數(shù)據(jù)庫用戶名和密碼被黑客查看后最小損失.比如下面我們創(chuàng)建一個數(shù)據(jù)庫為db1,同時建立一個用戶test1能夠訪問該數(shù)據(jù)庫.

mysql>createdatabasedb1;

mysql>grantselect,insert,update,delete,create,dropprivilegesondb1.*totest1@localhostidentifiedby'admindb';

以上SQL是創(chuàng)建一個數(shù)據(jù)庫db1,同時增加了一個test1用戶,口令是admindb,但是它只能從本地連接mysql,對db1庫有select,insert,update,delete,create,drop

7、限制一般用戶瀏覽其他用戶數(shù)據(jù)庫

如果有多個數(shù)據(jù)庫,每個數(shù)據(jù)庫有一個用戶,那么必須限制用戶瀏覽其他數(shù)據(jù)庫內(nèi)容,可以在啟動MySQL服務(wù)器時加--skip-show-database啟動參數(shù)就能夠達(dá)到目的.

忘記mysql密碼的解決辦法,如果不慎忘記了MySQL的root密碼,我們可以在啟動MySQL服務(wù)器時加上參數(shù)--skip-grant-tables來跳過授權(quán)表的驗證:./safe_mysqld--skip-grant-tables&

這樣我們就可以直接登陸MySQL服務(wù)器,然后再修改root用戶的口令,重啟MySQL就可以用新口令登陸了.

8、數(shù)據(jù)庫文件的安全

我們默認(rèn)的mysql是安裝在/usr/local/mysql目錄下的,那么對應(yīng)的數(shù)據(jù)庫文件就是在/usr/local/mysql/var目錄下,那么我們要保證該目錄不能讓未經(jīng)授權(quán)的用戶訪問后把數(shù)據(jù)庫打包拷貝走了,所以要限制對該目錄的訪問.我們修改該目錄的所屬用戶和組是mysql,同時改變訪問權(quán)限:

#chown-Rmysql.mysql/usr/local/mysql/var#chmod-Rgo-rwx/usr/local/mysql/var

9、刪除歷史記錄

執(zhí)行以上的命令會被shell記錄在歷史文件里,比如bash會寫入用戶目錄的.bash_history文件,如果這些文件不慎被讀,那么數(shù)據(jù)庫的密碼就會泄漏.用戶登陸數(shù)據(jù)庫后執(zhí)行的SQL命令也會被MySQL記錄在用戶目錄的.mysql_history文件里.

如果數(shù)據(jù)庫用戶用SQL語句修改了數(shù)據(jù)庫密碼,也會因.mysql_history文件而泄漏.所以我們在shell登陸及備份的時候不要在-p后直接加密碼,而是在提示后再輸入數(shù)據(jù)庫密碼.另外這兩個文件我們也應(yīng)該不讓它記錄我們的操作,以防萬一.#rm.bash_history.mysql_history#ln-s/dev/null.bash_history#ln-s/dev/null.mysql_history

對于使用php腳本來進(jìn)行交互,最好建立一個用戶只針對某個庫有update、select、delete、insert、droptable、createtable等權(quán)限,這樣就很好避免了數(shù)據(jù)庫用戶名和密碼被黑客查看后最小損失.比如下面我們創(chuàng)建一個數(shù)據(jù)庫為db1,同時建立一個用戶test1能夠訪問該數(shù)據(jù)庫.

mysql>createdatabasedb1;

mysql>grantselect,insert,update,delete,create,dropprivilegesondb1.*totest1@localhostidentifiedby'admindb';

以上SQL是創(chuàng)建一個數(shù)據(jù)庫db1,同時增加了一個test1用戶,口令是admindb,但是它只能從本地連接mysql,對db1庫有select,insert,update,delete,create,drop操作權(quán)限.7、限制一般用戶瀏覽其他用戶數(shù)據(jù)庫

如果有多個數(shù)據(jù)庫,每個數(shù)據(jù)庫有一個用戶,那么必須限制用戶瀏覽其他數(shù)據(jù)庫內(nèi)容,可以在啟動MySQL服務(wù)器時加--skip-show-database啟動參數(shù)就能夠達(dá)到目的.

忘記mysql密碼的解決辦法,如果不慎忘記了MySQL的root密碼,我們可以在啟動MySQL服務(wù)器時加上參數(shù)--skip-grant-tables來跳過授權(quán)表的驗證:./safe_mysqld--skip-grant-tables&

這樣我們就可以直接登陸MySQL服務(wù)器,然后再修改root用戶的口令,重啟MySQL就可以用新口令登陸了.

8、數(shù)據(jù)庫文件的安全

我們默認(rèn)的mysql是安裝在/usr/local/mysql目錄下的,那么對應(yīng)的數(shù)據(jù)庫文件就是在/usr/local/mysql/var目錄下,那么我們要保證該目錄不能讓未經(jīng)授權(quán)的用戶訪問后把數(shù)據(jù)庫打包拷貝走了,所以要限制對該目錄的訪問.我們修改該目錄的所屬用戶和組是mysql,同時改變訪問權(quán)限:

#chown-Rmysql.mysql/usr/local/mysql/var#chmod-Rgo-rwx/usr/local/mysql/var

9、刪除歷史記錄

執(zhí)行以上的命令會被shell記錄在歷史文件里,比如bash會寫入用戶目錄的.bash_history文件,如果這些文件不慎被讀,那么數(shù)據(jù)庫的密碼就會泄漏.用戶登陸數(shù)據(jù)庫后執(zhí)行的SQL命令也會被MySQL記錄在用戶目錄的.mysql_history文件里.

如果數(shù)據(jù)庫用戶用SQL語句修改了數(shù)據(jù)庫密碼,也會因.mysql_history文件而泄漏.所以我們在shell登陸及備份的時候不要在-p后直接加密碼,而是在提示后再輸入數(shù)據(jù)庫密碼.另外這兩個文件我們也應(yīng)該不讓它記錄我們的操作,以防萬一.#rm.bash_history.mysql_history#ln-s/dev/null.bash_history#ln-s/dev/null.mysql_history

10、其他

另外還可以考慮使用chroot等方式來控制mysql的運(yùn)行目錄,更好的控制權(quán)限,具體可以參考相關(guān)文章.my.cnf的調(diào)試參數(shù).

11、快速修復(fù)MySQL數(shù)據(jù)庫修復(fù)數(shù)據(jù)庫

#mysqlcheck-A-o-r-p修復(fù)指定的數(shù)據(jù)庫

#mysqlcheck-o-rDatabase_NAME -p

12、跟據(jù)內(nèi)存的大小選擇MySQL的負(fù)載

選擇相應(yīng)的文件名復(fù)制到/etc/my.cnf,如果是RPM包安裝:/usr/share/doc/mysql-XXX/目錄下有,如果是源代碼編譯安裝:support-files/目錄下有.

#cp/usr/local/share/mysql-***/my-large.cnf/etc/my.cnfmy-small.cnf#>my-medium.cnf#32M-64Mmy-large.cnf#memory=512Mmy-huge.cnf#1G-2G

my-innodb-heavy-4G.cnf#4GB

mysql批量刪除表,相同前綴的表

mysql中沒有現(xiàn)有的工具可以直接實(shí)現(xiàn),所以原理就是使用現(xiàn)有的功能實(shí)現(xiàn)droptable的語句的自動拼寫,從而達(dá)到簡化目的。下邊舉例說明,如果想刪除”wp_”開頭的表:SelectCONCAT('droptable',table_name,';')FROMinformation_schema.tables

Wheretable_nameLIKE'XXX_%';

總結(jié)

以上是生活随笔為你收集整理的mysql安装被打断_Mysql的安装/性能优化/安全加固的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。