mysql怎么加固_mysql安装及加固
mysql安裝
查看是否安裝mysql
我們先看一下有沒有安裝mysql
yum list installed mysql | grep mysql
本地只安裝了php鏈接mysql的庫,沒有安裝mysql
如果有安裝,可以使用安裝的或者卸載了重新安裝
添加yum源
去mysql官網(wǎng)查找
下面我就來安裝下yum源
sudo rpm -ivh https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
我們再看一下yum源是否安裝成功
yum repolist | grep mysql
可以看到已經(jīng)有mysql的yum源了
查看mysql的版本
yum repolist all | grep mysql
可以看到很多被禁用了,現(xiàn)在比較穩(wěn)定的最高穩(wěn)定版本是8.0了;
我們就安裝這個吧
yum安裝
sudo yum install mysql-community-server
下載安裝完成,
查看下安裝目錄
whereis mysql
啟動/關(guān)閉mysql
sudosystemctl start mysqld
systemctl status mysqld//查看mysql的狀態(tài)
顯示是啟動了。
查看初始密碼(如無內(nèi)容直接跳過)
sudo grep 'temporary password' /var/log/mysqld.log
測試下是否真的啟動成功
sudo mysql -u root -p
使用上一步得到的初始化密碼登錄,若沒有初始化密碼,則直接回車即可
修改root密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '密碼';
刷新MySQL的系統(tǒng)權(quán)限相關(guān)表
mysql> flush privileges;
退出登錄,試下新密碼登錄,登錄成功即完成了。
php鏈接數(shù)據(jù)庫
php代碼如下:
{die('Could not connect: ' . mysql_error());
}else{echo "login success.";
}//some code
//mysql_close($con);
phpinfo();?>
提示:Could not connect: Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot openshared object file: No such file or directory
caching_sha2_password時mysql8默認的認證方式,好像使安裝的mysql沒有包含這個插件,以前版本的mysql使用的是mysql_native_password,我們修改為這個模式看看
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼';
刷新MySQL的系統(tǒng)權(quán)限相關(guān)表
mysql> flush privileges;
鏈接mysql成功。
mysql基本操作
1)數(shù)據(jù)庫相關(guān)SQL的語句a)顯示當前用戶下的數(shù)據(jù)庫show databases;b)創(chuàng)建數(shù)據(jù)庫(語法參考? create database)create database pms;create database if not exists pms;create database if not exists pms character set utf8;
說明:在mysql中一個用戶下可以有很多數(shù)據(jù)庫(DB)
c)使用或打開數(shù)據(jù)庫? use database;? 查看當前正在使用的數(shù)據(jù)庫:select database();? d)刪除數(shù)據(jù)庫(語法? drop database)? drop database pms;? drop database if exists pms;
2)MySQL中表的相關(guān)操作?(DDL)a)創(chuàng)建表(語法? create table)create table if not exists pet(id int primary key auto_increment,name varchar(100) not null);當需要查看某張表的創(chuàng)建語句時,可以使用show create table pet當需要顯示表結(jié)構(gòu)時可以使用:desc petb)修改表(語法?alter table);不作為重點,自己了解c)刪除表(語法?drop table)drop table if exists pet;
3)MySQL表中數(shù)據(jù)的操作?(DML)1)向表中寫入數(shù)據(jù)(insert)insert into pet values (null,'A');insert into pet(id,name) values (null,'B');insert into pet(name)values('C');insert into pet(name)values('D'),('E');2)查詢表中數(shù)據(jù)(select)select * from pet;select id,name from pet;select id,name from pet where id=10;
分頁查詢:limit 語句的應(yīng)用(語法參考?select)? select * from pet limit 2; --2為row_count(表示要取幾條數(shù)據(jù))? select * from pet limit 4,2; --4表示offset,2表示 row_count? select * from pet limit 2 offset 4;
mysql加固
禁止 Mysql 以管理員帳號權(quán)限運行
以普通帳戶安全運行 mysqld,禁止以管理員帳號權(quán)限運行 MySQL 服務(wù)。在 /etc/my.cnf 配置文件中進行以下設(shè)置
user=mysql
口令安全
檢查賬戶默認密碼和弱密碼。口令長度需要至少八位,并包括數(shù)字、小寫字母、大寫字母和特殊符號四類中的至少兩種類型,且五次以內(nèi)不得設(shè)置相同的口令。密碼應(yīng)至少每 90 天進行一次更換。
下面命令修改密碼
mysql> update user set password=password('test!p3') where user='root';mysql> flush privileges;
弱密碼很容易被爆破,所以密碼復雜的要夠,生命周期要限制,定期更換。
關(guān)閉遠程訪問
這種僅限于應(yīng)用和數(shù)據(jù)庫在同一臺主機的情況,如果不同主機,那就不能禁止遠程訪問了
關(guān)閉遠程訪問可以通過禁止遠程 TCP/IP 連接,通過在 MySQL 服務(wù)器的啟動參數(shù)中添加--skip-networking參數(shù)使 MySQL 服務(wù)不監(jiān)聽任何 TCP/IP 連接,增加安全性。
參考資料
總結(jié)
以上是生活随笔為你收集整理的mysql怎么加固_mysql安装及加固的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio 2008 破
- 下一篇: MFC的SendMessage函数详解