mysql configuration_configuration for mysql

数据库mysql 在我实际的运用中,确实出现了不少的问题:

1.一次数据库文件大小达到了20G,把整个磁盘全部都吃掉了,导致系统异常慢

2.没有配置bin日志,结果在自动化的时候,一次失误,把编辑部录了一天的数据全部搞没有了

3.没有配置好mysql服务器,经常出现max connnection too many,或者是数据库服务器很慢

4. 一次magento的操作中,没有注意它的表类型,结果做了三四个网站之后才发现它使用的是innodb的数据,结果在移动备份数据库时可惨了,无法将数据分享,因为它使用的是独立表空间。

5. sql mode导致空数据始终插入不进去

所以说在安装完MYSQL之后,一定要考虑好配置问题:

1.如果网站的数据量增长非常快,最好应该把数据库放置在另一个分区(这个分区的磁盘空间是足够的-->尽量使用逻辑卷来处理),以解决数据量放大不好移植的问题

2.开启error log, BINLOG,以及slow LOG(必需),有必要时也可以开启query log

3.BINLOG的放置(BINLOG的所需要占用的磁盘空间是非常大的,因此it's best put it on a different driver or tape media)

4.开启一系列的mysql性能优化参数

5.配置好max conneciton, user-max-connnection等collaboration work的一系列参数

6.配置好字符编码

7.配置相应数据库表的类型(MYISAM,INNODB)

8.对于INNODB的配置,一定要确定好是否为独立表空间,还是单独表空间,表空间的初始化大小是多少,自动增长量是多少,表增长的最大限制是多少

9. 配置好mysql的命令提示符

10. 配置如何通过SSH来连接到数据库服务器的操作(mysql本身所使用的TCP/IP协议在安全性上并不理想)

11.添加redo log

12. 配置好sql mode, 让在开发环境中都使用strict mode,生产环境中则使用 general mode(这样验证数据的正确性,特别是对时间类型,null的处理)

13. 配置好thread timeout 以及network timeout(以解决网速较慢时,date timeout cause 数据无法添加进入的问题)

security 配置         you can refer ‘MYSQL 4TH Edition’ about chapter for MYSQL security and optimization

security for configuration MYSQL daemon 只能由mysql用户来启动(mysql只是一个空用户,只负责启动,其它的均没有权限,如果以root用户启动,则它可以在mysql terminal 执行所有相关root的命令)

使用mysqld_safe来启动, don’t use mysqld to start up service

mysql下data用户 just belong to  mysql 用户.

change privilege ‘755’ for /usr/local/mysql/bin,只让以mysql用户启动的,则可以执行/mysql/bin下的命令

针对 /usr/local/mysql与/usr/local/mysql/data两个目录的权限分配

# chown -R mysql /usr/local/mysql# chgrp -R mysql /usr/local/mysql-------------------mysql目录属于root,但是组却属于mysql组-------------------------# chown -R root /usr/local/mysql# chgrp -R mysql /usr/local/mysql# chown -R mysql /usr/local/mysql/data# chgrp -R mysql /usr/local/mysql/data

6.For the base directory and any of its subdirectories that clients should be able to access, change their mode so that mysql has full access and everyone else has only read and execute permission.【没有必要使用递归】

chmod 755 /usr/local/mysqlchmod 755 /usr/local/mysql/bin bin只允许mysql用户启动,才允许执行

7. Directories that clients need not have access to can be made private to mysql.The libexec directory that contains the server is an example.  Either of the following commands will set its mode appropriately

chmod 700 /usr/local/mysql/libexec

8. Securing Option Files,确保/etc/my.cnf文件的安全性(对于快速启动而言,一般会配置user与password在my.cnf文件中) 以及 mysql.socket 文件的安全

security for management of user account

不同的任务由不同的用户去完成: 某一个数据库连接程序的用户;某一个用于导入与导出SQL脚本的用户;某一个备份的用户;某一个可以进行远程操作的用户;某一个用户具有FILE的权限

删除mysql用户

不允许test用户连接上mysql server.

尽量不要使用 ‘%’ pattern(通配符),root 用户只允许在localhost,127.0.0.1来进行连接,其它位置,均不允许连接

所以要做mysql程序的开发时,就要想好---不然有苦果吃

1.datadir,binlog日志文件一定要分开,最好的方式是mysql的数据文件存放在单独的一个分区中(并且保证这个单独的分区大小是足够的)

2.一定要开启binlog日志,并且把binlog日志的空间也要足够的大

3.innodb表空间一定要使用独立表空间,方便数据备份

4.使用全局的sql mode(如果是开发环境并且使用的是二次开发,最好使用严格的sql模式,这样子对于以后数据库的迁移以及测试都是有好处的)

5.不要使用root来登陆或者是连接数据库

6.确定好备份与恢复的策略

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值