由于centOS7中默认安装了MariaDB,需要先进行卸载
rpm -qa | grep -i mariadb
注意:[] 里面替换成上面命令查出来的结果
rpm -e --nodeps [mariadb-libs-5.5.64-1.el7.x86_64]
mysql包安装方式
官网下载包:
存到linux目录下,解压缩
tar -xvf mysql-8.2.0-1.el7.x86_64.rpm-bundle.tar
解压后,依次输入以下命令:
- 注意后面的切换成自己目录的
rpm -ivh mysql-community-common-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.23-1.el7.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-libs-compat-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.2.0-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.23-1.el7.x86_64.rpm
安装完查看已安装组件
rpm -qa | grep mysql
启动mysql
systemctl start mysqld // 启动
systemctl stop mysqld // 停止
systemctl enable mysqld // 开机自启动
systemctl status mysqld // 状态
查看mysql 初始密码:
sudo grep 'temporary password' /var/log/mysqld.log
或
sudo grep 'temporary password' /var/log/mysql/error.log
这将显示类似这样的行:[Note] A temporary password is generated for root@localhost: xxxxxxxx,其中 xxxxxxxx 就是你的初始密码。
登录:
mysql -u root -p
输入密码,不回显,回车
修改初始密码:如果想改成弱密码
SHOW variables LIKE 'validate_password%';
调整密码策略
SET GLOBAL validate_password.policy = LOW;
set global validate_password.length=4; // 密码最短长度
FLUSH PRIVILEGES; // 刷新权限
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
设置远程连接:
方法1:简单粗暴
use mysql;
select * from user;
update user set host='%' where user='root'; // % 表示允许任何主机连接
FLUSH PRIVILEGES;
方法2:在方法1基础上继续执行
alter user 'root'@'%' identified with mysql_native_password by 'new_password';
alter user 'root'@'%' identified by 'new_password' password expire never;
FLUSH PRIVILEGES;
第一条命令将用户 ‘root’@‘%’ 的身份验证方式更改为 mysql_native_password,并设置密码为 ‘new_password’。mysql_native_password 是MySQL的一种身份验证插件,支持传统的用户名和密码验证方式。
第二条命令将用户 ‘root’@‘%’ 的密码过期策略设置为永不过期。默认情况下,MySQL中的密码有一个过期时间,如果过期了,用户将被要求更改密码。
往后想取消这个设置:
ALTER USER 'root'@'%' IDENTIFIED BY 'new_password'; -- 使用新的密码,或者空密码来替换
ALTER USER 'root'@'%' PASSWORD EXPIRE; -- 使密码过期,需要用户在下次登录时重新设置密码。
方法3:推荐
创建新的用户仅用于远控
CREATE USER 'username'@'%' IDENTIFIED BY 'password'; // % 可以改成特定主机ip
授予权限:授予用户在需要的数据库上的操作权限
如果你只需要给予特定权限,可以将 ALL PRIVILEGES 替换为具体的权限,比如 SELECT, INSERT, UPDATE 等。
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%'; // database_name数据库名
FLUSH PRIVILEGES;
设置防火墙策略
systemctl start firewalld // 启动防火墙
systemctl stop firewalld // 关闭防火墙
systemctl restart firewalld // 重启防火墙
systemctl status firewalld // 防火墙状态
systemctl disable firewalld // 开机不自启
systemctl enable firewalld // 开机自启
查看已开放的端口列表
firewall-cmd --list-ports
开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
删除端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
查看端口是否开启
firewall-cmd --zone=public --query-port=3306/tcp --permanent
云服务器安全组记得开放端口