前言
记录在KylinV10上离线安装最新Mysql8.0.32,以及所遇坑
一、准备
1、卸载mariadb
如果系统内存在自带的旧版MariaDB,直接安装MySQL,会和MariaDB的文件冲突。为了保险起见,先卸载自带的MariaDB,再安装MySQL。
#查找mariadb
rpm -qa|grep -i mariadb
#卸载mariadb
sudo yum remove mariadb mariadb-server
#再次查看
rpm -qa|grep -i mariadb
#还有就继续删
rpm -e --nodeps 找到mariadb相关的
例如:sudo rpm -e --nodeps mariadb-connector-c-3.0.6-7.ky10.x86_64
一不做二不休,删的彻底点
whereis mariadb
#使用命令 rm -rf xxx 依次删除以上文件
这回删干净了
2、删除mysql相关文件
删除系统自动的旧版mysql相关文件,避免和新的冲突
#查找mysql软件相关
rpm -qa|grep -i mysql
#使用sudo rpm -ev --nodeps 查到的相关软件删除
sudo rpm -ev --nodeps perl-DBD-MySQL-4.046-6.ky10.x86_64
sudo rpm -ev --nodeps qt5-qtbase-mysql-5.11.1-11.p01.ky10.x86_64
sudo rpm -ev --nodeps python2-mysqlclient-1.3.12-8.ky10.x86_64
#查找mysql相关文件
whereis mysql
#使用命令 rm -rf xxx 依次删除以上文件
这回该删的都删了
3、下载mysql8.0.3.2
mysql官网
下载后,上传至服务器上
二、安装mysql8.0.3.2
解压mysql的tar包
tar -xvf mysql-8.0.32-1.el7.x86_64.rpm-bundle.tar
严格按顺序执行
rpm -ivh mysql-community-common-8.0.32-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-plugins-8.0.32-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.32-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.32-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-icu-data-files-8.0.32-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.32-1.el7.x86_64.rpm --nodeps --force
查看一下mysql版本,检查是否成功安装
mysql --version
报错:
mysqld: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory
解决:
下载compat-openssl10-1.0.2o-3.el8.x86_64.rpm,上传后,安装
rpm -i compat-openssl10-1.0.2o-3.el8.x86_64.rpm
再次查看mysql版本,检查是否成功安装
三、配置mysql
mysqld --initialize --user=mysql
- 为了保证数据库目录与文件的所有者为mysql登录用户,如果你是以root身份运行mysql服务,需要执行下面的命令初始化;
- 说明:–initialize选项默认以“安全”模式来初始化,则会为root用户生成一个密码并将该密码标记为过期,登录后你需要设置一个新的密码,生成的临时密码会往日志中记录一份。
第一次,查看一下初始化密码
cat /var/log/mysqld.log
此时,我们mysql服务还没启动,所以我们首次登录
mysql -uroot -p
Enter password:录入初始化密码
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
如:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;
开放外部访问刷新权限
#切换成mysql
use mysql;
# 所有机器都能访问root用户
update user set host="%" where user="root";
# 重新加载权限
FLUSH PRIVILEGES;
检查一下
查看所有的数据库
show databases;
查看mysql的data所在位置
SHOW GLOBAL VARIABLES LIKE '%datadir%';
修改端口
vim /etc/my.cnf
查看端口
show global variables like 'port';
如果修改端口无效,试着去关闭SELinux,或者修改my.cnf,自定义的my.cnf可能需要指定配置文件去执行,这与mysql启动默认找配置文件的顺序有关
跳过权限验证
(忘记密码时,可以使用,使用mysql,回车进入,进行修改密码)
#查看mysql状态
systemctl status mysqld
#启动
systemctl start mysqld
#停止
systemctl stop mysqld.service
#重启
systemctl restart mysqld.service
运行
停止