环境:Win10,PHP 7.1.27,Apache 2.4.38 x64,MySQL 8.0.15.0
1.下载
https://www.mysql.com/
点击DOWNLOADS
滑倒页面底部,Community(GPL) Downloads >>
滑倒大概页面中间位置,点击MySQL on Windows (Installer & Tools)
点击MySQL Installer
选择Windows (x86, 32-bit), MSI Installer,点击Download
备注:(mysql-installer-web-community-8.0.15.0.msi)是在线安装,(mysql-installer-community-8.0.15.0.msi)是离线安装。
点击No thanks, just start my download.
备注:不用登陆,也不用注册。
2.安装
双击下载的mysql-installer-community-8.0.15.0.msi
备注:整个安装过程基本就是一直下一步就行,有几个地方需要操作一下
①安装方式选择自定义安装
②选择要安装的软件内容,这里把列表中的全部安装也是没问题的。
③数据库root用户的密码
④把系统启动时自动启动MySQL前面的勾勾掉,不处理也是可以的
⑤中间连接数据库时需要输入之前设置的root用户密码
等待一会,出现安装界面之后,点击I accept the license terms,点击Next
选择Custom,点击Next
选择需要安装的软件,放到右侧,Advanced Options为安装路径(好像是文档和例子的安装路径,软件的路径好像改不了,没试过),选好后,点击Next
备注:
一般选择MySQL Server 8.0.15 - X64,Connector/ODBC 8.0.15 - X64就行。
MySQL Shell 8.0.15 - X64、MySQL Worbench 8.0.15 - X64自己单独下载安装也是可以的。
MySQL Worbench 8.0.15 - X64是MySQL自己出的操作数据库的图形界面,类似navicat。
不过最好把Samples and Examples8.0.15 - X86也装上,它是给新装的数据库带的数据库例子。
后面测试数据库安装成功和测试php访问数据时,这篇文章会用到。
确认刚才选择的软件,点击Execute
等全部安装完,点击Next
出现配置界面,点击Next
继续Next
继续Next
备注:这页配置的是MySQL的运行模式和网络,其中Config Type表示运行模式,如果安装MySQL是做开发用,就直接选择第一个默认的就行,第二个Server Machine表示运行模式为服务器模式,这些模式的不同会导致MySQL占用系统资源的不同,第二个配置的是网络相关,表示链接MySQL的时候使用TCP/IP协议,并指定端口号为3306,没有特殊要求全部默认,直接Next。
继续Next
让你输入数据库登陆时root用户的密码,填好后直接Next
去掉Start the MySQL at System Startup前面的勾,继续Next
备注:这页是配置MySQL的运行方式,第一个单选框表示是否将MySQL服务作为一个windows服务来运行,windows server name表示MySQL服务在windows server中的名称,第二个单选框表示是否在系统启动时自动启动MySQL,第三个单选框表示MySQL服务以哪个账户运行,什么都不用改。
列出配置项列表,点击Execute
等待配置完成,点击Finish
继续配置项,点击Next
备注:我这里显示的是MySQL Server 8.0.15已经配置完成,Samples and Examples 8.0.15 还是Ready to configure的状态。如果之前选择安装软件的步骤没选择Samples and Examples8.0.15 - X86,可能就没有下面的配置步骤了,直接跳过该配置。(没试过,只是猜测)
链接MySQL,输入之前填写的root用户密码,点击Check,成功链接后,点击Next
生成刚才所做的配置,点击Execute
等待配置完成,点击Finish
列出之前所做的配置状态,Status列均显示的Configuration complete。点击Next
去掉Start MySQL Workbench after Setup、Start MySQL Shell after Setup前面的勾,点击Finish
3.测试
点击开始菜单,找到MySQL 8.0 Command Line Clinet
输入root用户的登陆密码
输入show databases;(包括分号),有数据库列表的显示,说明数据库安装没问题。
4.MySQL的启动和停止
任务管理器->服务->找到MySQL80->鼠标右键
备注:MySQL80为之前配置的Windows Server Name填写的名称,MySQL 8.0默认是MySQL80
5.PHP支持MySQL
打开php/php.ini(这个文件是下载php之后将php.ini-development复制之后重命名的)
①;extension=php_mysqli.dll 去掉分号
②; extension_dir = "ext" 去掉分号,并改为你的php/ext所在目录( extension_dir = "D:\webwork\php\php_7.1.27\ext")
如果apache开着,更改php.ini配置后,需要重启apache。
备注:php.ini配置有问题会导致apache启动报错。
6.PHP访问数据库
6.1 mysqlTest.php
Apache24\htdocs(D:\webwork\apache\Apache24\htdocs)下新建文件mysqlTest.php,添加如下代码:
<?php
$db = new mysqli('localhost', 'root', 'rootPassword', 'world');
if (mysqli_connect_errno()) {
echo 'Error:Could not connect to database.Please try again later.';
exit;
}
// try {
// $db = new mysqli('localhost', 'root', 'rootPassword', 'world');
// } catch (Exception $e) {
// die("connect failed");
// }
$query = "select * from city";
$result = $db->query($query);
$resultNum = $result->num_rows;
echo "number : ".$resultNum;
?>
备注:这里用到了之前数据库安装时选择的Samples and Examples8.0.15 - X86,它会为数据库自动添加些默认的数据。如过数据库中没有world数据库,也没有city表,需要自己建立数据库和表。
6.2 启动Apache
6.3 浏览器地址栏输入:http://localhost:8080/mysqlTest.php
6.4 报错
会发现浏览器提示报错,主要是MySQL8.0密码加密规则改为了caching_sha2_password
6.5 解决报错
百度了下,大概是mysql远程访问权限的事,原因就是MySQL8.0的密码加密规则改了。
方法1:
点击开始菜单,找到MySQL 8.0 Command Line Clinet
输入root用户登陆密码
输入use mysql;(带分号),回车
输入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的root用户密码';
下面的截图是我根据下面的参考链接操作的步骤(记得FLUSH PRIVILEGES;),可以解决报错的问题,但后来发现好像不用这么复杂,直接修改密码加密规则就好了。
参考链接:
方法二:(没测过)
修改my.ini文件(Linux上为my.cnf)
路径:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
将default_authentication_plugin=caching_sha2_password修改为default_authentication_plugin=mysql_native_password
备注:
MySQL8.0之前的版本密码加密规则:mysql_native_password
MySQL8.0密码加密规则:caching_sha2_password
6.6 测试结果
改好后,再次在浏览器地址栏输入:http://localhost:8080/mysqlTest.php,没问题的话应该会显示
number : 4079
7.备注
① MySQL安装路径:C:\Program Files\MySQL
② PHP Web开发(Windows)—— Apache安装
③ PHP Web开发(Windows)—— PHP安装
④ 因为要操作数据库,以前工作时用的Navicat,先在看MySQL自己也出了对应了GUI。随便记录两张MySQL Workbench的打开用法。
双击C:\Program Files\MySQL\MySQL Workbench 8.0 CE\MySQLWorkbench.exe