- 下载
- 安装配置
- 问题及解决方案
一、下载
找到你要的版本点击“looking for the latest GA version?”切换,我这个安装的是5.7.28,然后往下拉:
找到免安装的压缩包:
然后就进到了下载页面:
其实,并不要那么麻烦,直接使用这个下载的cdn连接就可以了:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.28-winx64.zip
二、安装配置
2.1 解压文件到你安装数据的路劲下,例如我直接解压到了f盘下:
F:\mysql-5.7.28-winx64
2.2 解压出来的文件缺少my.ini配置文件和data文件夹:
my.ini配置,根据注释说明和你自己的配置需要修改(配置参数只求安装,未考虑任何性能问题):
1 # MySQL Server Instance Configuration File 2 #---------------------------------------------------------------------------- 3 # Generated by the MySQL Server Instance Configuration Wizard 4 #通过使用MySQL服务配置向导生成 5 # Installation Instructions 6 7 #客户端参数配置 8 # CLIENT SECTION 9 #---------------------------------------------------------------------------- 10 [client] 11 #客户端通过3306端口连接MySQL数据库服务器,如果需要修改端口号,可以直接修改。 12 #Port=3306 13 #default-character-set=utf8mb4 14 loose_default_character_set=utf8mb4 15 [mysql] 16 #客户端的默认字符集。 17 default-character-set=utf8mb4 18 19 #服务端参数配置 20 # SERVER SECTION 21 #----------------------------------------------------------------------------- 22 [mysqld] 23 #服务器端口号。 24 port=3306 25 #MySQL数据库服务器的安装目录 26 basedir="F:\mysql-5.7.28-winx64" 27 #MySQL数据库文件目录 28 datadir="F:\mysql-5.7.28-winx64\data" 29 #忽略软件客户端的字符集,使用服务器的字符集 30 character-set-client-handshake=FALSE 31 #MySQL软件端的字符集 32 character-set-server=utf8mb4 33 #MySQL软件的存储引擎 34 default-storage-engine=INNODB 35 # Set the SQL mode to strict 36 #MySQL软件的SQL模式 37 sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 38 #MySQL软件的最大连接数 39 max_connections=100 40 #MySQL软件的查询缓存 41 query_cache_size=0 42 #MySQL软件中可以打开的总表数 43 table_open_cache=256 44 #MySQL软件内存中可以存储临时表的最大值。 45 tmp_table_size=9M 46 #MySQL软件内存中可以保留的客户端连接线程数 47 thread_cache_size=8 48 #MySQL软件中重建索引时允许的最大临时文件的大小 49 myisam_max_sort_file_size=5G 50 #MySQL软件重建索引时允许的最大缓存大小 51 myisam_sort_buffer_size=17M 52 #MySQL最大关键字缓存大小. 53 key_buffer_size=10M 54 #MySQL软件全扫描MyISAM表时的缓存大小 55 read_buffer_size=64k 56 #MySQL软件可以插入排序好数据库的缓存大小 57 read_rnd_buffer_size=256k 58 #MySQL软件用户排序时缓存大小 59 sort_buffer_size=256k 60 #join 连表操作的缓存大小,根据实际业务来设置,默认8M 61 join_buffer_size=32M 62 63 #关于INNODB存储引擎参数设置 64 #关于提交日志的时机 65 innodb_flush_log_at_trx_commit=1 66 #存储日志数据的缓存区的大小 67 innodb_log_buffer_size=1M 68 #缓存池中缓冲区的大小 69 innodb_buffer_pool_size=17M 70 #日记文件的大小 71 innodb_log_file_size=10M 72 #允许线程的最大数 73 innodb_thread_concurrency=8
2.3 配置系统环境变量
//系统变量 //变量名称 MYSQL //变量值(安装路径) F:\mysql-5.7.28-winx64 //在系统变量path添加一条记录 %MYSQL_HOME%\bin
2.4 初识化MySQL数据库,使用管理员权限启动控制台:
然后进入mysql安装路径,例如:F:\mysql-5.7.28-winx64\bin
f: F:\>cd mysql-5.7.28-winx64 F:\mysql-5.7.28-winx64> cd bin F:\mysql-5.7.28-winx64\bin>mysqld -initialize --user=mysql --console
一定要注意最后一行打印的信息: A temporary password is generated for root@localhost: ********(星号表示root的临时密码,后面登入数据库修改密码要用,记得保存好)
2.5 安装服务:
F:\mysql-5.7.28-winx64\bin>mysqld install MySQL --defaults-file="F:\mysql-5.7.28-winx64\my.ini"
安装成功后会提示:Service successfully installed.
2.6 安装服务:
//启动服务 F:\mysql-5.7.28-winx64\bin>net start MySQL
2.7 使用前面保存的临时密码修改你自己的密码:
mysql -u root -p
然后根据截图指示登入数据库,修改密码:
修改完密码后退出再用新密码登入测试:
SET PASSWORD = PASSWORD('新密码'); //然后退出,再用新密码登入测试--注意第一个(exit;)后面记得跟分号--然后再 exit; //回车退出 exit //再回车就可退出数据库了
2.8 用新密码登入测试:
mysql -u root -p
输入你的密码登入数据库。
//测试查看所有数据库 show databases;
安装完成了,快点开始你的骚操作吧。
三、问题及解决方案
1.第一次配置文件中的数据库路径忘了写“\data”路径,直接使用mysqld -initialize --user=mysql --console安装,导致安装失败,失败导致错误的将文件生成到了根目录下。
解决办法:删除data文件夹及其他新生成的文件(对比最新解压出来的文件目录)。
然后关闭服务,可以使用命令关闭:
net stop MySQL
最好使用图形化界面查看服务,我当时还出现了mysql57服务,同样采用命令关闭。而且当时MySQL文件使用命令关闭后,其状态还是启动,指示被禁用而已。这是因为mysqld.exe进程还处于开启状态,需要关闭这个进程:
//查看mysqld.exe进程 tasklist | findstr "mysql"
这个查看结果忘了截图了,可以参考这篇博客:https://blog.csdn.net/pdcfighting/article/details/85345540
然后使用命令关闭进程:
taskkill /f /t /in mysqld.exe
这时候别急着重新开始安装,我当时在这个地方被windows系统缓存困了好久,因为可能还有sql相关进程没有关闭,和缓存依然没有清除,重新操作依然会发生之前一模一样的的错误。
解决办法:
打开任务管理器,关闭所有跟MySQL有关的进程,没截图,如果你遇到同样问题不懂的话,看谁长得像就关闭谁吧。
然后,继续灭绝师太的操作,使用垃圾清理工具,清除系统缓存、日志文件、临时文件、注册表垃圾等系统垃圾。
不好意思,忘了告诉你在这一系列操作之前关闭控制台,不过我当时也没有关闭,是后面清除垃圾后关闭的。然后再使用管理员状态启动控制台,再操作。
2.可能出现一种更头疼的问题,就是服务安装了,但是可能没有data路径下没有mysql数据库,这个操作跟上面一样,但是还有一种可能就是注册表已经注册了,这需要找到注册表,然后将整个注册表下的mySQL文件夹删除。然后重新操作。
3.可能出现配置错误,比如我出现过:
“table_cache=256”报错,这时因为这个配置废弃,被“table_open_cache=256”取代。
客户端的“Port=3306”配置出错,将[client]下的"port=3306"注释或者删除。
“default-character-set=utf8mb4”报错,这个也是因为配置废弃,被“loose_default_character_set=utf8mb4”取代。
'innodb_additional_mem_pool_size=2M'报错,这个也是因为INNODB存储引擎该配置废弃,查了好些资料都说不用配置了,不知道有没有替代配置,反正我直接删了这个配置项,然后就可以安装了。
4.按照上面的配置还可能出现“无用时区”问题,三个解决方案:
方案一:修改设置当前系统时区,这个方案并不是很好,每次重启服务都需要设置一次。
方案二:在my.ini中配置这个设置,这个方案算是一个长期的解决方案,因为每次启动服务都会根据这个配置设置当前系统时区。(记得要重启服务才能生效)
//在my.ini的[mysqld]下配置 default-time-zone='+08:00'
方案三:在jdbc连接的url后面加上serverTimezone=GMT即可解决问题,如果需要使用gmt+8时区,需要写成GMT%2B8
public static final String URL="jdbc:mysql://localhost:3306/jdbc01?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";//链接的mysql