记录:CentOS安装配置MySQL8

news/2024/12/29 21:50:36/

目录

    • 1、安装 MySQL8
      • 1.1、安装 `mysql` 和 `mysql-devel`
      • 1.2、安装 `mysql-server`
      • 1.3、安装完成查看已安装的包
      • 1.4、重启mysql服务
      • 1.5 、查看初始化的密码
      • 1.6、登录MYSQL
    • 2、安装完成后的配置
      • 2.1、修改密码
      • 2.2、修改密码规则
      • 2.3、开启用户远程访问
      • 2.4、Navicat测试连接
    • 3、忘记密码怎么办
      • 3.1、修改配置文件
      • 3.2、重启mysql服务,登录mysql(这时不需要密码)
      • 3.3、将默认的 root 密码置空,并退出命令行
      • 3.4、删除配置文件中的skip-grant-tables
      • 3.5、配置密码
    • 4、问题解决
    • 5、MYSQL卸载脚本

  • CentOS 7.9 64位
  • MySQL 8
  • 之前都是用docker安装这次想学下alibaba/canal改配置有点麻烦,所以虚拟机安装mysql记录一下安装过程和细节
  • Windows下安装可以看我的:windows安装mysql8

1、安装 MySQL8

1.1、安装 mysqlmysql-devel

yum install mysql
yum install mysql-devel

1.2、安装 mysql-server

wget http://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
rpm -ivh mysql80-community-release-el7-5.noarch.rpm
yum install mysql-community-server出现:全部都y
Is this ok [y/d/N]: y
Is this ok [y/d/N]: y

1.3、安装完成查看已安装的包

rpm -qa |grep -i mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ioc6oeoI-1667818471990)(https://cdn.jsdelivr.net/gh/Tame-complexity/tuchuang/blog/image-20221107153511695.png)]

1.4、重启mysql服务

安装完成后重启mysql服务后会生成初始化密码

service mysqld restart #重启mysql
或
systemctl restart mysqld
systemctl status mysqld #查看mysql服务状态

mysql8初次安装后,需要先通过cat /var/log/mysqld.log | grep password 命令查看密码,修改密码时,需要 符合长度为8,且含有数字、小写或大写字母、特殊字符

1.5 、查看初始化的密码

[root@localhost ~]# cat /var/log/mysqld.log | grep password
2022-10-24T19:38:34.611116Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: iiaE%3BdnfUJ   #iiaE%3BdnfUJ这就是初始的密码

1.6、登录MYSQL

# 登录mysql并输入密码,输入密码是看不见的
mysql -u root -p

image-20221107154248528

2、安装完成后的配置

2.1、修改密码

# mysql8 修改密码方式
alter user 'root'@'localhost' identified by '密码'; 
#密码必须含有数字、小写、大写字母、特殊字符,八位

image-20221107154523258

2.2、修改密码规则

要是希望密码可以设置简短一点可以调整密码验证规则

先查看密码验证规则

SHOW VARIABLES LIKE 'validate_password%';

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oYvmUXEZ-1667818471992)(https://cdn.jsdelivr.net/gh/Tame-complexity/tuchuang/blog/image-20221107154955140.png)]

MySQL 8.0 调整密码验证规则:这和mysql5.x有点差别(5.7中.改成_)

mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)mysql> set global validate_password.length=1;
Query OK, 0 rows affected (0.00 sec)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vx3GuHnP-1667818471992)(https://cdn.jsdelivr.net/gh/Tame-complexity/tuchuang/blog/image-20221107183810636.png)]

image-20221107183844563

这样就可以设置简短的密码了

alter user 'root'@'localhost' identified by '密码';    #唯一要求就是密码要大于4位mysql> alter user 'root'@'localhost' identified by 'admin';
Query OK, 0 rows affected (0.00 sec)

2.3、开启用户远程访问

use mysql  #使用mysql数据库
update user set host = '%' where user = 'root';   #开启用户远程访问
flush privileges;    #命令刷新刚才修改的权限,使其生效,`最好每次修改配置都执行下这条命令`

flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。 MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rQF3B3G7-1667818471993)(https://cdn.jsdelivr.net/gh/Tame-complexity/tuchuang/blog/image-20221107160102719.png)]

这里需要放行防火墙或安全策略组

防火墙配置可以看我的: 防火墙配置

2.4、Navicat测试连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o5iy4vlX-1667818471994)(https://cdn.jsdelivr.net/gh/Tame-complexity/tuchuang/blog/image-20221107160257985.png)]

3、忘记密码怎么办

要是默认密码一直输入不正确进不去mysql控制台或者mysql忘记密码了就修改配置文件免密登录

[root@localhost ~]# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

3.1、修改配置文件

编辑 MySQL 的配置文件vim /etc/my.cnf,加入下面这句skip-grant-tables,保存并退出,然后重启mysql服务。

vim /etc/my.cnf
#按i进入编辑模式shift+g跳到尾行在尾部加入
skip-grant-tables
#按Esc:wq保存退出

image-20221107161014843

3.2、重启mysql服务,登录mysql(这时不需要密码)

systemctl restart mysqld

image-20221107161154750

3.3、将默认的 root 密码置空,并退出命令行

use mysql;
update user set authentication_string='' where user='root';

image-20221107161441844

3.4、删除配置文件中的skip-grant-tables

删除或注释刚才/etc/my.cnf 文件最后的 skip-grant-tables

vim /etc/my.cnf 注释完毕后,保存退出

image-20221107161540125

重启mysql服务, 提示输入密码时直接敲回车,因为我们刚才已经将密码置为空了。

systemctl restart mysqld 
mysql -uroot -p 

3.5、配置密码

使用 ALTER 修改 root 用户密码

ALTER user 'root'@'localhost' IDENTIFIED BY 'admin';

4、问题解决

  • 问题一

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 报错这个是没有注释掉或删除,或者没有重启mysql服务

  • 问题二

mysql> ALTER user ‘root’@‘localhost’ IDENTIFIED BY ‘admin’;

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

您的密码不符合当前政策要求,看上方2.2部分
  • 问题三

要是改了远程登录再用

mysql> ALTER user ‘root’@‘localhost’ IDENTIFIED BY ‘admin’;

ERROR 1396 (HY000): Operation ALTER USER failed for ‘root’@‘localhost’

报错,改用一下命令修改密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'admin';
#admin是密码
  • 问题四

ERROR 1193 (HY000): Unknown system variable ‘validate_password_length’

MySQL8.0中无效。‘validate_password_policy’ 变量不存在,

解决

8.0用

set global validate_password.policy=0;
set global validate_password.length=1;

5.7用

set global validate_password_policy=0;
set global validate_password_length=1;

5、MYSQL卸载脚本

最后附上删除mysql脚本

vim mysqldel.sh

复制下面的内容进去

rpm -aq | grep -i mysql >rmsql.sh
sed -i -e 's/^/yum remove -y /' rmsql.sh
chmod +777 rmsql.sh
find / -name mysql >my.sh
sed -i -e 's/^/rm -rf /' my.sh
chmod +777 my.sh
./rmsql.sh 
./my.sh 
rm -f my.sh
rm -f rmsql.sh
rm -rf /etc/my.cnf
rm -rf /var/log/mysqld.log

给予执行权限

chmod +777 mysqldel.sh

执行

./mysqldel.sh

删除mysqldel.sh

rm -f mysqldel.sh

检测是否还有未卸载的mysql包

rpm -qa |grep -i mysql

http://www.ppmy.cn/news/402160.html

相关文章

基于Centos7系统搭建Redis集群之主从复制(新手教程)

最近没多少事,就想着搭建个redis集群玩玩,毕竟听起来也是很高大上的东西,但是经过自己的断断续续的搭建,也感觉不是那么难,肯定也只是刚刚入门,搭建的东西也比较简单,并没有触及到里面更深入的内…

【genius_platform软件平台开发】第七十二讲:linux系统驱动开发之-patchelf修改动态库链接器的方法

linux系统驱动开发之-patchelf修改动态库链接器的方法 1. patchelf 命令熟悉1.1 安装1.2 运行1.3 应用-使用自定义的动态库目录1.4 查看rpath信息1.5 设置rpath信息 2. 同名动态库修改应用2.1 第一个动态库文件2.2 应用程序2.3 第二个动态库文件2.4 使用patchelf 工具修改 1. p…

VMware启动时提示我已移动或我已复制该虚拟机

一、VMware启动时提示“我已移动该虚拟机”或“我已复制该虚拟机”,选择“我已复制该虚拟机” 1、如果选择 我已移动该虚拟机 的话网卡的MAC地址会保持不变: 因为始终只有一个MAC地址,不会造成冲突,所以虚拟机间通信没问题。 2、…

linux不清楚软件包名字,技术|Shilpa Nair 分享的 RedHat Linux 包管理方面的面试经验...

Shilpa Nair 刚于2015年毕业。她之后去了一家位于 Noida,Delhi 的国家新闻电视台,应聘实习生的岗位。在她去年毕业季的时候,常逛 Tecmint 寻求作业上的帮助。从那时开始,她就常去 Tecmint。 有关 RPM 方面的 Linux 面试题 所有的问…

Elasticsearch:实用 BM25 - 第 1 部分:分片如何影响 Elasticsearch 中的相关性评分

作者:Shane Connelly 背景 在 Elasticsearch 5.0 中,我们切换到 Okapi BM25 作为我们的默认相似度算法,这是用于对与查询相关的结果进行评分的算法。 在本博客中,我不会过多地介绍 BM25 与替代措施,但如果你想了解 B…

13.Centos软件包管理(rpm,yum,dnf),源码编译安装

基础知识 软件运行和编译 ABI:Application Binary InterfaceWindows与Linux不兼容ELF(Executable and Linkable Format)PE(Portable Executable)库级别的虚拟化:Linux: WINEWindows: CygwinAPI:Application Programmin…

Linux rpm和yum/dnf安装方式及区别

rpm是以一种数据库记录的方式来将将所需要的套件安装在Linux主机的一套管理程序。也就是说Linux系统中存在一个关于rpm的数据库,它记录了安装的包与包之间的依赖相关性。rpm包是预先在Linux主机上编译好并打包的文件,安装起来非常快捷。下面就介绍rpm常用…

搭建DNF台服之开启拍卖行

目录 一、搭建DNF台服之服务器篇 二、搭建DNF台服之数据库 三、搭建DNF台服之配置客户端 四、搭建DNF台服之无限疲劳 五、搭建DNF台服之链接数据库 六、搭建DNF台服之开启拍卖行 七、搭建DNF台服之[真外网架设]篇 自年前发布的在群晖NAS中手动搭建DNF台服服务端系列教程…