配置安装环境
官网下载
mysql-5.7.30-winx64.zip
解压到安装目录
主目录下创建my.ini
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置通讯端口
port = 3306
# 设置mysql的安装目录
basedir=D:\\DevApps\\mysql-5.7.30-winx64
# 设置为MYSQL的数据目录 ,可以设置的,但有条件
datadir=D:\\DevData\\MySQLData5.7.30
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
设置环境变量 MYSQL_HOME和Path。
安装完成后设置也可以,不影响安装。
安装服务
安装服务
启动管理员模式cmd,进入bin目录下,运行mysqld --install mysql
安装服务。
-
坑:找不到 MSVCP120.dll 和 MSVCR120.dll
解决:复制C:\Program Files\Common Files\microsoft shared\ClickToRun目录下的这两个文件到bin目录下。
安装完成后也不要删除。
重新运行行
mysqld --install mysql
,显示Service successfully installed.安装成功。
启动服务
运行 net start mysql
启用服务。
-
坑:服务无法启动
手动启服务报错:
查看err日志
Plugin 'FEDERATED' is disabled.mysqld: Table 'mysql.plugin' doesn't exist
查看data目录,发现还没有数据库。。。
解决:先执行下一步初始化服务,再启动服务。
初始化服务
执行 mysqld --initialize --user=mysql
初始化服务。安装默认数据库,创建root账号,生成临时密码等。
执行成功后的data目录:
-
坑:如果直接执行
mysqld –initialize
,可能无法正确安装数据库。data目录只有几个文件,说明有错误,检查上图中标出的err日志文件。若安装服务时执行的是
mysqld -install
或者mysqld install
可能会导致服务初始化失败。
初始化成功后重新启动服务。服务启动成功。
- 坑:若提示服务找不到,则检查win服务列表,确认MySQL的服务名。若是mysql57,则执行
net start mysql57
。
设置root密码
使用临时密码登录
直接登录会提示需要密码。因为服务初始化时会设置root的临时密码,找到他并使用这个临时密码登录,登录后修改密码。
查看数据目录的err文件,找到temporary password临时密码。
登录账号:mysql -uroot -p
执行:
> alter user 'root'@'localhost' identified by 'newpw';
> quit,
然后用新密码登录。
另一种方式:越过认证设置密码(更适合忘记密码的情况)
在my.ini的[mysqld]加一行:skip-grant-tables,重启MySQL服务,登录root,不需要密码,直接回车进入客户端。
执行:
> update mysql.user set authentication_string=password('root') where user='root';
> flush privileges;
> quit
注意:密码字段是authentication_string,不再是password。
修改my.ini,删除skip-grant-tables,重启服务,用新密码登录。
到这里就安装完成了。
删除服务操作
三个步骤:
net stop mysql //停止服务
mysqld --remove mysql // 删除服务,
清空data下的文件
提示:
- 以上步骤若出现错误,则删除服务并清空数据目录后再次尝试安装。
- 若删除服务后提示服务删除成功,但再次安装服务的时候,提示服务已安装,或者提示服务删除失败,则再次执行删除服务操作,直到确认出现The service doesn’t exist!为止。若连续执行了多次install,会出现这种情况。
关于配置文件和data目录
必须有一个是默认的!!!
- 若将my.ini放到安装目录下,则可以指定data目录到自定义的安装目录。
- 若用
--defaults-file=D:\\DevData\\MySQLData5.7.30\\my.ini
(一个反斜杠的不生效) 参数指定配置文件,则data必须在安装目录下创建。(这也是坑,因为使用–defaults-file时,配置文件中的datadir没有生效,会自动在安装目录下生成data数据目录。)