因为最近接手了一个项目,其中一项就是在ARM架构下的fedor系统中安装mysql,本以为要用最老套的一种移植数据库的方式安装数据库,结果发现之前在ubuntu本来就可以移植成功的mysql,在fedora下总是移植失败,报的错误是明明有文件,却找不到相应的文件夹,最后才发现,内核不一样,所以肯定搜不到,于是就换了一种方案,找到rpm包,来安装,本次安装的是mysql8.0版本,但是却不知道8.0和之前5.X版本差异太大了,所以按照以前安装5.x的方式安装,会各种报错,接下来是步骤:
1 如果之前有安装过mysql,那么就先删除所有关于mysql文件,通过命令:whereis mysql,rm -rf +加文件和 执行rpm -qa|grep mysql
yum remove mysql删除mysql的数据库文件:删除/var/llib/mysql目录
2 将rmp文件加入路径中,执行
yum install -y mysql80-community-release-el7-2.noarch.rpm
执行cd /etc/yum.repos.d/在相关路径下有两个源mysql-community.repo和mysql-community-source.repo,有了这两个源,就可以安装mysql了。
3 yum install mysql-community-server安装数据库
4 systemctl start mysqld.service启动数据库时候,会报有文件找不到的错误,在我安装过程中,是因为文件没有删除干净,当我把文件删除成功后,重新做,就可以启动了(注意我的每次都要开机要启动一次)
5 然后systemctl status mysqld.service来查看状态
6 通过cat /var/log/mysqld.log来查看初始密码,因为8.0和之前的不一样,是先有一个初始密码,然后登陆后,再修改成自己的密码
7坑就来了!!!!修改密码的错误 ,以前修改密码是,登陆到mysql,然后update user set Password=password(“123456”) where User=‘root’;来修改,但是在8.0的时候,修改密码就不是这样修改了。在mysql 5.7.9以后废弃了password字段和password()函数;authentication_string:字段表示用户密码。
7.1首先select host,user,authentication_string from mysql.user;来查询用户和密码,其中host: 允许用户登录的ip‘位置,那么如果是%表示可以远程;user:当前数据库的用户名;authentication_string: 用户密码(后面有提到此字段);
7.2 如果当前root用户authentication_string字段下有内容,先将其设置为空,否则直接进行二步骤。use mysql;
update user set authentication_string=’’ where user=‘root’设置为空
然后设置密码使用ALTER修改root用户密码,方法为 ALTER user ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’。如下:1
ALTER user ‘root’@‘localhost’ IDENTIFIED BY ‘Cliu123#’
此处有两点需要注意:
1、不需要flush privileges来刷新权限。
2、密码要包含大写字母,小写字母,数字,特殊符号,至少8位。
修改成功; 重新使用用户名密码登录即可;
在这里我又遇见了一个坑:密码错误1045错误!!!因为修改密码用的是数据库语句,所以我们需要登陆数据库的时候跳过输入密码这一关,那么就是在etc/ my.cnf中添加 skip-grant-tables,接下来登陆mysql,就可以直接进了(my.cnf是数据库的配置文件),然后进入数据库后ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘’ABc123@qq.com 更改数据库,然后flush privileges;刷新权限,这个时候就修改成功了
3远程登陆:1关闭防火墙
2 8.0的远程登陆和5.0不一样,所以不能直接用
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;来授权,8.0必须先要创建一个root:CREATE USER ‘root‘@‘%‘ IDENTIFIED BY ‘ABc123@qq.com‘;
grant all privileges on . to ‘root‘@‘%‘;
当远程连接的时候,会报Authentication plugin ‘caching_sha2_password’ cannot be loaded错误,这个时候需要修改加密规则,因为8.0之后的加密规则和之前的不一样,所以通过ALTER USER ‘root’@’%’ IDENTIFIED BY ‘ABc123@qq.com’ PASSWORD EXPIRE NEVER;来修改规则,最后发现,第一张是修改之前的,第二张是修改之后的,明显发现plugin字段不一样,此时,远程就授权好了,就可以远程连接了。
参考:https://www.jb51.net/article/142025.htm
https://blog.csdn.net/u011182575/article/details/80821418
基于arm架构下的,fedora系统安装mysql8.0
最新推荐文章于 2024-08-12 09:18:24 发布