注意:數據存放目錄需要更改,端口號建議修改,可以屏蔽部分端口掃描威脅。
5.2.1 程序下載
官網:<https://www.mysql.com/>下載版本:5.7.25,要求為社區版。

5\.2.2 安裝時底層庫缺失的錯誤
如果出現以下情況,是基礎的庫沒有安裝。需要安裝微軟vc++庫


..3 基礎配置
初始化:進入到mysql根目錄下的bin文件夾,在該目錄下進入cmd窗口。并執行初始化命令:.\\mysqld.exe --initialize --user=mysql --console,此處會執行初始化生成data目錄,還會打印初始密碼。


然后繼續在該目錄下執行安裝命令:mysqld –-install MySQL (服務名 自定義即可)
再使用初始密碼登陸后,重新設置密碼。
set password for root@localhost=password('你的密碼');
然后修改遠程登陸:
mysql -uroot -P50681 -p
use mysql;
select host,user from user;
更改遠程地址:
update user set host = ’%’ where user = ’root’;
修改權限:
Grant all on \*.\* to 'root'@'%' identified by 'root用戶的密碼' with grant option;
flush privileges;
5.2.5配置文件
\[mysqld\]
#設置服務器字符集為utf8mb4
character\_set\_server\=utf8mb4
collation-server\=utf8mb4\_general\_ci
#大小寫敏感
lower\_case\_table\_names\=2
#設置mysql允許的最大連接數
max\_connections\=500
#設置mysql的安裝目錄
basedir = D:/test\_project/mysql-5.7.25-winx64\_50681
#設置mysql的數據文件存放目錄
datadir = D:/test\_project/mysql-5.7.25-winx64\_50681/data
#mysql中TIMESTAMP類型和其他的類型有點不一樣(在沒有設置explicit\_defaults\_for\_timestamp=1的情況下)
explicit\_defaults\_for\_timestamp = 1
#設置mysql服務所綁定的端口
port = 50681
#設置mysql允許的最大連接數
max\_connections\=15
#禁用DNS主機名查找,啟用以后用內網地址向mysqlslap請求響應快了一半
skip\_name\_resolve = 1
#這個值定義了日志文件的大小,innodb日志文件的作用是用來保存redo日志。一個事務對于數據或索引的修改往往對應到表空間中的隨機的位置,因此當刷新這些修改到磁盤中就會引起隨機的I/O,而隨機的I/O往往比順序的I/O更加昂貴的開銷,因為隨機的I/O需要更多的開銷來定位到指定的位置。innodb使用日志來將隨機的I/O轉為順序的I/O,只要日志文件是安全的,那么事務就是永久的,盡管這些改變還沒有寫到數據文件中,如果出現了當機或服務器斷電的情況,那么innodb也可以通過日志文件來恢復以及提交的事務。但是日志文件是有一定的大小的,所以必須要把日志文件記錄的改變寫到數據文件中,innodb對于日志文件的操作是循環的,即當日志文件寫滿后,會將指針重新移動到文件開始的地方重新寫,但是它不會覆蓋那些還沒有寫到數據文件中的日志,因為這是唯一記錄了事務持久化的記錄
#如果對 Innodb 數據表有大量的寫入操作,那么選擇合適的 innodb\_log\_file\_size 值對提升MySQL性能很重要。然而設置太大了,就會增加恢復的時間,因此在MySQL崩潰或者突然斷電等情況會令MySQL服務器花很長時間來恢復
innodb\_log\_file\_size = 4G
#事務在內存中的緩沖。 分配原 則:控制在2-8M.這個值不用太多的。他里面的內存一般一秒鐘寫到磁盤一次
innodb\_log\_buffer\_size = 16M
\# Remove leading # to set options mainly useful for reporting servers.
\# The server defaults are faster for transactions and fast SELECTs.
\# Adjust sizes as needed, experiment to find the optimal values.
\# join\_buffer\_size = 128M
\# sort\_buffer\_size = 2M
\# read\_rnd\_buffer\_size = 2M
#========慢日志查詢
slow\_query\_log = 1
#是否開啟慢查詢日志收集
slow\_query\_log\_file = D:/test\_project/mysql-5.7.25-winx64\_50681/log/mysql-slow.log
#慢查詢日志位置
log\_queries\_not\_using\_indexes = 1
#是否記錄未使用索引的語句
log\_slow\_admin\_statements = 1
#慢查詢也記錄那些慢的optimize table,analyze table和alter table語句
log\_slow\_slave\_statements = 1
#記錄由Slave所產生的慢查詢
log\_throttle\_queries\_not\_using\_indexes = 10
#設定每分鐘記錄到日志的未使用索引的語句數目,超過這個數目后只記錄語句數量和花費的總時間
expire\_logs\_days = 90
#日志自動過期清理天數
long\_query\_time = 1
#設置記錄慢查詢超時時間
min\_examined\_row\_limit = 100
#查詢檢查返回少于該參數指定行的SQL不被記錄到慢查詢日志
#臨時文件
tmpdir = D:/test\_project/mysql-5.7.25-winx64\_50681/tmp
#錯誤日志
\[mysqld\_safe\]
log-error\=D:/test\_project/mysql-5.7.25-winx64\_50681/log/mysqld.log
\[client\]
#設置客戶端字符集
default-character-set\=utf8mb4
\[WinMySQLadmin\]
Server = D:/test\_project/mysql-5.7.25-winx64\_50681/bin/mysqld.exe
sql\_mode\=NO\_ENGINE\_SUBSTITUTION,STRICT\_TRANS\_TABLES