rpm方式安装 mysql 8.0.28 (可适用麒麟操作系统(aarch64))
其他学习参考地址:https://blog.csdn.net/aiyin_yin/article/details/119534587
mysql 下载地址:https://dev.mysql.com/downloads/mysql/
先删除原有的mysql
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs
rpm -e mariadb-server --nodeps
如果有搜索到,就使用 yum remove 包名 删除
# 解压
tar -xvf mysql-8.0.28-1.el8.aarch64.rpm-bundle.tar
# 请按这个顺序安装
rpm -ivh mysql-community-common-8.0.27-1.el8.aarch64.rpm
rpm -ivh mysql-community-client-plugins-8.0.27-1.el8.aarch64.rpm
rpm -ivh mysql-community-libs-8.0.27-1.el8.aarch64.rpm
rpm -ivh mysql-community-client-8.0.27-1.el8.aarch64.rpm
rpm -ivh mysql-community-server-8.0.27-1.el8.aarch64.rpm
#查看服务状态
systemctl status mysqld
# 初始化
mysqld —initialize —console
#授权目录
chown -R mysql:mysql /var/lib/mysql/
#启动
systemctl start mysqld
#此时在MySQL服务的状态:
#、修改MySQL登录
1、直接使用忘记密码的方法
vim /etc/my.cnf
skip-grant-tables #添加无密码登录
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
2、查看临时密码
cat /var/log/mysqld.log
然后登录MySQL
#mysql -uroot -p #无需输入密码,直接回车即可。
切换到mysql,将密码置空:
#use mysql;
#update user set authentication_string=' ' where user='root';
然后刷新权限:
#flush privileges;
设置加密规则并更新新密码设置远程连接,授权(直接复制这些SQL语句你的密码会更新为123456)
#ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; 授权
#alter user 'root'@'localhost' identified by '123456';
#grant all privileges on *.* to "root"@'localhost';
#update user set host='%' where user='root';
#flush privileges;
设置成功后,进入my.cnf删除刚才添加的skip-grant-tables,重启mysql服务,使用新密码登录
#systemctl stop mysqld
#systemctl start mysqld
使用Navicat for MySQL连接即可
cat /var/log/mysqld.log
----------------------------------------------:如果上面更该密码方式不对 可以试试这个
MySQL8修改密码步骤
1,先在配置文件里加上 skip-grant-tables 重启mysql后免密登陆进入mysql
2,查看当前认证方式以及用户,默认是 caching_sha2_password 认证,
select host, user, authentication_string, plugin from user;
3,如果2是默认认证方式,则修改为密码认证为 mysql_native_password先,
在配置文件里加上 default_authentication_plugin=mysql_native_password 后再次重启mysqld,免密登陆
4,不能直接修改密码,会报错。要先清空root密码:
update user set authentication_string='' where user='root';
刷新:flush privileges;
5,退出mysql, 删除/etc/my.cnf文件里的 skip-grant-tables ,再一次重启 mysql 服务,再次登陆的时候是空密码登陆:
mysql -u root -p
登陆后即可修改密码了:
ALTER USER 'root'@'%' IDENTIFIED BY '123456';
flush privileges;
完成。
---------------------------------------------------------------------如果还不行
#1,set password='123456'; 直接用这个命令是修改当前用户密码。
#2,如果出现:Mysql8 提示:ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s) for this operation
原因:
MySQL8版本中新增了一个system_user帐户类型,由于root用户没有SYSTEM_USER权限,导致错误出现。
为root添加权限:
grant system_user on *.* to 'root';
flush privileges;
#3,SET PASSWORD FOR 'putong'@'%' = '123456';
#刷新权限:flush privileges;
SELECT user, authentication_string FROM user;这个命令是看用户密码的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构