Windows中安装mysql

1、下载安装

ZIP Archive版本的mysql是免安装版的,只需要下载mysql压缩包,然后将其解压即可使用。下载ZIP Archive版本的路径:https://downloads.mysql.com/archives/community/

1、修改配置文件

将下载好的压缩包解压之后,如下所示(默认没有data文件夹,初始化后才有):

新建一个my.ini文件,在my.ini文件中写上如下所示内容:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3306 
# 设置mysql的安装目录
basedir=D:\MySoftware\Install\database\mysql\mysql8.0.20
# 设置mysql数据库的数据的存放目录
datadir=D:\MySoftware\Install\database\mysql\mysql8.0.20\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

添加环境变量

我的电脑->属性->高级系统设置->环境变量,新建一个系统变量:MYSQL_HOME,变量值为mysql的安装目录,然后修改系统变量Path的值,在最后加上;%MYSQL_HOME%\bin

2、安装mysql

初始化:修改完配置之后,必须先初始化,然后才能安装、启动mysql。在mysql5.7以上版本中默认没有一个data目录,即没有初始化服务。需要先初始化mysql才可以启动服务,否则会报 “服务没有报告任何错误”。初始化mysql之后,会自动创建data文件夹

以管理员身份打开cmd命令窗口

命令1:mysqld --initialize-insecure;(初始化后没有root密码,建议使用该命令)

命令2: mysqld -initialize;(初始化后随机生成一个root密码,一般放在 root/.mysql_secret 文件里,或者直接写在log-error日志文件中)

上述命令任意选择一个执行即可,建议使用第一个命令。

安装:进入到mysql的bin目录下,运行mysqld install命令安装MySQL。

3、启动和操作mysql

以管理员身份打开cmd命令窗口。

启动mysql的命令:net start mysql

启动mysql之后,记得修改root用户的密码(安装成功之后,root默认没有密码)。

修改密码的命令:mysqladmin -u root -p password xxx (xxx是指新密码)

关闭mysql的命令:net stop mysql

必须先启动mysql,才能操作mysql。

进入到mysql的bin目录下,输入以下命令:mysql -uroot -proot123

-u表示用户名,-p表示密码,此处用户名是root,密码是root123。或者输入以下命令:

mysql -uroot -p ,然后按回车键,再输入密码:root123

输入exit命令即可退出mysql,exit命令也可退出cmd窗口。

查看数据库:show databases;   (记得加上分号,表示命令结束)

切换数据库:use 数据库名;

查看数据库中的表:show tables;

查看端口号:show global variables like 'port';

2、创建用户并授权

先用root用户登录mysql:

命令:mysql -u root -p (回车之后输入root用户的密码:root123)

1、创建用户

命令:create user '用户名'@'主机名' identified by '密码';   (一般将主机名写成%

如:create user 'qwer'@'localhost' identified by '123456';

这样就创建了一个用户名为:qwer ,密码为:123456 的用户。

注意:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录

下面创建用户的命令是错误的:

命令:insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));

错语原因:mysql用户表中的某些字段不能为空,没有默认值,其实是操作错误,mysql添加用户是不能这样直接insert user表的。另外,5.7版本之后的mysql数据库已经没有password字段了,password字段改成了authentication_string。

创建用户报错:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value。

2、给用户授权

给普通用户授权必须登录root用户

先查询用户的登录主机:

select user,host from mysql.user;

给用户授予拥有某个数据库的所有权限的命令如下:

命令:grant 权限 on 数据库名.* to 用户名@登录主机 identified by "密码";

grant all privileges on mytest.* to 'qwer'@'%' identified by '123456' with grant option;

下面的命令表示给qwer用户授予拥有所有数据库的所有权限(即*.*):

grant all privileges on *.* to 'qwer'@'%' identified by '123456' with grant option;

如果上述命令报错,则执行下面的命令:

grant all privileges on *.* to 'qwer'@'%';

flush privileges;  --执行刷新权限,立即生效

创建普通用户之后,就可以使用普通用户登录:

命令:mysql -u qwer -p (回车之后输入qwer用户的密码:123456)

3、创建数据库和数据表

只有root用户才有权限创建数据库,登录root用户:mysql -u root -p

创建数据库的命令:create database 数据库名;

如:create database mytest;

3、安装mysql时的常见问题

1、手动创建data目录

配置完mysql配置文件my.ini中的datadir属性后,发现安装目录下没有data目录,此时千万不能自己手动创建一个data文件夹,因为自己手动创建的data文件夹里没有mysql启动所需要的表结构配置文件。在初始化mysql之后,会自动创建data文件夹。

2、没有初始化mysql

在使用net start msql命令启动mysql时,提示“服务报告没有任何错误”。

安装完mysql服务后迫不及待的开启mysql服务,在mysql5.7以上版本中默认没有一个data目录,即没有初始化服务。需要先初始化mysql才可以启动服务,否则会报 “服务没有报告任何错误”,启动失败。

正确的步骤是:先在mysql的bin目录下执行mysqld  --initialize-insecure命令 (不设置root密码,建议使用),第一次执行这个命令会等待的时间稍微长了一些,并且控制台没有任何返回结果。可以看到mysql的根目录下会多出一个data文件夹,里面一堆文件。

3、先启动,后初始化

该问题与上面4.2的问题一样,没有先执行mysqld  --initialize-insecure命令进行初始化,而是先执行net start mysql命令启动,会导致启动失败,此时mysql会自动创建一个data文件夹,并在里面初始化一些文件。如果此时再执行初始化命令,然而并没有把data文件夹删除。

此时的解决方案是:手动删除data文件夹,然后执行mysqld  --initialize-insecure命令进行初始化,再启动mysql。

4、安装后默认存在密码

mysql安装成功之后,若输入“mysql”或者“mysql -hlocalhost -uroot -p”并回车,居然没有进去,报错:“ERROR 1045 Access denied for user 'xxx' NO”。原因是新版的mysql为了安全性,默认是有密码的。

解决方法:

mysql默认安装会有密码生成,密码文件直接写在 log-error 日志文件中(在5.6版本中是放在 root/.mysql_secret 文件里),MySQL5.7在安装完后,第一次启动时,会在root目录下生成一个随机的密码,文件名为.mysql_secret。

登录时需要用随机密码登录,然后通过以下命令修改密码:

SET PASSWORD = PASSWORD('new password');

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐