中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

初始化mysql數(shù)據(jù)庫

無論你是編譯安裝,二進(jìn)制安裝,還是yum,rpm,裝完MySQL都是要初始化才能用.

主要從事網(wǎng)頁設(shè)計、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、成都響應(yīng)式網(wǎng)站建設(shè)公司、程序開發(fā)、微網(wǎng)站、小程序開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的成都網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷經(jīng)驗,集策劃、開發(fā)、設(shè)計、營銷、管理等多方位專業(yè)化運(yùn)作于一體,具備承接不同規(guī)模與類型的建設(shè)項目的能力。

下面來介紹下初始化安裝mysql,切記安裝前要準(zhǔn)備好my.cnf文件~!怎么配置my.cnf,可以看我另一篇文章,有很多人為了照顧初學(xué)者,直接跳過my.cnf的配置說明,我覺得是不合理的,數(shù)據(jù)庫不是能用就好,是需要理解自己定義的好處和意義,真心建議大家先看那篇文章,找到自己想要的.

不過要注意的是,發(fā)行版和版本號的不同,有些參數(shù)會不同或不可用,會導(dǎo)致初始化失敗,這時需要去初始化的數(shù)據(jù)目錄查看mysql.err,看看那個參數(shù)有問題,然后屏蔽了,重新再初始化一次.

-前置步驟(已做就可以不用理會)

#創(chuàng)建數(shù)據(jù)目錄
mkdir -p /data/mysql/data
#建立mysql用戶組,并更改權(quán)限
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
chown -R mysql.mysql /data/mysql/data
mkdir /data/mysql/tmp
chown -R mysql.mysql /data/mysql/tmp/
#拷貝服務(wù)啟動文件,yum和rpm安裝的可以不需要
cp -ar /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
#編輯my.cnf,可以看我另一篇文章來參考具體怎么設(shè)置,也可以用模板文件
cp -ar /usr/local/mysql/support-files/my-default.cnf /usr/local/mysql/my.cnf
vim /usr/local/mysql/my.cnf

-注意:操作前要確保沒有其他mysql發(fā)行版干擾,特別是yum安裝的和rpm安裝,

#查看已安裝的rpm包中又沒有mysql和mariadb的安裝包
rpm -qa |grep -E 'mysql|mariadb'
mariadb-libs-5.5.44-2.el7.centos.x86_64
#刪除查找出來的rpm安裝包
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
rpm -e --nodeps mysql.x86_64

額外說明:--nodeps是不檢查依賴,不要害怕,即使有依賴你自己的安裝包都肯定有,做軟連接就好了

ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.18

要額外注意一個事情,如果存在~/.my.cnf和~/.mylogin.cnf,是默認(rèn)先使用這個cnf配置文件的,并且是~/.my.cnf優(yōu)先,就算你放到程序目錄并用--defaults-file選項指定配置文件,都是會優(yōu)先走這里,不走你指定的。不過,一般情況下是不會出現(xiàn)這種情況,系統(tǒng)也不會默認(rèn)把文件放進(jìn)這里,所以出現(xiàn)這種奇葩情況,基本上只會是人為原因。

-------------------------這條分割線上面的無論是什么版本都要做~!--------------------------

-5.6及之前的版本初始化步驟(包括5.6)

確保mysql進(jìn)程已停

service mysql stop

確保初始化的數(shù)據(jù)目錄沒有數(shù)據(jù),由my.cnf定義的數(shù)據(jù)目錄

rm -rf /data/mysql/data/*

執(zhí)行初始化腳本,添加參數(shù),切記要先編輯好my.cnf

/usr/local/mysql/scripts/mysql_install_db --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/data --user=mysql > /dev/null 2>&1

啟動mysql

service mysql start

初始化密碼

/usr/local/mysql/bin/mysqladmin -u root password '新密碼'

#初始化完成,嘗試登陸

/usr/local/mysql/bin/mysql -uroot  -p'新密碼'

------------------------------我是分割線---------------------------------

-5.7之后用新方式初始化

確保mysql進(jìn)程已停

service mysql stop

確保初始化的數(shù)據(jù)目錄沒有數(shù)據(jù),由my.cnf定義的數(shù)據(jù)目錄

rm -rf /data/mysql/data/*

執(zhí)行初始化命令,指定defaults-file且并必須放到最前面,切記要先編輯好my.cnf

mysqld --defaults-file=/usr/local/mysql/my.cnf --initialize

5.7的初始化采用了新的模式,雖然繁瑣一些,但是也更安全.

程序會自動生成密碼,不用這個密碼你就不能登錄,除非你進(jìn)安全模式破密碼.

或者把參數(shù)--initialize換成--initialize-insecure,初始化后可以免密碼登錄,這里不細(xì)說,各位可以慢慢測試.

查看初始化后的密碼(密碼信息在行的最后)的方法,

密碼記錄在數(shù)據(jù)目錄的mysql.err里面,假設(shè)我的數(shù)據(jù)目錄定義是/data/mysql/data,所以密碼就應(yīng)該是記錄在/data/mysql/data/mysql.err里面,我直接截取出來看了.

sed -n '/password/p' /data/mysql/data/mysql.err
.....A temporary password is generated for root@localhost: GVedtgXDZ1-,

更改一下數(shù)據(jù)目錄的屬主權(quán)限,這種初始化方式并沒有改這個屬主問題,但是不改的話會啟動不了

chown -R mysql:mysql /data/mysql/data/

啟動mysql

service mysql start

密碼還要初始化,雖然初始化數(shù)據(jù)庫的時候已經(jīng)有密碼,可以直接登錄,但是初始化還沒真正完成,不然會報錯,不斷提示你改密碼

mysql -uroot -p'GVedtgXDZ1-,'

由于5.7之后,系統(tǒng)用戶表有變化,直接用password是不行的,所以必須是下面的方法來這樣改,不然改不了

mysql> alter user 'root'@'localhost' identified by '123';
mysql> set password for 'root'@'localhost'=password('123');
mysql> update mysql.user set authentication_string=password('123') where user='root' and Host = 'localhost';
mysql> flush privileges;

這時候才算初始化完成,嘗試你設(shè)定的新密碼登錄吧

mysql -uroot -p'123'

-擴(kuò)展閱讀:mysql 5.7增加了兩個字段password_last_changed、password_lifetime來完善安全策略,可以設(shè)置參數(shù)default_password_lifetime來延長使用期限

ALTER USER 'root'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAYS;
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' PASSWORD EXPIRE DEFAULT;

---------------------------------我也是分割線-----------------------------------

-安全加固.

安全加固mysql數(shù)據(jù)庫(初始化后做最佳)

-5.6,5.7通用加固方式

1.刪除任何無關(guān)的管理員用戶和空密碼的管理員用戶,有需求再開

mysql> delete from mysql.user where user="root" and host!="localhost";
#在5.6的舊環(huán)境下,可能存在空密碼的用戶,這顯然不被允許,5.7則沒有這種用戶,可以不做
mysql> delete from mysql.user where user="root" and password="";
mysql> flush privileges;

2.刪除test庫(5.7沒了),因為這個庫默認(rèn)是所有人都有權(quán)限讀寫,存在漏洞

mysql> drop database test;

3.刪除存放數(shù)據(jù)庫的表信息,因為本來就還沒有數(shù)據(jù)庫信息,萬一被注入就不好了。

mysql> delete from mysql.db;

4.SSL加密設(shè)置,用途就是把數(shù)據(jù)加密,防止被截取后破解,5.6要加ssl指定文件位置配置,5.7自動開,然后執(zhí)行命令就可以了.

#執(zhí)行命令,在數(shù)據(jù)目錄創(chuàng)建key文件,下面這個命令是封裝了整個創(chuàng)建過程,就不用做那么多復(fù)雜的事了
#不過這個命令文件是5.7新加入的,5.6中沒有這個命令文件,但是可以放到在5.6上面用,還算方便.
/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/data/mysql/data/
#然后看看開啟了沒有
mysql>SHOW VARIABLES LIKE 'have_ssl';  
| have_ssl          | YES     |  
#進(jìn)入mysql,授權(quán)ssl專用用戶
mysql> grant all privileges on *.* to 'sslroot'@'%' identified by '123123' require ssl;
#用ssl專用用戶登錄
mysql -usslroot -p'123123' -h227.0.0.1
#查看當(dāng)前狀態(tài),SSL已啟用
mysql> \s
Current user:        sslroot@127.0.0.1
SSL:            Cipher in use is ECDHE-RSA-AES128-GCM-SHA256

不過開啟SSL需要謹(jǐn)慎,因為數(shù)據(jù)進(jìn)行了加密處理,毫無疑問服務(wù)器需要消耗資源來校驗密文,官方說明可能會下降25%的性能,還是比較高的.

對于高并發(fā)的環(huán)境自然是性能下降明顯,除非安全要求非常高,不然不建議開,一般來說只要授權(quán)限制訪問IP是內(nèi)網(wǎng)的就已經(jīng)可以解決安全問題.

新聞標(biāo)題:初始化mysql數(shù)據(jù)庫
URL標(biāo)題:http://www.rwnh.cn/article18/gpojgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化服務(wù)器托管、小程序開發(fā)、軟件開發(fā)、網(wǎng)站導(dǎo)航自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
札达县| 克东县| 昌邑市| 临邑县| 农安县| 晋宁县| 和硕县| 文成县| 嘉峪关市| 蒙自县| 莱芜市| 桓台县| 封开县| 凤台县| 浪卡子县| 石城县| 平顶山市| 芦山县| 大冶市| 河北省| 博兴县| 丽江市| 吴忠市| 西吉县| 泗洪县| 新闻| 凭祥市| 峡江县| 上思县| 文水县| 手机| 宣武区| 枣阳市| 衡阳市| 龙陵县| 勃利县| 浪卡子县| 澄城县| 阜新| 南雄市| 年辖:市辖区|