CentOS7配置MySQL
一、准备工作
1. FinalShell SSH工具
1.1 下载安装
- 官网下载:finalshell官网
1.2 连接服务器
2. 服务器软件检查
-
查看是否已安装mariadb
rpm -qa|grep mariadb
-
卸载
rpm -e --nodeps 文件名
-
查看是否已安装libaio
rpm -qa|grep libaio
-
没有安装libaio,则执行:
yum -y install libaio
-
-
查看是否安装numactl
rpm -qa|grep numactl
-
没有则执行:
yum -y install numactl
-
-
检查wget是否已安装:
which wget
-
如果没有安装wget,则执行:
yum install wget
-
-
在根目录下创建data目录:
mkdir /data cd /data
二、下载安装MySQL
1. 下载
-
官网下载:MySQL官网
-
可以选择下载到本地:不建议!因为占本地磁盘内存!
-
服务器通过
wget
下载MySQL数据库语法:wget https://dev.mysql.com//Downloads/MySQL-版本/mysql压缩包名称.tar
wget https://dev.mysql.com//Downloads/MySQL-8.1/mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar
2. 安装
-
拆分
tar
包tar -xvf mysql压缩包名称.tar
-
安装(
按顺序执行
)rpm -ivh --nodeps mysql-community-client-8.1.0-1.el7.x86_64.rpm rpm -ivh --nodeps mysql-community-client-plugins-8.1.0-1.el7.x86_64.rpm rpm -ivh --nodeps mysql-community-common-8.1.0-1.el7.x86_64.rpm rpm -ivh --nodeps mysql-community-debuginfo-8.1.0-1.el7.x86_64.rpm rpm -ivh --nodeps mysql-community-devel-8.1.0-1.el7.x86_64.rpm rpm -ivh --nodeps mysql-community-embedded-compat-8.1.0-1.el7.x86_64.rpm rpm -ivh --nodeps mysql-community-icu-data-files-8.1.0-1.el7.x86_64.rpm rpm -ivh --nodeps mysql-community-libs-8.1.0-1.el7.x86_64.rpm rpm -ivh --nodeps mysql-community-libs-compat-8.1.0-1.el7.x86_64.rpm rpm -ivh --nodeps mysql-community-server-8.1.0-1.el7.x86_64.rpm rpm -ivh --nodeps mysql-community-server-debug-8.1.0-1.el7.x86_64.rpm rpm -ivh --nodeps mysql-community-test-8.1.0-1.el7.x86_64.rpm
3. 配置
-
创建组、用户:
可能已经存在,只是为了防止不存在的情况,导致后续步骤授权出错
groupadd mysql useradd -g mysql mysql
-
数据目录授权
chown -R mysql:mysql /var/lib/mysql/
-
启动并设置开机自启
systemctl start mysqld.service && systemctl enable mysqld.service
-
查看状态及版本
systemctl status mysqld.service mysqladmin --version
4. 开放端口
-
检查端口是否开放:
firewall-cmd --query-port=端口号/tcp
-
开放端口:
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
-
重启防火墙生效配置
firewall-cmd --reload
-
最后再检查一下端口是否已开放:
firewall-cmd --query-port=端口号/tcp
5. 登入MySQL
mysql -u root -p
-
首次安装未修改过密码,因此需要查看生成的临时密码:
grep "A temporary password is generated for root@localhost" /var/log/mysqld.log
5. 修改root用户密码
- 不能使用5.7版本的update语句了 set password=password(‘root1234’),得使用ALTER USER
- MySQL8密码使用了caching_sha2_password加密方式,旧的Navicat客户端可能不支持该种加密方式,若是新客户端可以去除指定的加密方式:WITH mysql_native_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'rootmysql';
- 查看当前密码策略:
show variables like '%validate_password.policy%';
show variables like '%validate_password.length%';
- 那就先设置一个难度高点的密码(记得记录起来):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root-123.mysql';
-
可以查看当前密码策略了:
- LOW:只验证长度(弱);
- MEDIUM:验证长度、数字、大小写、特殊字符(中等);
- STRONG:验证长度、数字、大小写、特殊字符、字典文件(强);
- 8:密码最小长度为8
-
修改密码弱度和长度:
- LOW:只验证长度(弱)
- 6:密码最小长度为6
set global validate_password.policy=LOW; set global validate_password.length=6;
-
重置一个弱密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
-
刷新:
flush privileges;
-
退出重新登录即可!
6. 开启远程访问
-
访问数据库
use mysql;
-
使root能可以在任何host访问
update user set host = '%' where user = 'root';
-
刷新
FLUSH PRIVILEGES;