Mysql-5.7.21安装配置

时间:2023-01-03 06:57:30

搞开发多年,其实MySql前前后后安装配置了无数次,但是每次都需要到网上搜教程,折腾半天才搞定,这次索性把整个过程全部记录下来,以便以后查阅。

下载

MySql官网,导航找到DOWNLOADS>>Community>>MySQL Community Server页面,也可以直接点击此处,选择相应的Mysql版本的zip包,我这里是mysql-5.7.21-winx64.zip

安装配置

  1. 下载好压缩包之后直接解压到将要存放的目录;
  2. 在根目录新建my.ini文件(并没有所谓的my-default.ini文件),保存为ANSI编码格式,如下图:Mysql-5.7.21安装配置
  3. my.ini中拷入以下代码:

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    [mysqld]
    # 设置3306端口
    port = 3306 
    # 设置mysql的安装目录
    basedir=D:\\Program Files\\mysql-5.7.21
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
  4. D:\Program Files\mysql-5.7.21\bin目录下,按住Shift+右键,选择在此处打开命令窗口
  5. 执行命令mysqld --install,这时有可能会出现以下几种错误:
    • Install/Remove of the Service Denied
      出现该问题是因为执行命令的权限不够,到C:\Windows\System32目录下找到cmd.exe文件,重新以管理员身份运行打开cmd窗口,然后转到D:\Program Files\mysql-5.7.21\bin目录,再次执行mysqld --install命令。
    • 丢失MSVCR120.dll,MSVCP120.dll
      Mysql-5.7.21安装配置
    这个问题提示比较明显,缺少文件,缺啥补啥,网上方案很多,最简单的办法就是根据缺失的文件安装相应版本的VC++运行库的安装包,因为MSVCR和MSVCP都属于VC++运行库,具体如下:
    msvcp、msvcr、vcomp140.dll属于VC++2015版 msvcp、msvcr、vcomp120.dll属于VC++2013版 msvcp、msvcr、vcomp110.dll属于VC++2012版 msvcp、msvcr、vcomp100.dll属于VC++2010版 msvcp、msvcr、vcomp90.dll属于VC++2008版 msvcp、msvcr60、71和80.dll,以及vcomp.dll(不带数字版本号)属于VC++2005版
    • Found option without preceding group in config file
      出现该错误一般是my.ini文件头部缺少了[mysql],或者另一种情况是文件的编码格式不对,将文件编码保存为ANSI即可。
  6. 执行命令mysqld --initialize,此时安装根目录下会自动生成data文件夹(原目录没有该文件夹)。
  7. 执行命令net start mysql,启动服务,如下图,证明已经安装成功。
    Mysql-5.7.21安装配置

配置账号密码

但当我们输入mysql命令时,会出现以下错误。
Mysql-5.7.21安装配置

实际上我们并没有设置任何密码,解决办法如下:

  1. 打开MySQL目录下的my.ini文件,在文件的最后添加一行skip-grant-tables,保存并关闭文件。
  2. 重启MySQL服务。
  3. 在命令行中输入mysql -uroot -p(不输入密码),回车即可进入数据库。
  4. 执行SQL语句use mysql;使用mysql数据库。
  5. 执行SQL语句update user set authentication_string=password('123456') where user='root';
  6. 打开MySQL目录下的my.ini文件,删除最后一行的skip-grant-tables,保存并关闭文件。
  7. 重启MySQL服务。

    注:
    此时如果执行如use mysql等命令,可能会出现 You must reset your password using ALTER USER statement before executing this statement. 的错误,如果出现,则执行以下步骤即可:

    执行命令SET PASSWORD = PASSWORD('123456');
    执行命令ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

开启远程连接

  1. 执行命令MySQL -uroot -p123456
  2. 执行命令use mysql;
  3. 执行命令update user set host = '%' where user = 'root';
  4. 执行命令GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;给予任何主机访问数据的权限。