RedHat 7.6 安装 Mysql 8.0.17
# 查看是否安装mysql
rpm -qa | grep -i mysql
# 如果有,需要卸载旧版本Mysql及相关依赖包
rpm -e MySQL-client-***
# 查看开机启动服务列表状态
systemctl list-unit-files
# 禁用mysql服务
systemctl disable mysqld
# 查找mysql文件夹 find / -name *mysql*
whereis mysql
# 删除 对应的目录下所有文件 注意不要把有用的删了
rm -rf /use/lib/mysql
卸载系统预置的mariadb,才能安装mysql。因为centos 和 redhat 内部集成了mariadb, 如果不卸载mariadb,安装mysql时会和mariadb文件冲突.
# 查询是否已安装的mariadb rpm -qa|grep mariadb
# 卸载mariadb,文件名为上述命令查询出来的文件 rpm -e --nodeps 文件名
# 重启系统
reboot
创建下载目录
mkdir /usr/local/mysql8 cd /usr/local/mysql8
Mysql官方地址:
https://dev.mysql.com/downloads/mysql/
# 下载安装包 wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar # 解压 tar -xvf mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar # 按照以下顺序安装 # -i 安装 -v 列出更多详细信息 -h 安装时列出hash标记 rpm -ivh mysql-community-common-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.17-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-compat-8.0.17-1.el7.x86_64.rpm rpm -ivh mysql-community-devel-8.0.17-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.17-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.17-1.el7.x86_64.rpm
错误:依赖检测失败:perl(JSON) 被 mysql-community-test-8.0.17-1.el7.x86_64 需要
因为缺少perl-JSON依赖包.
#查找perl-JSON相关包名称 yum list perl-JSON 或 yum list |grep "perl-JSON" # 安装perl-JSON yum install -y perl-JSON-2.59-2.el7.noarch
#重新安装
rpm -ivh mysql-community-test-8.0.17-1.el7.x86_64.rpm
mysql安装完成.
# 查看mysql服务运行状态 systemctl status mysqld # 启动mysqld服务 systemctl start mysqld # 查看临时密码 grep -i password /var/log/mysqld.log # 使用临时密码登录 mysql -u root -p'密码'
修改root用户默认密码 我执行 以下语句一直是等待输入的状态, 不太熟悉mysql, 查了一个多小时没查到什么问题, 问了下群里告诉我说 少了 ; , 输入; 就可以了.
# 缺少 ; 语句后不加; 不会返回执行结果, 显示等待输入, 一定要加; 表示语句结束. 显示等待输入, 此时输入; 回车就可以了.
alter USER 'root'@'localhost' IDENTIFIED BY 'DEFg@ABC1'
# 正确的语句
alter USER 'root'@'localhost' IDENTIFIED BY 'DEFg@ABC1';
修改root用户远程登录
#切换数据库 use mysql; # 查看用户是否允许远程登录 localhost 仅本地 % 可以远程登录 select host,user, authentication_string, plugin from user; # 修改root用户可远程登录. update user set host = "%" where user='root';
使用远程工具连接mysql8.0, 账户密码都正确但是报错. 查了下具体是因为:之前版本MySQL的密码认证插件为“mysql_native_password”,新版本改为:“caching_sha2_password”.
#修改为旧的密码认证方式. use mysql; alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'DEFg@ABC1'; flush privileges;
修改完就可以使用远程管理工具连接mysql8.0.17了.
一个重要的命令:
#退出mysql
quit
重要的目录:
datadir=/var/lib/mysql
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 查看运行进程 ps -ef | grep mysqld # 查看端口 netstat -tulpn |grep mysqld 服务操作: # 启动服务 systemctl start mysqld # 重启服务 systemctl restart mysqld # 加入开机启动 systemctl enable mysqld; # 停止运行服务 systemctl stop mysqld ; # 加入开机禁用 systemctl disable mysqld; # 查看状态 systemctl status mysqld; # 查看httpd的开机启动状态列表 systemctl list-unit-files;