由于windows设备上长期使用老版本5.5、以及mariadb分支版本。基本很少使用5.7,以至于偶尔安装5.7测试时遇到一些麻烦耗费很长时间。在此记录下载,方便日后查看。
版本选择
当前最新版本 5.7.20 社区版
https://dev.mysql.com/downloads/mysql/
下载压缩版本:
ZIP Archive (mysql-5.7.20-win32.zip)
https://dev.mysql.com/downloads/file/?id=473308
创建配置
自MySQL 5.7.18版本开始,将不再附带配置文件 my-default.ini,所以复制配置文件将无从做起。
摘于:https://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
自此,进行手写配置文件。
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
socket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M
[mysqldump]
quick
摘于:https://dev.mysql.com/doc/refman/5.7/en/option-files.html
增加base及data目录:
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
socket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M
basedir="D:/tools/MySQL/mysql5.7.20"
datadir="D:/tools/MySQL/mysql5.7.20/data"
[mysqldump]
quick
关于其他的配置后续可以参考官方文档进行添加。
参见:https://dev.mysql.com/doc/refman/5.7/en/server-options.html
其他博主详解:https://www.cnblogs.com/zhoujinyi/p/5614135.html
初始化数据库
进入mysql.exe所在目录下,如:
使用管理员权限运行 CMD
>d:
>cd "D:/tools/MySQL/mysql5.7.20/bin"
# 以下命令二选一。
# 其一,初始化数据库目录,生成随机MySQL密码至日志文件中。
# 其二,初始化数据库目录,生成(空)密码。
>mysqld --initialize
>mysqld --initialize-insecure
执行之后到
./data/DESKTOP-****.err 文件中寻找password关键词进行查找。
修改ROOT密码
使用命令行登录数据库。
>mysql -uroot -p -P3306
Enter password:# 输入生成的随机密码
mysql> use mysql;
mysql> desc user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host | char(60) | NO | PRI | | |
| User | char(32) | NO | PRI | | |
| Select_priv | enum('N','Y') | NO | | N | |
......
|
| authentication_string | text | YES | | NULL | |
| password_expired | enum('N','Y') | NO | | N | |
| password_last_changed | timestamp | YES | | NULL | |
| password_lifetime | smallint(5) unsigned | YES | | NULL | |
| account_locked | enum('N','Y') | NO | | N | |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
45 rows in set (0.00 sec)
# 5.7已经取消了Password字段,取而代之的是authentication_string,而且已经"不推荐"修改表来完成实现修改用户密码。
mysql> update mysql.user set authentication_string=password('root') where user='root';
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 1
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
# 官方推荐使用 ALTER 方法进行修改,具体使用如下。
# 该方法不需要刷新权限表(flush privileges)即可生效。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
Query OK, 0 rows affected (0.00 sec)
#此次虽然提示0条影响,但实则已经修改。
mysql> select host,user,authentication_string,password_last_changed from user;
+-----------+---------------+-------------------------------------------+-----------------------+
| host | user | authentication_string | password_last_changed |
+-----------+---------------+-------------------------------------------+-----------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | 2018-01-06 21:56:39 |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | 2018-01-06 21:07:45 |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | 2018-01-06 21:07:45 |
+-----------+---------------+-------------------------------------------+-----------------------+
3 rows in set (0.00 sec)
作为Windows服务常驻运行
使用管理员模式运行CMD 进入 ./bin 目录
安装MySQL服务
# mysqld --install [服务名]
# mysqld --install-manual [服务名] 安装服务不自启
>mysqld --install MySQL57
Service successfully installed.
卸载MySQL服务
# mysqld --remove [服务名] 存在多个版本是需要具体服务名,容易卸载错误。
>mysqld --remove MySQL57
Service successfully removed.
# 或者使用windows内置管理方式删除服务
>sc delete MySQL57
[SC] DeleteService SUCCESS
启动/停止 MSYQL
# 启动
net start MySQL57
#停止
net stop MySQL57
启动时出现错误
MySQL57 服务正在启动 .
MySQL57 服务无法启动。
服务没有报告任何错误。
请键入 NET HELPMSG 3534 以获得更多的帮助。
详情查看方式:
计算机管理>系统工具>时间查看器>Windows 日志>应用程序> "具体的错误条目"
完)