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刷新(密码修改后可执行此命令刷新)