注意:数据存放目录需要更改,端口号建议修改,可以屏蔽部分端口扫描威胁。
5.2.1 程序下载
官网:<https://www.mysql.com/>下载版本:5.7.25,要求为社区版。
![Image](https://box.kancloud.cn/996d31aa93aabae5a0a079a185829687_1154x672.png)
5\.2.2 安装时底层库缺失的错误
如果出现以下情况,是基础的库没有安装。需要安装微软vc++库
![Image](https://box.kancloud.cn/d9ccc4aafbf597a88cbb40d936af98c8_515x195.png)
![Image](https://box.kancloud.cn/62f7519fb8a6bd2eb59cab105d89e99a_1076x420.png)
..3 基础配置
初始化:进入到mysql根目录下的bin文件夹,在该目录下进入cmd窗口。并执行初始化命令:.\\mysqld.exe --initialize --user=mysql --console,此处会执行初始化生成data目录,还会打印初始密码。
![Image](https://box.kancloud.cn/054496d74345e062e677dc6d072ef559_1026x549.png)
![Image](https://box.kancloud.cn/9563949173c40b303f34789abda79a58_1060x554.png)
然后继续在该目录下执行安装命令: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