学习笔记022——Ubuntu 安装 MySQL8.0版本踩坑记录

目录

1、查看可安装 MySQL 版本

2、Ubuntu安装 MySQL8.0

3、MySQL8.0 区分大小写问题

4、MySQL8.0 设置sql_mode 

5、MySQL8.0 改端口33060(个人遇到问题)


1、查看可安装 MySQL 版本

## 列出可用的MySQL版本(列出所有可用的MySQL版本以及其安装状态)
apt-cache policy mysql-server

2、Ubuntu安装 MySQL8.0

# 更新
sudo apt-get update

# 安装指定版本的MySQL
sudo apt install mysql-server=<version>

# 修改配置。
sudo mysql_secure_installation

# 根据引导提示,进行选择:
Validate Password Component … (使用密码强度校验组件) n
New Password:(设置新密码,并重复一遍)
Remove anonymous users(删除匿名用户)y
Disallow root login remotely(拒绝远程root账号登录)n
Remove test database and access to it(移除test数据库) y
Reload privilege tables now(现在就重新载入权限表) y


# 登录
sudo mysql -uroot -p

# 插入root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by'你的密码';

# 退出
exit


# 编辑mysql配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf


# 注释下行(开启远程访问)
bind-address=127.0.0.1


# wq保存退出

# 登录
sudo mysql -uroot -p

# 在mysql中依次执行下述sql语句
use mysql;
update user set Host='%' where User='root';
select User, Host from user;
# 查询结果
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | %         |
| uav              | %         |
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
+------------------+-----------+
# 刷新
flush privileges;

3、MySQL8.0 区分大小写问题

如果需要设置不区分数据大小写,需要注意的是:mysql8之后,lower_case_table_names参数要在初始化数据库时设置,已经初始化的数据库无法修改了!

只能删除已经初始化的数据,重新初始化时加上参数lower_case_table_names!!!!

mysql 8.0默认区分大小写,但有些系统要求大小写不区分,但已经有数据库的情况就比较麻烦,因为改为不区分大小写需要重建数据库,没有其它办法!

PS:特别注意!!!执行以下操作之前,一定要记得备份重要数据库!出现损失概不负责!

PS:特别注意!!!执行以下操作之前,一定要记得备份重要数据库!出现损失概不负责!

PS:特别注意!!!执行以下操作之前,一定要记得备份重要数据库!出现损失概不负责!

PS:特别注意!!!执行以下操作之前,一定要记得备份重要数据库!出现损失概不负责!

 关闭服务
sudo systemctl stop mysql.service

# 删除目前的所有数据库,
# 再次强调!一定要记得备份数据库!!!!数据丢失不负责!!!!
# 再次强调!一定要记得备份数据库!!!!数据丢失不负责!!!!
# 再次强调!一定要记得备份数据库!!!!数据丢失不负责!!!!
# 再次强调!一定要记得备份数据库!!!!数据丢失不负责!!!!



# 删除相关
sudo rm -rf /var/lib/mysql
sudo mkdir /var/lib/mysql
sudo chown mysql:mysql /var/lib/mysql
sudo chmod 700 /var/lib/mysql


# 编辑配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf 
# 将 lower_case_table_names=1  加到 [mysqld]  (必须添加,不然重新初始化mysql会失败)
lower_case_table_names=1


# lower_case_table_names=1表示不区分大小写


# 重新初始化mysql(会生成新的数据库密码)相当于重装mysql了
sudo mysqld --defaults-file=/etc/mysql/my.cnf --initialize --lower_case_table_names=1 --user=mysql --console


# 启动服务
sudo systemctl start mysql.service


# 查看临时root密码
sudo grep 'temporary password' /var/log/mysql/error.log


# 输入上面获得的临时root密码
sudo mysql -u root -p


# mysql要求修改密码,这里主动改一下
alter user 'root'@'localhost' IDENTIFIED BY '你的新密码';


# 根据向导删除远程链接等
sudo mysql_secure_installation


# 根据引导提示,进行选择:
Validate Password Component … (使用密码强度校验组件) n
New Password:(设置新密码,并重复一遍)
Remove anonymous users(删除匿名用户)y
Disallow root login remotely(拒绝远程root账号登录)n
Remove test database and access to it(移除test数据库) y
Reload privilege tables now(现在就重新载入权限表) y


# 检查效果
sudo mysql -u root -p
SHOW VARIABLES LIKE 'lower_case_%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   |
| lower_case_table_names | 1     |
+------------------------+-------+


#################  远程连接问题  ########################
# 编辑mysql配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf


# 修改
bind-address=0.0.0.0


# 进入数据库
sudo mysql -uroot -p


# 在mysql中依次执行下述sql语句
use mysql;

update user set Host='%' where User='root';

select User, Host from user;

# 查询结果
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | %         |
| uav              | %         |
| debian-sys-maint | localhost |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
+------------------+-----------+
# 刷新
flush privileges;

4、MySQL8.0 设置sql_mode 

# 编辑配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

# 插入下面配置:
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

说明在mysql8中,有的人会重启失败。可能是sql_mode中你添加了 NO_AUTO_CREATE_USER


那么,就把 sql_mode 中的 NO_AUTO_CREATE_USER 去掉,就成功解决了。


原因 NO_AUTO_CREATE_USER 在mysql8中已经不支持。

服务重启后,修改后校验:

systemctl restart msyql


mysql -uroot -p


select @@global.sql_mode;

5、MySQL8.0 改端口33060(个人遇到问题)

本人安装MySQL8.0版本时,有需求要将端口由默认是3306改成33060。

发现改死活改不了。只要改成了33060服务就重启失败。

以下是本人的最终解决方案:

1、MySQL8.0除了默认的3306端口之外,还会有个33060端口。3306端口是IPv4,而33060是IPv6。
2、mysqlx=0 只要在Linux系统下的/etc/mysql/mysql.conf.d/mysqld.cnf中,增加这个"mysqlx=0",
3、然后重启,33060和IPv6的字样,从进程中消失了。
4、它的原理就是,MySQL8.0增加了IPv6支持,然后这个配置项可以关闭掉。

vim  /etc/mysql/mysql.conf.d/mysqld.cnf

如上图。将端口改成33060后,在添加一个  mysqlx=0的配置。

格式最好和图中的一样。

然后重启服务就能修改成功了。

🆗了,这就是我的踩坑记录。祝各位好运!

生命不息,折腾不止!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/919338.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】树——链式存储二叉树的基础

写在前面 书接上文&#xff1a;【数据结构】树——顺序存储二叉树 本篇笔记主要讲解链式存储二叉树的主要思想、如何访问每个结点、结点之间的关联、如何递归查找每个结点&#xff0c;为后续更高级的树形结构打下基础。不了解树的小伙伴可以查看上文 文章目录 写在前面 一、链…

qt之QFTP对文件夹(含嵌套文件夹和文件)、文件删除下载功能

一、前言 主要功能如下&#xff1a; 1.实现文件夹的下载和删除&#xff0c;网上很多资料都是单独对某个路径的文件操作的&#xff0c;并不能对文件夹操作 2.实现目标机中含中文名称自动转码&#xff0c;有些系统编码方式不同&#xff0c;下载出来的文件会乱码 3.实现ftp功能…

集群聊天服务器(7)数据模块

目录 Mysql数据库代码封装头文件与源文件 Mysql数据库代码封装 业务层代码不要直接写数据库&#xff0c;因为业务层和数据层的代码逻辑也想完全区分开。万一不想存储mysql&#xff0c;想存redis的话&#xff0c;就要改动大量业务代码。解耦合就是改起来很方便。 首先需要安装m…

手机远程控制电脑,让办公更快捷

在数字化办公的浪潮下&#xff0c;远程控制软件已成为连接工作与生活的桥梁。它使得用户能够通过一台设备&#xff08;主控端&#xff09;来操作另一台设备&#xff08;被控端&#xff09;&#xff0c;无论它们是否位于同一局域网内。这种软件广泛应用于远程办公、手机远程控制…

面向FWA市场!移远通信高性能5G-A模组RG650V-NA通过北美两大重要运营商认证

近日&#xff0c;全球领先的物联网整体解决方案供应商移远通信宣布&#xff0c;其旗下符合3GPP R17标准的新一代5G-A模组RG650V-NA成功通过了北美两家重要运营商认证。凭借高速度、大容量、低延迟、高可靠等优势&#xff0c;该模组可满足CPE、家庭/企业网关、移动热点、高清视频…

72项!湖北省2024年度第二批省级科技计划项目拟立项项目公示!

本期精选 SCI&EI ●IEEE 1区TOP 计算机类&#xff08;含CCF&#xff09;&#xff1b; ●EI快刊&#xff1a;最快1周录用&#xff01; 知网(CNKI)、谷歌学术期刊 ●7天录用-检索&#xff08;100%录用&#xff09;&#xff0c;1周上线&#xff1b; 免费稿件评估 免费匹配…

LeetCode 热题 100 回顾

目录 一、哈希部分 1.两数之和 &#xff08;简单&#xff09; 2.字母异位词分组 &#xff08;中等&#xff09; 3.最长连续序列 &#xff08;中等&#xff09; 二、双指针部分 4.移动零 &#xff08;简单&#xff09; 5.盛最多水的容器 &#xff08;中等&#xff09; 6…

Chrome 浏览器 131 版本开发者工具(DevTools)更新内容

Chrome 浏览器 131 版本开发者工具&#xff08;DevTools&#xff09;更新内容 一、使用 Gemini 调试 CSS Chrome DevTools 现在推出了一个新的实验性 AI 辅助面板&#xff0c;可以与 Gemini 聊天并获得帮助来调试 CSS。 在 Elements 面板中&#xff0c;右键点击一个元素并选…

网络编程-002-UDP通信

1.UDP通信的简单介绍 1.1不需要通信握手,无需维持连接,网络带宽需求较小,而实时性要求高 1.2 包大小有限制,不发大于路径MTU的数据包 1.3容易丢包 1.4 可以实现一对多,多对多 2.客户端与服务端=发送端与接收端 代码框架 收数据方一般都是客户端/接收端 3.头文件 #i…

websocket身份验证

websocket身份验证 前言 上一集我们就完成了websocket初始化的任务&#xff0c;那么我们完成这个内容之后就应该完成一个任务&#xff0c;当客户端与服务端连接成功之后&#xff0c;客户端应该主动发起一个身份认证的消息。 身份认证proto 我们看一眼proto文件的内容。 我…

初识C++(1)

C是在C语言的基础之上&#xff0c;容纳进去了面向对象编程思想&#xff0c;并增加了许多有用的库以及编程范式等。 在C语言中&#xff0c;变量、函数和类的名称存在于全局作用域中&#xff0c;因此可能会发生许多冲突。比如&#xff1a; #include<stdio.h> #include<…

Axure9生成的阅览页面如何自动展开左侧页面导航?

问题 Axure9生成的阅览页面&#xff0c;默认情况是自动折叠的&#xff0c;如何自动展开左侧页面导航&#xff1f; 解决 Axure工具&#xff1a;发布 > 预览选项 > 播放器 > 打开页面列表

LeetCode:700. 二叉搜索树中的搜索

目录 题目描述: 代码: 题目描述: 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 null 。 示例 1: 输入&#xff1a;root [4,2,7,1,3…

架构图解析:如何构建高效的微服务系统

在当今的数字化浪潮中&#xff0c;构建高效、灵活且可扩展的系统已成为企业的重要目标。微服务架构作为一种先进的软件设计模式&#xff0c;通过将复杂的应用程序分解为一系列小型、独立的服务&#xff0c;显著提升了系统的灵活性、可扩展性和维护性。本文将通过解析微服务系统…

【Android、IOS、Flutter、鸿蒙、ReactNative 】实现 MVP 架构

Android Studio 版本 Android Java MVP 模式 参考 模型层 model public class User {private String email;private String password;public User(String email, String password) {this.email = email;this.password = password;}public String getEmail() {return email;}…

【海思Hi3519DV500】双目网络相机套板硬件规划方案

Hi3519DV500双目网络相机套板是针对该芯片设计的一款 IP 编码板 PCBA&#xff0c;硬件接口支持双目sensor 接入&#xff0c;SDIO3.0 接口、USB2.0、USB3.0、UART 接口以及丰富的 IO 扩展应用&#xff0c;可根据各种使用场景设计相应扩展板&#xff0c;丰富外围接口&#xff0c;…

百度世界2024:智能体引领AI应用新纪元

在近日盛大举行的百度世界2024大会上&#xff0c;百度创始人李彦宏以一场题为“文心一言”的精彩演讲&#xff0c;再次将全球科技界的目光聚焦于人工智能&#xff08;AI&#xff09;的无限可能。作为一名科技自媒体&#xff0c;我深感这场演讲不仅是对百度AI技术实力的一次全面…

SPP:空间金字塔池化

今天水一篇博客&#xff0c;讲讲SPP池化结构&#xff1b;那这是个什么东西呢&#xff1f;它的作用又是什么呢&#xff1f;在了解它之前我们先简单了解一下大部分的神经网络&#xff1b; 引入&#xff1a; 在大部分的神经网络中&#xff0c;都将神经网络分为Backbone主干网络、…

Ubuntu Linux使用前准备动作_使用root登录图形化界面

Ubuntu默认是不允许使用 root 登录图形化界面的。这是出于安全考虑的设置。但如果有需要&#xff0c;可以通过以下步骤来实现使用 root 登录&#xff1a; 1、设置 root 密码 打开终端&#xff0c;使用当前的管理员账户登录系统。在终端中输入命令sudo passwd root&#xff0c…

ubuntu下连接了192.168.1.x和192.168.2.x两个网络段,如何让这个两个网段互相通信?

在 Ubuntu 上连接两个网络段&#xff08;如 个人终端A 192.168.1.10 和 个人终端B 192.168.2.10&#xff09;&#xff0c;需要配置路由和网络转发功能&#xff0c;使这两个网段能够相互通信。以下是实现方法&#xff1a; 步骤 1&#xff1a;确认网络配置 1. 确保 Ubuntu 机器…