MySQL 8.0 的安装与调试
2019-12-16河北科技师范学院赵学作
河北科技师范学院 赵学作
MySQL 8.0版本拥有体积小巧、读取和存储速度快的特点,而且完全脱离MylSAM 存储引擎,许多中小型网站为了降低网站总体拥有成本而选择了MySQL 8.0作为网站数据库。
Windows 服务器中安装MySQL 8.0
第一步:准备工作。
如果这台服务器中已安装有MySQL 老版本,应该先停止MySQL 服务并卸载,卸载时应该注意路径问题。
如果服务器系统是Win2008 及其以下版本,还应该下载并安装VC2015 补丁:
第二步:下载Windows 64 位 的mysql 压 缩 包:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-winx64.zip,并解压到一个文件夹中,如:D:mysql8,然后添加解压目录中mysqld.exe 所在bin目录到环境变量:
右键“计算机”→“属性”→“高级系统设置”→“环境变量”,在“用户变量”的“Path”路径中添加“;D:mysql8in”。
第三步:添加my.ini 配置文件,内容如下:
第四步:在解压目录D:mysql8 下 执 行 mysqld--initialize 初始化数据库,如果一开始就存在data文件夹请先删除它。执行完成后,临时密码就是在新生成的data 文件夹中的扩展名为.err 文件主名。
第五步:执行mysqld--install 安装MySQL 服务,安装完成后,可以从系统服务中启动MySQL 服务。
第六步:在命令窗口中用mysql 命令测试是否可以正常登录。
如果不能登录并提示:Access denied for user‘root'@'localhost' (using password:YES),说明密码有误,解决方式如下:
1.以管理员的身份进入到cmd 命令窗口,并cd 到MySQL8 安装路径的bin 目录下。
2.关闭MySQL 服务:net stop mysql。
3.使用 --skip-granttables 配置项的方式,跳过权限验证进入mysql。
注意:MySQL8.x 版本不支持直接修改my.ini 配置文件的内容,会导致“MySQL 服务无法启动,服务没有报告任何错误”。
命令:mysqld --console--shared-memory --skipgrant-tables
图1 查看安装版本
说明:若缺少 --sharedmemory,则会提示 错误:“TCP/IP,--sharedmemory,or -name-pipe should be configured on NT OS”。
4.保持第3 步骤窗口不关闭,再以管理员身份打开另一个cmd 窗口并进入到MySQL 安装路径下的bin 目录,输入mysql,此时便能成功登录。
5.刷新权限:flush privileges;
6.修改密码:alert user 'root'@'localhost'identified by '新密码';
7.修改成功后,正常启动MySQL 服务,使用用户名、密码进行登陆校验是否设置成功。
启动MySQL 服务:net start mysql
登陆命令:mysql -uroot-p 密码
CentOs7 服务器中安装MySQL 8.0
第一步:准备工作。
查看MySQL 安装,如果这台服务器中安装有MySQL老版本,应该先停止MySQL服务并卸载,如图1。
执行完上述命令之后再次执行rpm -qa|grep -i mysql,会发现已经卸载完成,如果存在etc/my.cnf 这个文件的话一定要删除掉。
第二步:下载64 位的MySQL 压缩包:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz,并上传到/usr/local 目录中。
第三步:直接执行解压命令,完成解压,解压之后会得到一个文件夹,mysql-8.0.16-linuxglibc2.12-x86_64,为方便操作可以改名成mysql,然后再建立数据文件夹data。
第四步:
建立相关用户组及用户(如果已经存在,可以忽略)
图2 初始化数据
图3 账号认证方式
需要注意的是,MySQL8 默认的认证插件为Caching_sha2_password,原先采用的是mysql_native_password,这使得原来的Navicat、phpMyAdmin 等连接出现认证失败,我们还需要把root帐号的认证方式改回原来的mysql_native_password 方式并重新设置密码,从而保证Navicat、phpMyAdmin 等 能 正常连接,MySQL 8.0 的授权写法跟以前版本是有所区别的: