现在网上会有针对MYSQL数据库的安全性的攻击, 会窃取数据库的内容并删除,勒索用户。所以必要的MYSQL防护还是需要的。
最简单有效的,第一个是密码,第二个是限制远程访问(只能本机访问)。
那接下来就针对这两项做一个配置:
先安装mysql:
yum install wget
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld # 启动mysql
systemctl enable mysqld # 设置开机启动
systemctl daemon-reload
一、修改mysql密码:
1、打开mysql配置文件/etc/my.cnf在【mysqld】下面添加一行代码:skip-grant-tables。这行代码意思就是跳过跳过授权表,即是可以跳过密码验证直接进入数据库。
2、service mysqld restart //重启mysql数据库。假如不重启的话,不会生效。
3、mysql -uroot -p //此时直接回车,既可以进入数据库。
4、进数据库后,use mysql //选择mysql这个库,因为mysql的root密码存放在这个数据库里。
5、show tables //查看下mysql库里有哪些表,我们需要操作的用户名密码都在user表里。
6、desc user //查看下user表有哪些字段。
7、update user set password=password('123456') where user="root"; //用户选root,可以随便更改成任意密码,我这里设置的123456,password()是mysql密码加密的一个函数。
有些数据要执行update user set authentication_string=password('Yj_2021#123yjTX') where user="root";才行
8、flush privileges; //刷新下密码,使更改的生效。
9、exit //退出数据库。
10、复原my.cnf,去掉skip-grant-tables
11、重新登录继续修改密码:
SHOW VARIABLES LIKE 'validate_password%';
set global validate_password_policy=LOW;
alter user user() identified by "Yj_2021#123yjTX";
alter user 'root'@'localhost' password expire never;
flush privileges;
二、mysql默认是不允许远程连接的。
三、对少数IP开放白名单。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.3.161' IDENTIFIED BY 'Yj_2021#123yjTX' WITH GRANT OPTION;
flush privileges;