MySQL5.7安装常见问题

摘要:从MySQL 5.7开始没有data文件夹,如果不进行初始化的话,mysql服务是无法启动的

正文:

MySQL的安装

  1. 去官网下载zip格式的Mysql Server的压缩包(绿色版),根据个人电脑选择x86或者x64版本,点击最下面的跳过登录下载。
  2. 解压,复制my-dafault.ini到bin目录下,重命名为my.ini。可以根据需要复制以下内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    [mysqld]
    #设置3306端口
    port = 3306
    # 设置mysql的安装目录
    basedir=D:\mysql\mysql-5.6.35-winx64
    # 设置mysql数据库的数据的存放目录
    datadir=D:\mysql\mysql-5.6.35-winx64\data
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
  3. 从MySQL5.7开始,MySQL没有5.6那么易用,没有data文件夹使网上很多配置方法都会失效,如果不进行初始化的话,mysql服务是无法启动的

    1. 以管理员身份运行cmd,cd到mysql的bin目录下,执行命令:
      mysqld –initialize –user=mysql –console
    2. 该命令会去创建data目录与数据库,生成root用户和临时密码,在执行后的最后一行:localhost: xxxxxx
  4. 配置环境变量,将bin所在的文件夹路径添加到path的最后,例如: path=..xxx;D:\mysql\mysql-5.6.35-winx64\bin\my.ini

  5. 运行cmd,输入net start mysql启动mysql服务,再输入mysql -u root -p,然后输入临时密码。修改密码:set password=password(‘新密码’);,然后回车,注意分号不要忽略。

    卸载

  6. 关闭服务
    以管理员身份运行cmd,执行:

    1
    net stop mysql
  7. 卸载

    1
    mysqld -remove [服务名]
  8. 删除文件

  9. 删除注册表信息
    清除注册表中的该MySQL服务,有几个地方:
    a、HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 目录删除
    b、HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 目录删除
    c、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 目录删除
    注册表中的ControlSet001、ControlSet002不一定是001和002,可能是ControlSet005、006之类,删除的时候都删除就可以 。

    常见问题

  10. data文件错误
    MySQL服务正在启动..
    MySQL服务无法启动。

    服务没有报告任何错误。
    原因:
    原因:一般初始化之前已存在data文件就会出现这个错误,或者data文件缺少了某些文件

    解决:
    先执行mysqld -remove,然后把data文件删除,如果删除不了重启一下就可以了,之后重新进行安装就没问题了。如果想保留之前的data文件,可以先把data文件拷贝到其他地方,安装好之后再将原data文件中多的文件拷贝进去就行了

  11. 密码错误(Error password Error 1045…Access denied
    原因1:
    使用mysqld –initialize方法安装会生成一个随机字符串组成的密码,这个密码在错误日志D:\mysql\mysql-5.6.35-winx64\data\xxx.err(xxx是用户名)可以找到。
    原因2:
    忘记密码
    解决:如果忘记密码或找不到随机密码,可以通过以下方法跳过权限修改密码
    以管理员身份运行cmd,执行以下命令:

    1
    2
    net stop mysql//关闭服务
    mysqld --skip-grant-tables;//设置mysql登录--skip-grant-tables模式

    打开一个新的cmd

    1
    2
    3
    4
    mysql//直接登录mysql
    update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';//修改密码
    //特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了,而是将加密后的用户密码存储于authentication_string字段
    flush privileges;//刷新权限,退出--skip-grant-tables模式,很重要!

重启电脑,然后mysql就可以连接了
但是此时操作似乎功能不完全,还要在登录状态下修改一次密码

1
2
3
4
5
alter user 'root'@'localhost' identified by '123456';
还可以这样:
set password for 'root'@'localhost'=password('123456');
或这样:
set password=password('123456');

其实mysql的安装卸载过程很简单,一般出了问题之后,把data文件备份后重装,然后把原data中的数据库文件拷贝回来就可以了。