搭建网站之三——Windows环境安装mysql-8.0.22-winx64附ERROR 1045 (28000): Access denied for user问题解决

SQL的安装网上教程很多,但很多都是早期版本的,其实并不适用于当前较新的SQL8版本,网上教程存在以下误区

误区一 ——需要自己在mysql路径下新建my.ini文件

其实在SQL8版本,就不需要创建my.ini文件了,也不需要自己创建data文件夹。

误区二 ——密码修改成123456

这样是没办法修改密码成功的,因为此版本的密码算法是SHA256,估计是对密码的要求比较高。所以没办法采用以往教程中的123456简单密码。

--------------------------------------------------------- 我是安装步骤的分割线 --------------------------------------------------------------

安装前请确定已安装Microsoft Visual C++2015环境。

 

下面记录下mysql-8.0.22-winx64的安装步骤

1. 了解MySQL

     MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库      内,这样就增加了速度并提高了灵活性。

2. 下载安装包

     官方网址:https://dev.mysql.com/downloads/

     

         

        安装包有很多选择,包括msi和zip
        其中msi不需要自己添加环境变量,是在线安装模式,一直点next即可
        zip解压后配置环境变量即可直接使用

       我们这里下载的zip包代表是免安装版,下载后解压即可。

        

3. 解压

    后面修改配置时需要用到保存路径,同时不确定中文路径是否有影响,因此建议保存到一个英文路径。建议跟前面的Apache、PHP解压文件保存到同一个文件夹,并改名为mysql。

   说明:解压后会包含两个同名mysql-8.0.22-winx64的文件夹,只需要一个层级即可。

    

4. 配置环境变量

    在Windows窗口搜索“环境变量”

    

    

    为系统变量的Path添加mysql的bin路径,例如这里是D:\2_Job\tools\mysql\bin

    注意是系统变量,而不是用户变量。一直到写文章,才发现自己原来是添加的用户变量。添加的好处是这样在cmd窗口执行sql命令时,就不用切换mysql的bin路径了。

    

    

5. 初始化sql数据库

    1)使用管理员身份运行cmd窗口

         方法:开始窗口中输入cmd,右键“以管理员身份运行”

                

     2)切换到解压路径bin文件夹(说明:如果前面已添加sql的系统环境变量,这步应该可以不用)

     3)执行以下命令

           mysqld --initialize   

           mysqld -install mysql

           net start mysql

           命令的作用依次是初始化数据库,安装数据库服务,启动数据库服务

           

          附上二次执行的图,之前安装时没有留下截图

6.  连接sql数据库并更改密码

     执行mysql -u root -p连接数据库,

    会提示输入密码,初次登录密码是空,直接敲回车即可进入mysql

    执行alter user'root'@'localhost' identified by 'Hello1234';命令修改密码——注意进入mysql后语法规则变化,英文分号就不能少了

    ——为什么要改密码,看到的说法是首次登录后随机生成一个密码(这个密码在data文件夹的.err文件中用root@localhost可以搜索到,但我没找到);另外由于sql8的版本升级,改密码不能使用123456如此简单的密码,这里用的是Hello1234,包含大小写字母和数字

     

7.  在php中加载sql

     在php文件夹下的php.ini文件中找到extension_dir,并在下一行添加

        extension = php_mysqli.dll
        extension = php_pdo_mysql.dll

        

       修改完成后,需要在计算机管理中重启apache服务。

8. 测试

     在apache的htdocs路径下新建index.php文件,

     

     文件内容为

<?php

$host = "127.0.0.1"; //mysql主机地址
$user = "root"; //mysql 登录账户
$pwd = "Hello1234"; //mysql登录密码
$conn = new mysqli($host, $user, $pwd); //连接数据库
if (!$conn) {//判断
    echo '连接数据库失败: ' . mysql_error();
}
echo "mysql 连接成功!";
mysqli_close($conn); // 关闭mysql连接


?>

<?php

$host = "127.0.0.1"; //mysql主机地址
$user = "root"; //mysql 登录账户
$pwd = "Hello1234"; //mysql登录密码
$conn = new mysqli($host, $user, $pwd); //连接数据库
if (!$conn) {//判断
    echo '连接数据库失败: ' . mysql_error();
}
echo "mysql 连接成功!";
mysqli_close($conn); // 关闭mysql连接


?>

    在浏览器中输入http://localhost/index.php并访问,显示如下页面代表成功

   

如果密码不匹配会报错

 

---------------------------我是解决问题和mysql常用命令的分割线--------------------------------------------------------------------

安装问题1:net start mysql提示“发生系统错误 2 系统找不到指定的文件”

                    

                   解决:安装路径问题,如果没有添加mysql的系统环境变量,则需要在mysql目录下安装mysql服务

                    

安装问题2:忘记mysql的登录密码,导致访问页面出现报错

                    解决:(1)net stop mysql 关闭mysql服务

                               (2)mysqld --console --skip-grant-tables --shared-memory  打印控制台信息

                   

                             (3)启动一个新管理员权限的cmd窗口(前面的cmd窗口不要关闭),执行mysql -uroot -p就能免密进入

                             (4)修改密码:

                                                      use mysql 

                                                      update user set authentication_string='' where user='root'      如果这个字段有值,先置为空

                                                      flush privileges     刷新权限表

                                                      ALTER user 'root'@'localhost' IDENTIFIED BY 'Hello1234'     修改root 密码

 

常用命令一——mysqld --console

如果初始化mysql数据库时报错,可以执行mysqld --console把信息打印到控制台 然后寻找一下信息中有没有出现

这里我遇到过如下错误

在计算机管理中关闭mysql服务,并检查index.php和配置的mysql密码是否匹配,再重启mysql即可

常用命令二——flush privileges刷新(密码修改后可执行此命令刷新)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值