在linux版本为centos7-x86_64_Minimal-1804的系统进行mysql8二进制软件的安装,对安装过程作出采坑的记录,以供后续参考。(linux7版本,RedHat\CentOS\Fedora系列的系统均可参考该安装教程)
一.下载rpm安装包
wget http://repo.mysql.com/mysql80-community-release-el7-2.noarch.rpm
(参考yum仓库中的名称,仓库链接https://dev.mysql.com/downloads/repo/yum/)
成功下载后,将在执行该命令的目录下,生成一个mysql80-community-release-el7-2.noarch.rpm文件
二.安装rpm文件
rpm -ivh mysql80-community-release-el7-2.noarch.rpm
在执行这个步骤时,遇到了两个问题:
①file ... from install of ... conflicts with file from package ...
解决方法:
rpm -ivh --replacefiles mysql80-community-release-el7-2.noarch(注意没有.rpm后缀)
②Delta RPMs disabled beceuse /usr/bin/applydeltarpm not installed
执行以下安装命令:
yum install applydeltarpm
如果遇到以上两个问题,按照解决命令解决后,需要重新执行:
rpm -ivh mysql80-community-release-el7-2.noarch.rpm
三.更新依赖
yum update
四.正式安装mysql
yum -y install mysql-server(此过程需要下载的文件包接近380M,保证网络畅通。先前由于网络不稳定导致多次安装不成功。)
执行该命令时遇到一个错误:
①file /etv/my.cnf from install of mysql-community-server-8.0.14-1.el7.x86_64 confilcts with file from package mariadb-libs-1:5.5.56-2.el7.x86_64
解决方法:
查找mariadb-libs已存在的软件版本
rpm -qa | grep mariadb-libs
执行删除mariadb-libs
rpm -ev --nodeps mariadb-libs-5.5.52-1.el7.x86_64
五.权限设置
要允许mysql安装目录允许写入
chown -R mysql:mysql /var/lib/mysql
六.初始化mysql
mysqld --initialize-insecure (设置数据库是一个空密码)
mysql --initialize (随机生成数据库密码)
查看随机密码,需要在mysql的log-error指向的日志文件中查看
vim /var/log/mysqld.log
(通过mysql配置文件/etc/my.cnf,查看log-error指向的错误日志路径)
七.启动MySQL
systemctl start mysqld (systemctl start/restart/stop mysqld,分别对应“启动/重启/停止”mysql服务命令)
在启动时遇到以下问题,导致启动失败:
①Job for mysqld.service failed because the control process exited with error code.
进入MySQL的日志路径中查看具体的异常原因
vim /var/log/mysqld.log
日志error指出ibdata1文件无法写入,需要给mysql安装目录赋予写入权限:
chown -R mysql:mysql /var/lib/mysql
(先前由于把chown -R mysql:mysql /var/lib/mysql 写成 chown mysql:mysql -R /var/lib/mysql导致授予写入权限没有生效)
重新启动即可(systemctl restart mysqld)
成功启动后将没有任何提示,需要查看mysql的运行状态。
八.查看Mysql运行状况
systemctl status mysqld
九.登录mysql
mysql -u root -p[密码]
①.在登录时遇到了mysql临时密码验证失败的问题:
由于在初始化mysql时,使用了生成临时密码的命令。在登录时遇到登录验证错误的问题,密码是在/var/log/mysqld.log中查看的,却一直无法正常登录。
解决方法:
修改/etc/my.cnf文件,去掉default-authentication-plugin的注释,并在关键字[mysqld]下增加skip-grant-tables项(跳过登录密码验证)
修改my.cnf后需要重启mysql:
systemctl restart mysqld
重新启动后密码随便输入即可登录mysql客户端:
十.修改root账户的密码
alter user 'root'@'localhost' identified by 'password';
flush privileges;
①.如果root的密码为空时,执行sql命令将会提示密码设置
You must reset your password using ALTER USER statement before executing this statement.
十一.创建允许远程访问的用户
create user heavent@'%' identified by '123456';
flush privileges;
十二.远程主机使用mysql视图管理软件访问
这里可能会遇到认证插件不一致导致无法远程加载的问题:
1251 - Client does not support authentication protocol requested by server;consider upgrading MySQL client
修改账号的认证方式即可:
alter user 'heavent'@'localhost' identified with mysql_native_password by 'password'
flush privileges;