MySQL5.7 关于在Windows安装的相关笔记

由于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 日志>应用程序> "具体的错误条目"

完)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

MySQL 数据库简单操作

    对于想要从事或爱好mysql相关工作的童鞋们,有必要掌握在命令行下对mysql实现一些简单的操作。本文从描述了如何登录到mysql数据库服务器,如何在m...

1022
来自专栏禁心尽力

mybatis_开发篇

一、使用mybatis的动态代理方式开发 需求:这里以crm系统中分页条件查询所有的客户信息的功能为例? 1、创建工程 2、引入所需的jar包 3、引入日志文件...

1945
来自专栏阮一峰的网络日志

PostgreSQL新手入门

自从MySQL被Oracle收购以后,PostgreSQL逐渐成为开源关系型数据库的首选。 本文介绍PostgreSQL的安装和基本用法,供初次使用者上手。以下...

4474
来自专栏杨建荣的学习笔记

MySQL数据导入导出牛刀小试(r5笔记第3天)

最近学习了下MySQL中数据的导入导出,发现功能点真是丰富,很方便很快捷。 这些导入导出的方式还是有不少的细节的,在此先不做扩展和深入分析。 --数据导出 方式...

3744
来自专栏Samego开发资源

MySQL开启远程连接

5344
来自专栏北京马哥教育

FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制

前言 vsftpd是一款在Linux发行版中最受 推崇的FTP服务器程序,特点是小巧轻快,安全易用,目前在开源操作系统中常用的FTP套件主要有proftp...

3455
来自专栏性能与架构

[安全] mysqldump 备份的后门

1. 简介 mysqldump 是备份 MySQL 数据库的常用工具,其中会包含 创建表、删除表、插入数据 这些数据库操作的语句 而黑客可能会利用 mysqld...

3448
来自专栏WindCoder

MySQL事务与存储引擎-数据库事务单元测试

这是微专业参加单元测试后的试题及答案整理,分享出来,供大家参考,所有标红的为答案。

2201
来自专栏DT乱“码”

linux下操作 mysql的基本命令

1, 创建mysqld数据库的管理用户: 要把root用户设置为管理员,我们应该运行下面的命令;     [root@linuxsir01 root]# mys...

3056
来自专栏技术碎碎念

sql server 2008 基础知识

一、配置管理器 1.管理服务   使用配置管理器可以启动、停止、重新启动、继续或暂停服务。   服务器和客户端网络协议 2.SQLSMS   简介:SQLSMS...

3645

扫码关注云+社区

领取腾讯云代金券