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

目录

1、查看可安装 MySQL 版本

2、Ubuntu安装 MySQL8.0

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

4、MySQL8.0 设置sql_mode 

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

6、caching_sha2_password 问题

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


# 登录(一定要root权限)
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的配置。

格式最好和图中的一样。

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

6、caching_sha2_password 问题

当遇到 Unable to load authentication plugin 'caching_sha2_password'  问题,解决方法如下:

1、登录Linux服务器。

2、登录MySQL命令:mysql -uroot -p,输入登录密码。

3、查询:
select host,user,plugin from mysql.user;

+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
+-----------+------------------+-----------------------+
4、修改plugin。

alter user 'root'@'%' identified by '密码' password expire never;
alter user 'root'@'%' identified with mysql_native_password by '密码';
flush privileges;

5、再次查看:
select host,user,plugin from mysql.user;

+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | mysql_native_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
+-----------+------------------+-----------------------+

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

生命不息,折腾不止!

### 回答1: Apache Flume是基于数据流的分布式系统,专门用于从各种非结构化数据源收集,聚合和移动大量数据,它支持多种数据源的连接和数据交付到多种数据存储库。该软件是Apache软件基金会下的一个顶级项目,它是一个稳定、高效和可靠的工具,可以帮助企业实现数据的有效管理和分析。 apache-flume-1.9.0-bin.tar.gz下载是通过Apache官网提供的链接来进行下载的。下载完成后需要进行安装和相关配置,以便能够与其他数据源进行连接和数据交付。该软件的安装和配置较为复杂,需要具备一定的计算机技能和数据管理知识。 下载完成后,用户需要解压该文件,并在用户设置的文件夹中配置flume-env.sh和flume.conf文件。配置后,即可启动Flume服务,进行数据的收集和聚合操作。在使用过程中,用户可以根据实际需要,选择不同的数据源和文件存储方式,以满足企业数据管理和分析的需求。 总之,Apache Flume是一个强大的数据管理和分析工具,具有广泛的应用和丰富的功能。但在使用前,用户需要详细了解该软件的安装和配置过程,并具备一定的技能和知识储备,以确保其能够正确地使用和操作。 ### 回答2: Apache Flume是一个分布式、可靠、高效的数据采集、聚合和传输系统,在数据处理中应用广泛。而apache-flume-1.9.0-bin.tar.gz则是Apache Flume的官方发布版本,其中bin表示此版本是可执行程序,tar.gz是一种压缩格式。 要下载apache-flume-1.9.0-bin.tar.gz,首先需要前往Apache Flume的官网,然后找到下载页面。在下载页面中可以选择下载镜像站点以及下载apache-flume-1.9.0-bin.tar.gz的链接。用户可以根据自己的网络情况、所在地区等因素选择镜像站点并点击相应的链接进行下载。 下载完成后,用户可以使用解压软件将apache-flume-1.9.0-bin.tar.gz解压到任何想要安装的目录中。解压完成后,在bin目录下可以找到flume-ng的可执行文件,即可尝试运行Flume。 值得注意的是,Apache Flume是一个开源项目,因此用户可以访问其源代码,也可以参与到项目的开发中来。该软件的最新版本、文档等信息也可在官网上获得。 ### 回答3: Apache Flume是一款优秀的分布式高可靠日志收集与聚合工具,可以将数据从各种不同的数据源采集并集中到集中式的Hadoop数据仓库中。而Apache Flume 1.9.0-bin.tar.gz是Apache Flume的最新版本程序包,包含了Flume各种组件的可执行文件、示例配置文件、JAVA API等组件。 如果要下载Apache Flume 1.9.0-bin.tar.gz,可以先访问Apache Flume的官网,找到需要下载的地方,可以选择使用浏览器直接下载或使用命令行工具wget下载到本地,解压缩后将Flume各个组件配置好后就可以使用了。 需要注意的是,安装Apache Flume还需要为其配置相应的环境(例如配置JDK环境变量等),并进行一些必要的安全设置。而且对于不同的数据源与Hadoop生态系统版本,Apache Flume部署和配置也会略有不同。因此,在使用过程中,应该先学习Apache Flume的相关知识,并根据情况灵活应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值