MySQL 8.0安装以及初始化错误解决方法
MySQL 8.0 安装配置及错误排查
官网下载
mysql官网下载链接:https://dev.mysql.com/downloads/mysql/

- Select Operating System 中选择 “Red Hat Enterprise Linux / Oracle Linux”
- Select OS Version 中选择 “Red Hat Enterprise Linux / Oracle Linux 7(x86, 64-bit)”
- 点击Download(mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar)
CentOS7环境下的具体安装步骤
- 检测本地是否有mysql已存在的包:
rpm -qa | grep mysql
- 1
- 检测本地是否有mariadb已存在的包:
rpm -qa | grep mariadb
- 1
如果存在,则使用yum命令卸载:
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
- 1
- 创建一个文件夹,上传jar包到/opt/software/mysql:
mkdir /opt/software/mysql
- 1
上传包有xftp等工具
- 解压mysql jar包:
mkdir /opt/module/mysql
tar -xvf /opt/software/mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar -C /opt/module/mysql
- 1
- 2
- 查看解压后的文件:
ll /opt/module/mysql
- 1

- 利用rpm包安装mysql:
如官网所述:
In most cases, you need to install the mysql-community-server, mysql-community-client, mysql-community-libs, mysql-community-common, and mysql-community-libs-compat packages to get a functional, standard MySQL installation. To perform such a standard, basic installation, go to the folder that contains all those packages (and, preferably, no other RPM packages with similar names), and issue the following command:
依次安装MySQL的组件
- mysql-community-common
rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm
- 1
- mysql-community-libs
rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm --force --nodeps
- 1
- mysql-community-libs-compat
rpm -ivh mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm
- 1
- mysql-community-client
rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm --force --nodeps
- 1
- mysql-community-server
rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm --force --nodeps
- 1
安装完成后 可以查看已经安装的组件:
rpm -qa | grep mysql
- 1

- 启动mysql(初次启动mysqld,会自动进行初始化工作)
systemctl start mysqld
- 1
初始化后,会产生临时密码,查询指令如下:
cat /var/log/mysqld.log | grep password
- 1
- 登录MySQL服务:
mysql -uroot -p
- 1
输入产生的临时密码
- 更改密码
由于MySQL8.0 有密码验证组件,若希望设置简单的密码,需要修改服务验证条件,可设置的验证条件如官网所示:

# 密码检查等级,0/LOW、1/MEDIUM、2/STRONG
set global validate_password.policy=0;
# 密码的最短长度
set global validate_password.length=6;
# 密码至少要包含的小写字母个数和大写字母个数
set global validate_password.mixed_case_count=0;
# 设置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your password';
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 修改远程登录权限
USE mysql;
UPDATE mysql.user SET host = '%' WHERE user = 'root';
flush privileges;
SELECT host, user FROM user;
- 1
- 2
- 3
- 4
初始化MySQL发生错误的解决方法
使用初始化指令
mysqld --initialize --user=mysql
- 1
若发生错误,可能由于 /etc/my.cnf 中datadir指定的文件夹未清除,本机中为 /var/lib/mysql,具体的datadir查看本机配置文件中指定的路径。
vim /etc/my.cnf
- 1
删除datadir指定的文件夹
rm -rf /var/lib/mysql
- 1
清楚 log-error 指定的日志文件中的内容, 本机中为 /var/log/mysqld.log,具体的datadir查看本机配置文件中指定的路径。
注意,如果删除 /var/log/mysqld.log 了该文件,需要重新创建该文件,并修改文件访问权限
rm -f /var/log/mysqld.log
touch /var/log/mysqld.log
chmod 777 /var/log/mysqld.log
- 1
- 2
- 3
最后重新初始化即可!
忘记数据库root密码
主要通过无密码启动的方式启动mysqld服务,然后进入数据库清除原始密码的加密值,然后再次重启服务,进入数据库设置密码。
- 修改配置文件并重启服务
vim /etc/my.cnf
# 在my.cnf中最后一行添加 skip-grant-tables
skip-grant-tables
# 重启服务
systemctl restart mysqld.service
- 1
- 2
- 3
- 4
- 5
- 进入数据库清除原始root密码的加密记录
# password直接回车
mysql -u root -p
# 清除记录
UPDATE mysql.user SET authentication_string='' WHERE user='root';
SELECT host, user, authentication_string, plugin FROM mysql.user;
- 修改配置文件,再次重启服务,然后进入数据库设置密码
vim /etc/my.cnf
删除 skip-grant-tables
# 重启服务
systemctl restart mysqld.service
# password直接回车
mysql -u root -p
# 设置root密码 我的host项已经修改为%了。如果没有修改,则使用:ALTER user 'root'@'localhost' IDENTIFIED BY '123456'
grant system_user on *.* to 'root';
ALTER user 'root'@'%' IDENTIFIED BY '123456';
# WITH mysql_native_password 这个可以根据自己需要的认证方式修改(caching_sha2_password、mysql_native_password 两种)
ALTER user 'mysql.infoschema'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER user 'mysql.session'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
ALTER user 'mysql.sys'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# 完成修改,重启服务。
systemctl restart mysqld.service
MySQL 8.0安装以及初始化错误解决方法的更多相关文章
- 安卓安装提示:Android SDK requires Android Developer Toolkit version 21.1.0 or above. (错误解决方法)
安卓安装提示:Android SDK requires Android Developer Toolkit version 21.1.0 or above. (错误解决方法) 主要是因为版本号不正确 ...
- mysql创建外链失败1005错误解决方法
mysql创建外链失败1005错误解决方法 错误号:1005错误信息:Can't create table 'webDB.#sql-397_61df' (errno: 150)解决方法 错误原因有四: ...
- mysql中Table is read only错误解决方法
今天再我把数据库data 拷贝到linux 下运行程序 ”mysql中Table is read only的解决“ 出现这样的问题,查询资料. linux下执行如下命令即可 #mysqladmin - ...
- windows 10 服务组件安装出现0x80070422错误解决方法
问题描述: windows 10通过控制面板->程序->启用或关闭Windows 功能安装Windows服务或组件时,出现0x80070422错误,提示服务禁止或未启用 问题产生原因: ...
- Navicat for mysql远程连接数据库详解(1130错误解决方法)
用Navicat for mysql连接数据库测试下连接 如果出现1130错误 错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to ...
- Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
一.背景 最近在使用本地的tomcat进行运行项目的时候,发现出现了如题所述的问题.不知道什么原因,经过努力解决了该问题. 二.解决步骤 右击项目---选择属性---选择targeted runtim ...
- AppStore安装APP发生错误解决方法
打开网络偏好设置 高级 -> DNS -> + -> 114.114.114.114
- MongoDB下载+安装+配置+错误解决方法
下载 官网下载: https://www.mongodb.com/download-center/community Server=>Download 安装 下载完成后安装 建议下载根目录(下过 ...
- mysql(8.0连接navicat发生的错误解决方法)
关于mysql(8.0连接navicat发生的错误解决方法)数据库安装图形化界面无法更改加密的方式导致无法连接问题为解决; Alter user 'root'@'localhost' identifi ...
随机推荐
- Java 数组存储机制
数组是一种引用类型. 数组用来存储类型相同的一组数据,一旦初始化完成,其所占的空间也确定下来了,即使清除某个元素,其所占用的空间仍然存在,即,数组的长度不能被改变,且数组只有在分配空间后才能使用. 数 ...
- Mysql8.0主从配置
环境Centos7.6 ,mysql8.0 Mysql主从配置 1.1 配置环境: 本人在vm下做的实验,linux版本是centos的7.0版本,然后Mysql版本为此时较新的8.0.13版本.做最 ...
- Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/zeppelin/server/ZeppelinServer : Unsupported major.minor version 52.0
在启动Zeppelin时遇到了该问题: [root@quickstart bin]# ./zeppelin-daemon.sh restart Please specify HADOOP_CONF_D ...
- Lesson12——NumPy 字符串函数之 Part1:字符串操作函数
NumPy 教程目录 1 NumPy 字符串函数 以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作. 它们基于 Python 内 ...
- 3.k8s核心概念
k8s的核心概念 一. Pod pod,中文翻译过来叫豆荚,如下图.我们都知道豆荚,一个豆荚里面有很多豆子.豆荚就可以理解为pod,一个个的豆子就可以理解为容器.pod和容器的关系是一个pod里面可以 ...
- Dapp开发petshop——truffle官方例程
truffle-pet-shop pet-shop是truffle的官方例程. 之前参考https://learnblockchain.cn/2018/01/12/first-dapp/的中文教程,但 ...
- netty介绍与构成
什么是 Netty Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架.Netty 提供高性能和可扩展性,让你可以自由地专注于你真 ...
- spring IOC的理解,原理与底层实现?
从总体到局部 总 控制反转:理论思想,原来的对象是由使用者来进行控制,有了spring之后,可以把整个对象交给spring来帮我们进行管理 DI(依赖注入):把对应的属性 ...
- 树莓派PICO刷入MicroPython内核的两种方式
一.MicroPython简介 MicroPython 是 Python 3编程语言的精简高效实现,其中包括 Python 标准库的一小部分,并且经过优化,可在微控制器和受限环境中运行. 可以在 25 ...
- 二,配置jdk,安装tomcat.以及tomcat项目的发布
1.jdk配置 一.环境准备 Windows10 jdk-9.0.1 二.下载并安装JDK 选择一个适合自己的JDK版本下载并安装即可,具体流程不详述. 三.环境变量配置 1.右键桌面上"我 ...