检查系统是否已经安装MySQL
卸载CentOS 7自带的MariaDB
检查系统是否已经安装MariaDB,CentOS 7默认自带MariaDB,需要覆盖。
查看命令:rpm -qa | grep mariadb
出现如下界面,可以看到系统中自带的mariadb文件,执行删除命令删除掉MariaDB。
删除命令:yum -y remove + 【上图的文件名】
或者rpm -e --nodeps+ 【上图的文件名】
出现如下界面删除成功
开始安装
更新yum源
更新命令:yum -y update
下载MySQL8.0 rpm软件源
下载命令:
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
出现如下界面,下载完成。
此处可能报错,原因是找不到wget命令,wget命令不可用。执行 yum -y install wget
安装wget命令
安装软件源
安装命令:
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
安装MySQL8.0
安装命令:yum install -y mysql-community-server
出现如下界面,安装成功
注意,到此处,MySQL8已经安装完成,但是由于MySQL8之后,Linux系统中存在表名大小写区分的问题,需要在初始化(安装完成第一次启动)MySQL数据库之前修改一下配置文件,避免出现大小写错误。
修改配置文件规避大小写问题
需要修改的配置文件在CentOS7的/etcf目录下,文件名my.cnf
直接执行编辑命令:vim /etc/my.cnf
或者 vi /etc/my.cnf
添加配置:lower_case_table_names=1
如下图:
修改完成,保存退出。
启动MySQL完成基本配置
启动
systemctl start mysqld
查看mysql初始密码
grep 'temporary password' /var/log/mysqld.log
通过初始密码登录mysql
mysql -u root -p
根据提示输入刚才的初始密码。
修改初始密码
ALTER USER root'@'localhost' IDENTIFIED BY '新密码';
由于mysql的验证策略,无法设置简单密码,先设置复杂一下,然后再更改设置,重新设置密码。
修改密码验证策略
查看SHOW VARIABLES LIKE 'validate_password.%';
修改 set global validate_password.policy=0;
设置复杂度为0
set global validate_password.length=6;
设置最小长度6
set global validate_password.check_user_name=off;
设置用户名密码可以相同
重新设置密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘root1234;
开放远程访问
给予root权限
grant all privileges on *.* to 'root'@'%';
出现如下错误,该命令在mysql8之前可以使用,在mysql8之后没有与mysql系统中的用户表中没有,对应root @ %的用户,所以我们需要手动创建一个。
查看用户表
use mysql;
select user,host from user;
可以看到并没有root @ %的用户
手动创建
CREATE USER 'root'@'%' IDENTIFIED BY 'root1234';
再次执行授权命令
grant all privileges on *.* to 'root'@'%';
授权成功。
刷新权限
FLUSH PRIVILEGES;
此时MySQL8.0已经全部安装完成。重启使用客户端连接即可。
如果客户端无法连接可能因为mysql8新的加密规则的问题,修改为原来的加密规则即可。登录mysql执行:ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘刚才设置的新密码’;见下图
如果还无法连接,检查端口是否开放。