转载注明出处:https://blog.csdn.net/zouguo1211/article/details/83867896
前言
系统信息:CentOS Linux release 7.5.1804 (Core)
MySQL版本:mysql-5.7
接下来的操作均是在root权限下安装配置,如果使用非root账户,涉及权限要求,请使用sudo命令
由于在CentOS下装MySQL5.7踩了不少坑,打算重新走一遍,记录下来成功流程;
卸载自带的Mariadb
三条命令即可
rpm -qa|grep maria*
yum -y remove maria*
rm -rf /var/lib/mysql/*
如果之前下载安装过mysql,请也先卸载干净
下载安装yum源
选择适合自己系统的版本
点击Download
复制链接地址,wget命令下载yum源
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
输入命令安装源:
yum -y install mysql80-community-release-el7-1.noarch.rpm
安装Mysql服务器
上述安装的源,默认安装Mysql8.0,我们需要修改下配置,来指定安装5.7版本:
命令行输入:
vim /etc/yum.repos.d/mysql-community.repo
保存写入;
然后输入命令安装服务器==(此过程需要联网)==:
yum -y install mysql-community-server
启动Mysql服务
完成后,输入命令启动mysql服务,并查看状态:
systemctl start mysqld
systemctl status mysqld
启动成功,接下来进入数据库,首先要找到初始化的root默认密码;
使用默认密码登陆
输入命令:
grep "password" /var/log/mysqld.log
使用root账户和默认密码登陆:
修改默认密码
此时,由于5.7版本开始的安全机制需要修改掉默认密码才能对数据库进行操作;
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
调整密码安全级别
由于5.7以后使用了validate-password插件,如果没有修改密码安全级别的话,新密码过于简单就会报错
如果是自己学习使用,不想设置过于复杂的密码的话,我们可以降低级别
set global validate_password_policy=0;
set global validate_password_length=1;
设置完这两句之后,便可以设置简单密码了;
具体说明请参考官网6.5.3密码验证插件
创建新用户并开启远程连接
创建用户
首先创建一个用户,由于5.7中mysql.user表没有password字段而是改为了authentication_string
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
其中host如果设为localhost表示在本地登陆,如果设为%,表示在任意ip都可登陆;
授权与撤销授权
首先创建一个数据库demoDB
CREATE DATABASE demoDB;
然后为root@%用户授权demoDB库的所有权限,并刷新权限;
GRANT all privileges ON demoDB.* TO 'root'@'%' IDENTIFIED BY 'panda';
flush privileges;
这里的all privileges指所有权限,可以用部分权限名称代替(这里不作重点讲授)
这里的*指代demoDB库的所有表
查看用户授权信息
SHOW GRANTS FOR 'username'@'host';
撤销授权命令
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
远程登陆验证
先打开防火墙的3306端口,并重启防火墙:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld.service
连接测试:
连接成功: