title: windows下安装mysql服务 #标题tags: #标签
date: 2021-11-15
categories: mysql # 分类
由于最近在学习django的ORM,需要去连接mysql数据库进行一些测试,所以整理了下在windwows下安装mysql的文档(懒得开linux的虚机去装mysql了)。
下载并解压二进制包
访问https://downloads.mysql.com/archives/community/
,找到合适的版本并下载,如下(我下载的是X64的5.7.35版本):
下载成功后,将其解压到一个合适的位置,这里我是在测试,所以就解压至C:\software\
目录下。
定义配置文件
进入解压后的目录,编写my.ini文件,my.ini文件内容如下:
[mysqld]
port = 3306
basedir=C:\\software\mysql-5.7.35-winx64
datadir=C:\\software\mysql-5.7.35-winx64\data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
最终目录结构如下:
配置环境变量
按照如下指示,找到环境变量:
依次点击确定,关闭对话框:
安装mysql
以管理员身份运行cmq命令提示符:
然后执行如下指令:
$ cd c:\software\mysql-5.7.35-winx64\bin # 切换至你数据库的bin目录下
$ mysqld --initialize --console # 初始化数据库,会自动创建data目录(如果有报错,请看下面)
2021-11-15T14:04:30.429672Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-11-15T14:04:30.699001Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-11-15T14:04:30.748203Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-11-15T14:04:30.812373Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: f3fca8df-461c-11ec-a7d5-000c29be634b.
2021-11-15T14:04:30.817935Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-11-15T14:04:31.730681Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2021-11-15T14:04:31.731155Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2021-11-15T14:04:31.732311Z 0 [Warning] CA certificate ca.pem is self signed.
2021-11-15T14:04:32.042158Z 1 [Note] A temporary password is generated for root@localhost: 6Q&pIIl(H!?2
# 上面 root@localhost: 后面的字符串就是数据库的默认root密码,需要记好
$ mysqld.exe install # 执行安装命令
Service successfully installed. # 输出此信息,则表示安装成功
如果报错如下:
访问微软官网,下载合适自己的版本,我这里下载X64位的,如下:
下载后,自行进行无脑安装即可。
然后再重新执行下初始化和安装数据库的指令就可以了。
启动mysql
C:\software\mysql-5.7.35-winx64\bin>net start mysql # 启动mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
C:\software\mysql-5.7.35-winx64\bin>netstat -an | findstr 3306 # 确定端口在监听
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING
TCP [::]:3306 [::]:0 LISTENING
登录mysql
$ mysql.exe -uroot -p
Enter password: ************ # 输入初始化时控制台输出的密码
配置权限及本机免密码登录
为了测试方便,我将配置本机可以免密登录到数据库中。
# 授权mysql的root用户
mysql> alter user user() identified by "123.com"; # 需要先修改初始密码
Query OK, 0 rows affected (0.00 sec)
# 才能进行其他授权指令的操作
mysql> grant all on *.* to root@'%' identified by '123.com';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges; # 刷新权限
Query OK, 0 rows affected (0.00 sec)
# 数据库配置文件my.ini文件中追加如下内容
[mysql]
default-character-set=utf8
user=root
password=123.com
# 追加如上内容,无需重启数据库即可生效。后续执行执行mysql即可登录到数据库中
至此,数据库登录安装完成。
默认数据库都是开机自启的,也就是说,以后就算重启电脑了,直接登录数据库就行,如下: