方法/步驟
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、武城網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、武城網(wǎng)絡(luò)營(yíng)銷、武城企業(yè)策劃、武城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供武城建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com
1
下載好后解壓發(fā)現(xiàn)沒有data文件夾,這可怎么辦,網(wǎng)上查看了很多的發(fā)方法,總是看不懂,新版原來(lái)是改了,需要初始化,下面一步一步道來(lái)。
2
新建一個(gè)data文件夾。
3
打開配置文件my-default.ini看到里面的basedir和datadir是沒有打開的,前面有#,路徑也是以“……”表示。
4
去掉basedir和datadir前面的#
basedir添加的是MySQL的解壓路徑;
datadir添加的是MySQL的data文件夾路徑。
5
接下來(lái)就是配置環(huán)境變量,首先先把bin的地址復(fù)制:打開MySQL解壓文件夾里面的bin文件夾,將鼠標(biāo)點(diǎn)擊到地址欄選中,復(fù)制地址(這樣做的目的是防止打字出錯(cuò),而且方便)。
6
把剛剛復(fù)制的bin路徑添加的Path變量值,具體方法是:打開電腦桌面:計(jì)算機(jī)—右鍵—高級(jí)系統(tǒng)設(shè)置—高級(jí)—環(huán)境變量(N)—修改Path;就是將復(fù)制的地址欄粘貼到最后。(這里注意的是不同的路徑之間用英文的“;”分開)確定,退出。
7
打開dos界面,具體方法是:在開始輸入cmd.exe回車。
8
這一步很重要,初始化MySQL,需要進(jìn)到MySQL解壓目錄下的bin文件:具體方法是:這里以F盤下的路徑為例:
F:回車
F:cd phptools\MySQL\bin(回車)
F:\phptools\MySQL\binmysqld --initialize-insecure --user=mysql(回車,這一步就是初始化)
當(dāng)出現(xiàn)Service successfully installed表示MySQL服務(wù)已經(jīng)安裝了,就差啟動(dòng)了。
9
啟動(dòng)MySQL在之前的F:\phptools\MySQL\bin輸入:net start mysql;
出現(xiàn):MySQL服務(wù)啟動(dòng)成功,表示這一次配置完畢。
10
接下來(lái)就是開啟新版的MySQL之旅了,打開dos界面,輸入mysql -u root -p然后回車,提示輸入密碼,如果沒有密碼就回車。
11
查看版本。至此MySQL5.7.10安裝完畢。
沒有太好的辦法,只提到刪除重建MySQL數(shù)據(jù)文件的方式,實(shí)際就是備份-刪除-恢復(fù)的方法,我試驗(yàn)了一下,基本可行,但還是有一些注意事項(xiàng):
1. 用mysqldump等工具導(dǎo)出數(shù)據(jù)我的數(shù)據(jù)庫(kù)使用latin1字符集
2. 停止 mysqld
3. 刪除ibdata*, ib_logfile* 文件
4. 重新啟動(dòng) mysqld
5. 將導(dǎo)出來(lái)的數(shù)據(jù)導(dǎo)回去,體積才會(huì)減小
壓縮表從名字上來(lái)看,簡(jiǎn)單理解為壓縮后的表,也就是把原始表根據(jù)一定的壓縮算法按照一定的壓縮比率壓縮后生成的表。
1.1 壓縮能力強(qiáng)的產(chǎn)品
表壓縮后從磁盤占用上看要比原始表要小很多。如果你熟悉列式數(shù)據(jù)庫(kù),那對(duì)這個(gè)概念一定不陌生。比如,基于 PostgreSQL 的列式數(shù)據(jù)庫(kù) Greenplum;早期基于 MySQL 的列式數(shù)據(jù)庫(kù) inforbright;或者 Percona 的產(chǎn)品 tokudb 等,都是有壓縮能力非常強(qiáng)的數(shù)據(jù)庫(kù)產(chǎn)品。
1.2 為什么要用壓縮表?
情景一:磁盤大小為 1T,不算其他的空間占用,只能存放 10 張 100G 大小的表。如果這些表以一定的比率壓縮后,比如每張表從 100G 壓縮到 10G,那同樣的磁盤可以存放 100 張表,表的容量是原來(lái)的 10 倍。情景二:默認(rèn) MySQL 頁(yè)大小 16K,而 OS 文件系統(tǒng)一般塊大小為 4K,所以在 MySQL 在刷臟頁(yè)的過(guò)程中,有一定的概率出現(xiàn)頁(yè)沒寫全而導(dǎo)致數(shù)據(jù)壞掉的情形。比如 16K 的頁(yè)寫了 12K,剩下 4K 沒寫成功,導(dǎo)致 MySQL 頁(yè)數(shù)據(jù)損壞。這個(gè)時(shí)候就算通過(guò) Redo Log 也恢復(fù)不了,因?yàn)閹缀跤兴械年P(guān)系數(shù)據(jù)庫(kù)采用的 Redo Log 都記錄了數(shù)據(jù)頁(yè)的偏移量,此時(shí)就算通過(guò) Redo Log 恢復(fù)后,數(shù)據(jù)也是錯(cuò)誤的。所以 MySQL 在刷臟數(shù)據(jù)之前,會(huì)把這部分?jǐn)?shù)據(jù)先寫入共享表空間里的 DOUBLE WRITE BUFFER 區(qū)域來(lái)避免這種異常。此時(shí)如果 MySQL 采用壓縮表,并且每張表頁(yè)大小和磁盤塊大小一致,比如也是 4K,那 DOUBLE WRITE BUFFER 就可以不需要,這部分開銷就可以規(guī)避掉了。查看文件系統(tǒng)的塊大?。?/p>
root@ytt-pc:/home/ytt#??tune2fs?-l?/dev/mapper/ytt--pc--vg-root??|?grep?-i?'block?size'Block size: ? ? ? ? ? ? ? 4096
1.3 壓縮表的優(yōu)勢(shì)
壓縮表的優(yōu)點(diǎn)非常明顯,占用磁盤空間??!由于占用空間小,從磁盤置換到內(nèi)存以及之后經(jīng)過(guò)網(wǎng)絡(luò)傳輸都非常節(jié)省資源。
簡(jiǎn)單來(lái)講:節(jié)省磁盤 IO,減少網(wǎng)絡(luò) IO。
1.4 壓縮表的缺陷
當(dāng)然壓縮表也有缺點(diǎn),壓縮表的寫入(INSERT,UPDATE,DELETE)比普通表要消耗更多的 CPU 資源。
壓縮表的寫入涉及到解壓數(shù)據(jù),更新數(shù)據(jù),再壓縮數(shù)據(jù),比普通表多了解壓和再壓縮兩個(gè)步驟,壓縮和解壓縮需要消耗一定的 CPU 資源。所以需要選擇一個(gè)比較優(yōu)化的壓縮算法。
1.5 MySQL 支持的壓縮算法
這塊是 MySQL 所有涉及到壓縮的基礎(chǔ),不僅僅用于壓縮表,也用于其它地方。比如客戶端請(qǐng)求到 MySQL 服務(wù)端的數(shù)據(jù)壓縮;主從之間的壓縮傳輸;利用克隆插件來(lái)復(fù)制數(shù)據(jù)庫(kù)操作的壓縮傳輸?shù)鹊取?/p>
從下面結(jié)果可以看到 MySQL 支持的壓縮算法為 zlib 和 zstd,MySQL 默認(rèn)壓縮算法為 zlib,當(dāng)然你也可以選擇非 zlib 算法,比如 zstd。至于哪種壓縮算法最優(yōu),暫時(shí)沒辦法簡(jiǎn)單量化,依賴表中的數(shù)據(jù)分布或者業(yè)務(wù)請(qǐng)求。
出自:
1、配置環(huán)境變量
我的電腦-屬性-高級(jí)-環(huán)境變量
選擇PATH,在其后面添加: 你的mysql bin文件夾的路徑 (如:C:\Program Files\MySQL\MySQL Server 5.6\bin )
PATH=.......;C:\Program Files\MySQL\MySQL Server 5.6\bin (注意是追加,不是覆蓋)
2、my.ini文件 (ansc編碼)
配置文件是在C:\Program Files\MySQL\MySQL Server 5.6\my.ini,或者自己建立一個(gè)my.ini文件,
在其中修改或添加配置(如圖):
[mysqld]
basedir=C:\Program Files\MySQL\MySQL Server 5.6(mysql所在目錄)
datadir=C:\Program Files\MySQL\MySQL Server 5.6\data (mysql所在目錄\data)
不用新建data文件夾。
3、
以管理員身份運(yùn)行cmd(一定要用管理員身份運(yùn)行,不然權(quán)限不夠),
輸入:cd C:\Program Files\MySQL\MySQL Server 5.6\bin 進(jìn)入mysql的bin文件夾
mysqld -install
繼續(xù)在cmd中輸入:net start mysql
注意:這個(gè)時(shí)候經(jīng)常會(huì)出現(xiàn)錯(cuò)誤2和錯(cuò)誤1067。
如果出現(xiàn)“錯(cuò)誤2 系統(tǒng)找不到文件”,檢查一下是否修改過(guò)配置文件或者是否進(jìn)入在bin目錄下操作,如果配置文件修改正確并且進(jìn)入了bin文件夾,需要先刪除mysql(輸入 mysqld -remove)再重新安裝(輸入 mysqld -install);
如果出現(xiàn)錯(cuò)誤1067,那就是配置文件修改錯(cuò)誤,確認(rèn)一下配置文件是否正確。
4、第三步啟動(dòng)時(shí),報(bào)錯(cuò):
mysql無(wú)法啟動(dòng),服務(wù)沒有報(bào)告任何錯(cuò)誤
bin下執(zhí)行:
mysqld --initialize-insecure
會(huì)創(chuàng)建data目錄。再次啟動(dòng)mysql
5、首次安裝的mysql,沒有密碼
bin下
mysql -u root - p
mysql
設(shè)置密碼有很多方法:
1.用root 進(jìn)入mysql后
mysqlset password =password('你的密碼');
mysqlflush privileges;
2.使用GRANT語(yǔ)句
mysqlgrant all on . to 'root'@'localhost' IDENTIFIED BY '你的密碼'with grant option ;
mysqlflush privileges;
3.進(jìn)入mysql庫(kù)修改user表
mysqluse mysql;
mysqlupdate user set password=password('你的密碼') where user='root';
mysqlflush privileges;