之前写了一篇在windows下安装MySQL的文章:https://www.jianshu.com/p/5038bf94ba6a
不过因为默认的安装配置过于简单,也没有用足生产环境下的性能,所以再此稍作补充。
- 错误排查
有时候MySQL启动不起来,可以通过前台启动MySQL,这样能在控制台直接看到日志。
mysqld.exe --console
- 数据备份
以下为windows命令行,可以制作成.bat定期执行备份。
mysqldump -uroot -proot --databases test > test_%date:~0,4%-%date:~5,2%-%date:~8,2%.sql
服务器上可根据以下bat进行mysql定期备份,具体路径可根据实际调整
rem 根据当前日期获取,年月日串
set yyyy=%date:~,4%
set mm=%date:~5,2%
set day=%date:~8,2%
set "YYYYmmdd=%yyyy%%mm%%day%"
rem 把年月日串中的空格替换为0
set "YYYYmmdd=%YYYYmmdd: =0%"
echo "YYYYmmdd%YYYYmmdd%YYYYmmdd"
rem 根据当前时间获取,时分秒串
set hh=%time:~0,2%
set mi=%time:~3,2%
set ss=%time:~6,2%
set "hhmiss=%hh%%mi%%ss%"
set "hhmiss=%hhmiss: =0%"
echo "hhmiss%Time%hhmiss"
echo %hhmiss%
rem 把时间串中的:替换为0
set "hhmiss=%hhmiss::=0%"
rem 把时间串中的空格替换为0
set "hhmiss=%hhmiss: =0%"
rem 根据日期时间生成文件名称,中间以HH区分日期和时间部分
set "timestamp=%YYYYmmdd%%hhmiss%"
echo %timestamp%
mysqldump -uroot -proot --databases test > test_%timestamp%.sql
"C:\Program Files\7-Zip\7z.exe" a test_%timestamp%.zip test_%timestamp%.sql
forfiles /p C:\Users\Administrator\Documents\Bak\Mysql\ /s /m * /d -30 /c "cmd /c del @path"
del /f /s /q C:\Users\Administrator\Documents\Bak\Mysql\*.sql
- 根据生产环境自动配置INNODB内存
[mysqld]
# other config...
innodb_dedicated_server=ON
# other config..
innodb_dedicated_server参数在8.03版本中引入,是一个只能在启动时设置的global级参数。此参数设置为ON时,MySQL会根据检测到的内存大小设置innodb_buffer_pool_size、innodb_log_file_size、innodb_flush_method三个参数。有了这个参数我们就不用再写脚本根据内存大小去修改配置文件的这三个参数了。