阿⾥ECSCentos8安装RPM安装mysql-8.0.23-1.el8.x86_64.。。。在阿⾥云上部署mysql8,按mysql57⽂档试了下,⼀直报错,边查边试,搞了半天。
前置操作:
卸载mysql,简单写。
rpm -qa|grep mysql
看有没有已安装的rpm,显⽰的都⽤ rpm -e --nodeps 包名 删掉
find / -name mysql
看有没有关于mysql的⽂件,有的都 rm -rf
1. 下载安装
官⽹下载,注意选版本,红帽8 + mysql-8.0.23-1.el8.x86_64.rpm-bundle.tar
2. xshell rz传到/usr/local/mysql
3. 解压:
[root@john mysql]# tar -xvf mysql-8.0.23-1.el8.x86_64.rpm-bundle.tar
解压完⽬录长这样:
4. rpm安装
这些包彼此依赖,尽量按下⾯顺序装,不按顺序的话也⾏,安装失败会提⽰前置需要的依赖包。
在解压包下⾯执⾏:
rpm -ivh mysql-community-common-8.0.23-1.el8.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.23-1.el8.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.23-1.el8.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.23-1.el8.x86_64.rpm --nodeps --force
最后⼀步报了这个,就按要求,把/usr/lib/tmpfiles.f⽂件⾥,这两个配置改⼀下,/var去掉,以为/var下都是存在内存⾥的。
还有看到报server这个包未通过verify,那要重新下server包
最后看⼀眼,装好了。
5. 初始化,各种设置服务启动
[root@john mysql]# mysqld --initialize
接下来,注册成为服务并启动
[root@john mysql]# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe"for details.
这⾥报有问题,journalctl -xe 到ctl⽇志⾥看⼀眼
Mar 29 22:12:41 john systemd[1]: mysqld.service: Main process exited, code=exited, status=1/FAILURE
Mar 29 22:12:41 john systemd[1]: mysqld.service: Failed with result ‘exit-code’.
Mar 29 22:12:41 john systemd[1]: Failed to start MySQL Server.
这个code=exited,status=1 有很多问题会导致这个,这⾥journal没有更多了,所以要看mysql的⽇志
下⾯到⽇志位置,打开看⼀眼
find / -name mysqld.log
vim /var/log/mysqld.log
意思说,起了innodb初始化以后,发现ibdata1不可写,挂了,到ibdata1 ,改成可写
改完以后 systemctl start mysqld 还是报错 跟上⾯⼀样,重复⼀遍,再进⽇志看⼀眼
vim /var/log/mysqld.log
意思说,这三个⽂件权限不够打不开,这个⽬录也不⾏,find / -name mysql.ibd到它在哪,
在这了,进来这个⽬录,把这个⽬录下属主属组都改成mysql
chown mysql:mysql /var/lib/mysql/*
然后再systemctl start mysqld
已经跑起来了
设置开机⾃启
systemctl enable --now mysqld
mysql安装时会⽣成初始密码,通过初始密码登录,登陆后要修改密码
cat /var/log/mysqld.log |grep password
到此为⽌,我们就可以⽤⾃⼰的密码 ,root账号登录了。
mysql下载后为什么不是一个安装包
接下来,由于要⽤sqlyog navicat之类的远程查看数据库,所以要做⼀下修改:
mysql8跟之前的密码加密规则不⼀样,具体⽬前不太懂,但按以下操作就好了;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码' PASSWORD EXPIRE NEVER;#修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';#更新⼀下⽤户的密码
FLUSH PRIVILEGES;#刷新权限,必须刷新
现在密码搞定了,剩下远程连接,select user,host from mysql.user可以看到,现在只允许localhost上⽤root登录,把root对应的localhost改成%就⾏了,通配符,匹配所有主机。
结束搞定。
我⽤的是sqlyog 可以正常连接了,同时不⽤跳过验证表。
总结⼀下,msyql8跟以前的5.6 5.7很不⼀样,装的时候遇到问题多看⽇志 /var/log/mysqld.log

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。