新建个MySQL目录:(路径可自己定)
执行命令 mkdir -p /mytest/mysql/
进入此目录:
执行命令 cd /mytest/mysql/
如果linux已联网,可以直接执行命令
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar
或者去官网(链接:MySQL :: Download MySQL Community Server)下载好再上传上去 :
执行命令
## 解压到当前目录下
tar -xvf mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar
## 解压到指定目录下
tar -xvf mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar -C 指定目录路径
解压出来有9个包
mysql-community-client-8.0.27-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.27-1.el7.x86_64.rpm
mysql-community-common-8.0.27-1.el7.x86_64.rpm
mysql-community-devel-8.0.27-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.27-1.el7.x86_64.rpm
mysql-community-libs-8.0.27-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.27-1.el7.x86_64.rpm
mysql-community-server-8.0.27-1.el7.x86_64.rpm
mysql-community-test-8.0.27-1.el7.x86_64.rpm
注:mysql-community-test-8.0.27-1.el7.x86_64.rpm 测试包用不到,可删掉
总结:总的来说,按官方文档安装 比 按顺序手动安装 来得简洁,不用手动删除内置数据库mariaDB,不用一个一个包地装,推荐使用 第1种 按官方文档安装。
在大多数情况下,你需要安装 mysql-community-server
, mysql-community-client
, mysql-community-libs
, mysql-community-common
,和 mysql-community-libs-compat
包获得的功能,标准的MySQL安装。执行以下一条命令即可。
执行命令 sudo yum install mysql-community-{server,client,common,libs}-*
提示 Is this ok [y/d/N]: 时 输入 Y
当安装mysql-community-libs-8.0.27-1.el7.x86_64.rpm时,会报错如下:
所以得把内置的mariaDB先删除。
2.1.1. 查询mariaDB
执行命令 rpm -qa | grep mariadb
2.1.2. 删除mariaDB
执行命令 rpm -e --nodeps ***(*** 为软件名)
按顺序一个一个的执行以下命令:(部分有依赖关系,顺序不能乱)
rpm -vih mysql-community-common-8.0.27-1.el7.x86_64.rpm
rpm -vih mysql-community-client-plugins-8.0.27-1.el7.x86_64.rpm
rpm -vih mysql-community-libs-8.0.27-1.el7.x86_64.rpm
rpm -vih mysql-community-libs-compat-8.0.27-1.el7.x86_64.rpm
rpm -vih mysql-community-client-8.0.27-1.el7.x86_64.rpm
rpm -vih mysql-community-embedded-compat-8.0.27-1.el7.x86_64.rpm
rpm -vih mysql-community-server-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.27-1.el7.x86_64.rpm --force --nodeps (可不安装)
注:最后一个命令rpm -ivh mysql-community-devel-8.0.27-1.el7.x86_64.rpm --force --nodeps。
rpm -ivh mysql-community-devel-8.0.27-1.el7.x86_64.rpm需要依赖 pkgconfig(openssl).
就是要开启ssl认证,没必要。
官方文档上说mysql-community-devel是MySQL 数据库客户端应用程序的开发头文件和库。没啥用,也不会在linux上使用MySQL客户端。
所以安不安装都可以。
需要安装时加上 --force --nodeps是强制安装时不检查依赖。
执行命令 systemctl start mysqld
安装时'root'@'localhost'
创建了 一个超级用户帐户。超级用户的初始密码已设置并存储在错误日志文件中。
查找初始密码,执行命令 sudo grep 'temporary password' /var/log/mysqld.log
登录,执行命令 mysql -uroot -p ,提示输入密码时输入查到的初始密码
执行命令 ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
注:密码策略
validate_password
要求密码至少包含1个大写字母、1个小写字母、1个数字和1个特殊字符,并且密码总长度至少为8个字符。
即时生效,下次登录得用新密码了;
执行命令:
// 开通防火墙
firewall-cmd --zone=public --add-port=3306/tcp --permanent
// 重启防火墙
firewall-cmd --reload
先登录mysql
再切换数据库:use mysql
然后修改用户host: update user set host='%' where user='root';
注1:'%'代表所有主机。
注2:如果不想修改用户,可以创建个新的用户:create user 'root'@'%' identified by '你的密码';
执行命令: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
注1:如果有报错ERROR 1410 (42000): You are not allowed to create a user with GRANT,请`select * from user`查询后再执行这个命令
注2:有些人喜欢使用 GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION命令,这命令相当于创建并授权用户,在8.0以上版本是不支持了,创建和授权命令得分开执行。
执行命令:flush privileges;
sqlyog版本低的话登录会报错plugin caching_sha2_password could not be loaded
原因分析: 由于MySQL8.0以上默认使用了caching_sha2_password代替了旧版本的mysql_native_password密码验证插件,
解决方案:升级连接工具或者修改密码验证插件。修改插件步骤如下:
执行命令 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Root*123456';
再执行命令 flush privileges;
官方密码验证插件升级说明:
MySQL :: MySQL 8.0 Reference Manual :: 2.11.4 Changes in MySQL 8.0
官方文档链接:MySQL :: MySQL Installation Guide :: 7.4 Installing MySQL on Linux Using RPM Packages from Oracle