mysql安装被打断_Mysql的安装/性能优化/安全加固

   aa

安装:

增加一个登录用户和群组#groupaddmysql

#useradd -r -g mysql mysql解压缩Mysql数据包

#tar-zxvf mysql-5.6.13.tar.gz进入Mysql解压缩目录

#cd mysql-5.6.13配置安装mysq

l#cmake.

#make &&make install建立配置文件

#cp./support-files/my-medium.cnf/etc/my.cnf修改相应文件的权限

#chown -R root:mysql  /usr/local/mysql

#chown -R  mysql  data初始化数据库

#scripts/mysql_install_db  --user=mysql调整lib库路径

#echo“/usr/local/mysql/lib/mysql”>>/etc/ld.so.conf

#ldconfig刷新文件路径

Mysql启动控制

#/usr/local/mysql/bin/mysqld_safe  --user=mysql  &将mysql添加为系统服务

#cpsupport-files/mysql.server  /etc/init.d/mysqld

#chmod +x /etc/init.d/mysqld

#chkconfig --add mysqld

#chkconfig mysqld on

设置mysql程序的执行路径

#exportPATH=$PATH:/usr/local/mysql/bin

#echo“PATH=$PATH:/usr/local/mysql/bin”>>/etc/profile

注意:在编译mysql源码时碰到如下错误

checkingfortermcapfunctionslibrary...configure:error:Nocurses/termcaplibraryfound

解决方法:./configure--with-named-curses-libs=/lib64/libncursesw.so.5

性能优化和安全加固:

1、修改root用户的的口令

缺省情况下MySQL没有设置密码,我们可以用三种方法设置密码头:*用mysqladmin命令来改root用户口令

#mysqladmin-urootpasswordecan5com//设置MySQL管理操作用户root的密码为P@ssw0rd

*用setpassword修改口令:

mysql>setpasswordforroot@localhost=password('P@ssw0rd');*直接修改user表的root用户口令mysql>usemysql;

mysql>updateusersetpassword=password('P@ssw0rd')whereuser='root';mysql>flushprivileges;

2、删除默认的数据库和用户

我们的数据库是在本地,并且也只需要本地的php脚本对mysql进行读取,所以很多用户不需要.mysql初始化后会自动生成空用户和test库,这会对数据库构成威胁,我们全部删除.我们使用mysql客户端程序连接到本地的mysql服务器后出现如下提示:mysql>dropdatabasetest;mysql>usemysql;

mysql>deletefromdb;

mysql>deletefromuserwherenot(host="localhost"anduser="root");mysql>flushprivileges;

3、改变默认mysql管理员的名称//仅为建议

根据个人习惯,因为默认的mysql的管理员名称是root,所以如果能够修改的话,能够防止一些脚本小子对系统的穷举.我们可以直接修改数据库,把root用户改为"admin".mysql>usemysql;

mysql>updateusersetuser="admin"whereuser="root";mysql>flushprivileges;

4、提高本地安全性

提高本地安全性,主要是防止mysql对本地文件的存取,比如黑客通过mysql把/etc/passwd获取了,会对系统构成威胁.mysql对本地文件的存取是通过SQL语句来实现,主要是通过LoadDATALOCALINFILE来实现,我们能够通过禁用该功能来防止黑客通过SQL注射等获取系统核心文件.禁用该功能必须在my.cnf的[mysqld]部分加上一个参数:set-variable=local-infile=0

5、禁止远程连接mysql

因为我们的mysql只需要本地的php脚本进行连接,所以我们无需开socket进行监听,那么我们完全可以关闭监听的功能.有两个方法实现:

*配置my.cnf文件,在[mysqld]部分添加skip-networking参数.

*mysqld服务器中参数中添加--skip-networking启动参数来使mysql不监听任何TCP/IP连接,增加安全性.如果要进行mysql的管理的话,可以在服务器本地安装一个phpMyadmin来进行管理.

6、控制数据库访问权限

对于使用php脚本来进行交互,最好建立一个用户只针对某个库有update、select、delete、insert、droptable、createtable等权限,这样就很好避免了数据库用户名和密码被黑客查看后最小损失.比如下面我们创建一个数据库为db1,同时建立一个用户test1能够访问该数据库.

mysql>createdatabasedb1;

mysql>grantselect,insert,update,delete,create,dropprivilegesondb1.*totest1@localhostidentifiedby'admindb';

以上SQL是创建一个数据库db1,同时增加了一个test1用户,口令是admindb,但是它只能从本地连接mysql,对db1库有select,insert,update,delete,create,drop

7、限制一般用户浏览其他用户数据库

如果有多个数据库,每个数据库有一个用户,那么必须限制用户浏览其他数据库内容,可以在启动MySQL服务器时加--skip-show-database启动参数就能够达到目的.

忘记mysql密码的解决办法,如果不慎忘记了MySQL的root密码,我们可以在启动MySQL服务器时加上参数--skip-grant-tables来跳过授权表的验证:./safe_mysqld--skip-grant-tables&

这样我们就可以直接登陆MySQL服务器,然后再修改root用户的口令,重启MySQL就可以用新口令登陆了.

8、数据库文件的安全

我们默认的mysql是安装在/usr/local/mysql目录下的,那么对应的数据库文件就是在/usr/local/mysql/var目录下,那么我们要保证该目录不能让未经授权的用户访问后把数据库打包拷贝走了,所以要限制对该目录的访问.我们修改该目录的所属用户和组是mysql,同时改变访问权限:

#chown-Rmysql.mysql/usr/local/mysql/var#chmod-Rgo-rwx/usr/local/mysql/var

9、删除历史记录

执行以上的命令会被shell记录在历史文件里,比如bash会写入用户目录的.bash_history文件,如果这些文件不慎被读,那么数据库的密码就会泄漏.用户登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里.

如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏.所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码.另外这两个文件我们也应该不让它记录我们的操作,以防万一.#rm.bash_history.mysql_history#ln-s/dev/null.bash_history#ln-s/dev/null.mysql_history

对于使用php脚本来进行交互,最好建立一个用户只针对某个库有update、select、delete、insert、droptable、createtable等权限,这样就很好避免了数据库用户名和密码被黑客查看后最小损失.比如下面我们创建一个数据库为db1,同时建立一个用户test1能够访问该数据库.

mysql>createdatabasedb1;

mysql>grantselect,insert,update,delete,create,dropprivilegesondb1.*totest1@localhostidentifiedby'admindb';

以上SQL是创建一个数据库db1,同时增加了一个test1用户,口令是admindb,但是它只能从本地连接mysql,对db1库有select,insert,update,delete,create,drop操作权限.7、限制一般用户浏览其他用户数据库

如果有多个数据库,每个数据库有一个用户,那么必须限制用户浏览其他数据库内容,可以在启动MySQL服务器时加--skip-show-database启动参数就能够达到目的.

忘记mysql密码的解决办法,如果不慎忘记了MySQL的root密码,我们可以在启动MySQL服务器时加上参数--skip-grant-tables来跳过授权表的验证:./safe_mysqld--skip-grant-tables&

这样我们就可以直接登陆MySQL服务器,然后再修改root用户的口令,重启MySQL就可以用新口令登陆了.

8、数据库文件的安全

我们默认的mysql是安装在/usr/local/mysql目录下的,那么对应的数据库文件就是在/usr/local/mysql/var目录下,那么我们要保证该目录不能让未经授权的用户访问后把数据库打包拷贝走了,所以要限制对该目录的访问.我们修改该目录的所属用户和组是mysql,同时改变访问权限:

#chown-Rmysql.mysql/usr/local/mysql/var#chmod-Rgo-rwx/usr/local/mysql/var

9、删除历史记录

执行以上的命令会被shell记录在历史文件里,比如bash会写入用户目录的.bash_history文件,如果这些文件不慎被读,那么数据库的密码就会泄漏.用户登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里.

如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏.所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码.另外这两个文件我们也应该不让它记录我们的操作,以防万一.#rm.bash_history.mysql_history#ln-s/dev/null.bash_history#ln-s/dev/null.mysql_history

10、其他

另外还可以考虑使用chroot等方式来控制mysql的运行目录,更好的控制权限,具体可以参考相关文章.my.cnf的调试参数.

11、快速修复MySQL数据库修复数据库

#mysqlcheck-A-o-r-p修复指定的数据库

#mysqlcheck-o-rDatabase_NAME -p

12、跟据内存的大小选择MySQL的负载

选择相应的文件名复制到/etc/my.cnf,如果是RPM包安装:/usr/share/doc/mysql-XXX/目录下有,如果是源代码编译安装:support-files/目录下有.

#cp/usr/local/share/mysql-***/my-large.cnf/etc/my.cnfmy-small.cnf#>my-medium.cnf#32M-64Mmy-large.cnf#memory=512Mmy-huge.cnf#1G-2G

my-innodb-heavy-4G.cnf#4GB

mysql批量删除表,相同前缀的表

mysql中没有现有的工具可以直接实现,所以原理就是使用现有的功能实现droptable的语句的自动拼写,从而达到简化目的。下边举例说明,如果想删除”wp_”开头的表:SelectCONCAT('droptable',table_name,';')FROMinformation_schema.tables

Wheretable_nameLIKE'XXX_%';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python自动输入账号密码_Python如何基于selenium实现自动登录博客园

这篇文章主要介绍了Python如何基于selenium实现自动登录博客园,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要做的准备: 本文章是使用Chrome,所以需要Chormedriver.exe,…

安卓软件错误log_Android编程实现捕获程序异常退出时的错误log信息功能详解

本文实例讲述了Android编程实现捕获程序异常退出时的错误log信息功能。分享给大家供大家参考,具体如下:很多时候我们程序无缘无故的就挂掉了,让我们一头雾水,如果刚好我们在调试,那我们可以通过错误log来查看是什么原因…

android 模拟长按菜单键_如何采用PLC梯形图实现单键启动程序

“PLC是一种专门为在工业环境下应用而设计的数字运算操作的电子装置。它采用可以编制程序的存储器,用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令,并能通过数字式或模拟式的输入和输出,控制各种类型的机械或生产…

android 日期对话框,Android日期选择器对话框DatePickerDialog使用详解

调用Android原生日期选择器对话框就是DatePickerDialog,具体内容如下在Android4.4系统上效果如图:在Android5.0以上效果如图:1、Activity的onCreate方法中获取当时的年,月,日Calendar ca Calendar.getInstance();mYea…

c#endread怎么打印出来_NetworkStream.EndRead(IAsyncResult) 方法 (System.Net.Sockets) | Microsoft Docs...

处理异步读取的结束。Handles the end of an asynchronous read.public:override int EndRead(IAsyncResult ^ asyncResult);public override int EndRead (IAsyncResult asyncResult);override this.EndRead : IAsyncResult -> intPublic Overrides Function EndRead (asyn…

wp自定义帖子没标签_ofollow标签的作用有重大变化

nofollow标签的历史经典的nofollow标签作用和使用方法以前的帖子写过,详情读者可以参考以前帖子。nofollow标签(准确说是属性,不过约定俗成,还是叫标签吧)是Google和Yahoo等搜索引擎2005年推出的,目的是告诉…

android电视视频播放器,智能电视如何播放本地视频?当贝市场分享几款播放器...

原标题:智能电视如何播放本地视频?当贝市场分享几款播放器对视频清晰度要求更高的用户普遍会自己下载视频,然后通过本地播放的方式观影,那么,下面就给大家介绍几款智能电视的本地视频播放软件,包你好用。当…

c 复杂的前置后置面试题_你被哪些C语言面试题坑过?

最近在《深入理解计算机系统》上看到一道题,分享一下:假设我们在对有符号值使用补码运算的32位机器人运行代码。对于有符号值使用的是算术右移,而对于无符号值使用的是逻辑右移。变量的声明和初始化如下:int x foo(); //任意值in…

python 三引号_Python 简明教程 --- 4,Python 变量与基本数据类型

微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io任何一个人都会写出能够让机器理解的代码,只有好的程序员才能写出人类可以理解的代码。 —— Martin Fowler 1,什么是变量计算机的本质是处理数据,数…

鸿蒙系统手机9月11日,鸿蒙系统9月11日,将有望正式成为国际第三大手机操作生态系统...

原标题:鸿蒙系统9月11日,将有望正式成为国际第三大手机操作生态系统众所周知,当时华为鸿蒙系统还处于1.0版本的时候,这项技术就已经被运用到了荣耀智能屏上,目前该系统也已经过渡到了华为的手表上,经过这一…

lisp 所在图幅号计算_地图标准分幅与编号计算(二)新图幅号

新图幅号1991年制订了新的《国家基本比例尺地形图分幅和编号》(GB/T 13989-92 )的国家标准,并给出了不同标准比例尺地形图的编给规范及图式。新测和更新的地图,照此标准进行分幅和编号。我国基本比例尺的地形图包括1:5000、1:1万、1:2.5万、1:5万、1:10万…

高德地图画带箭头的线_现代汽车把艺术展览搬到线上,邀您逛全景获奖展

Hyundai Blue Prize 2019获奖展“游戏社会:狼、猞猁和蚁群”(Play societies:wolves, lynx and ants)线上展览正式上线。《游戏社会: 狼、猞猁和蚁群》,以 “信息高速公路上的荒原狼”、“猞猁安全岛”和“蚁群游戏厅” 三段隐喻文本展开展览…

python实训名片管理程序_python3学生名片管理v2.0版

python学生名片管理vv2.0是在1.0的基础上增加部分功能,实现将数据存入文件保存,以便于程序停止后还能再次取到数据。具体实现请看如下部分:card_main.pyimport sysfrom One.card_func2 import *def head():print(* * 30)print(学生信息管理系…

ssm 项目cannot resolve package_前端工程化之创建项目

前言在我们团队,刚开始创建项目,是直接使用框架的 cli 进行创建项目,并修改相关配置。随着项目的增多,沉淀了两套模板,平台端及移动端。后来,我们自己写了一个简单的 cli,并提供了 create 及 li…

android_secure写权限,android.permission.WRITE_SECURE_SETTINGS权限报错

在做Android的GPS这一块时,根据原生代码写的Widget,运行时总是会报错说需要android.permission.WRITE_SECURE_SETTINGS权限,于是便在Manifest.xml中添加该权限,但是保存时会报错提示该权限仅用于系统的app查看了很多资料都说需要将…

解析mysqlbinlog日志_mysqlbinlog日志分析 日志挖掘 违规操作

案例:客户数据库,某关键配置表被修改,需查找操作记录及和操作时间1:mysqlbinlog读取如果binlog formatstatement 可以直接通过mysqlbinlog查看如果binlog formatrow 需要添加 -vv --base64-outputdecode-rows/usr/local/mysql/bi…

python打印长方形_利用python打印出菱形、三角形以及矩形的方法实例

前言 本文主要给大家介绍了关于利用python打印出菱形、三角形以及矩形的相关内容,分享出来供大家参考学习,话不多说,来一起看看详细的介绍: 实例代码 #coding:utf-8 rows int(raw_input(输入列数: )) i j k 1 #声明…

百度seo排名规则_百度关键词seo优化排名如何上首页

无涯孤客百度关键词seo优化排名快速上首页,是通过使用多种百度算法优化,让网站在搜索引擎上排名更好,我们做百度关键词排名的话,要比市面上绝大公司做的要稳定,也希望各位可以相信我们,我们可以将百度关键词…

数学难题html5小游戏答案,小学数学难题讲解及答案

第一讲速算与巧算例1 计算9+99+999+9999+99999解:在涉及所有数字都是9的计算中,常使用凑整法.例如将999化成1000—1去计算.这是小学数学中常用的一种技巧.9+99+999+9999&…

华为做raid5步骤_华为RH2288V5服务器做RAID 0(官方推荐做法)

华为RH2288V5服务器采用的Avago SAS3408阵列卡,RAID做法跟RH2285 RH1285不一样,今天薇晓兰就带各位了解下如何给RH2288V5服务器做RAID!由于Avago SAS3408不支持Legacy配置,支持UEFI配置;支持Legacy和UEFI启动。所以开机…