读《msyql完全手册》之三:管理与开发

第三部分    管理
第13章    管理与配置
第14章 安全、访问控制和权限
第15章 维护、备份和恢复
第16章 性能优化
第17章    MySQL复制
第四部分 开发
第18章 MySQL API
第19章 MySQL与C
第20章 MySQL与Perl
第21章 MySQL与PHP

根据这本书的目录,继续写点我的总结

第三部分是给系统管理员或者数据库管理员看的,一个系统运行的稳定与否,其负责人起到很大的作用,反正7×24小时不是每个人都能承受下来的,所以有必要了解一点,在自己开发的时候也可以提高不少性能呢,所以第三章,推荐一读

第13章 管理和配置
      这章还是有点意思的,了解一些东西就好了,mysql自带了一些管理的工具,具体用到可以google
      1,mysqladmin,在/usr/local/mysql/bin下面,使用mysqladmin --help可以查看具体参数,不过推荐用别的客户端来管理似乎更加方便一些,比如phpMyAdmin
      2,启动关闭,unix系统中有个脚本 一般在mysql的安装目录中 /usr/local/mysql/support-files/mysql.server.sh,还可以使用/usr/local/mysq./bin下面的mysql_safe,windows98系列下面直接有mysqld.exe,运行之,2000以上系列可以通过两步启动, mysqld--install , net start mysql,但是我一般都还是直接通过services.msc这个管理面板来启动和关闭
      3,检查服务器状态
           /usr/local/mysql/bin/mysqladmin status或者version
           或者进入mysql后,mysql> select version() 或 show status;
      4,管理客户机
          mysql>show processlist;可以看到其他登录到msyql的用户,并且可以方便的使用kill踢掉
      5,修改服务器配置
          第一种方法修改my.cnf或者my.ini文件,unix一般在/etc/my.cnf或者 ~/.my.cnf,而windows一般在c:\my.cnf,自己查找里面很简单
          第二种是直接使用set命令,比如set table_type=innodb;字符集出现乱码的时候一般都是通过set names utf8等来解决就是这个道理
      6,检索变量值
          进入mysql后,通过show variables like 'charset_*'可以查看所有的字符集,具体内容可以百度搜索“mysql 乱码”,应该有不少信息
      7,错误日志
          unix中称为hostname.err,windows中是mysql.err

第14章 安全、访问控制和权限
       1,五层访问控制系统:用户通过user表,主机通过host表,数据库通过db表,数据表通过tables_priv表,字段通过columns_priv表来进行访问控制,具体不多说了,phpMyAdmin下面一幕了然,或者用describe 控制表表名就可以猜个八九不离十
      2,授权,废除和浏览
            授权废除可以通过grant和revoke进行操作,也可以直接在mysql库的上面五个表格中直接改。
            浏览通过 show grants for user@host
      3,使用grant和revoke命令的授权立即被激活了,但是通过常规sql查询设置的需要服务器重载(flush privileges)才能生效
      4,明白上面道理,就可以很容易理解如何在忘记root口令的情况下重设了
          1)停掉mysql服务
          2) /usr/local/mysql/bin/safe_mysql --skip-grant-tables --skip-networking 就可以绕过授权表
          3) mysql >use mysql;
              mysql > updata user set password = password('new-password') where user ='root'
          4)重启msyql

第15章   维护、备份和恢复
     维护主要是通过不同的日志文件来进行的,日志文件有:错误日志,查询日志,慢查询日志,更新日志,二进制更新日志。我关心的是两个,一个是错误日志,一个是慢查询日志
     如果需要激活错误日志,需要在启动的时候添加--log-error
     /usr/local/mysql/bin/msyql_safe --log-error
     如果需要激活慢查询日志,需要在启动的时候添加--log-slow-queries
     /usr/local/mysql/bin/msyql_safe --log-slow-queries
     慢查询日志用来查找那些查询占用的时间比较长,从而提出相应的解决方案

    备份数据库   mysqldump -u root -p 数据库名>数据文件 -d 仅备份格式, -t 仅仅备份数据
    恢复数据库   mysql -u root -p 数据库名<数据文件 或者mysql> source 数据文件 或者使用 load data infile,具体的google之,已经没有必要了解这么多了

第16章 性能优化
     1,使用索引
     2,子查询->连接查询或者使用变量
     3,调整服务器高速缓存和内存缓冲:调整变量 key_buff_size, table_cache
     4,使用MySQL基准技术套件调整服务器性能的基准,评估变化结果,基准套件叫做MySQL Benchmark Suite,但是用起来好难啊,谁想专门做数据库管理员的可以研究一下啦

第17章 数据库复制
 我基本都是使用phpMyAdmin直接导出导入,或者直接复制,所以这章被我直接跳过了。哈哈

第四部分开发
     这本书把开发放在这里仅仅是抛砖引玉,列了三种语言,c,perl,php,其实各种主流的语言都提供了对mysql的支持,我对php比较熟悉,php的官方手册上面有很详细的介绍,可以看这里
     mysql使用c写成的,c语言通过libmysqlclient库与mysql发布捆绑在一起。mysql开放了一些API,可以供语言的开发者们调用,以便使得新语言能够支持mysql,不过这本书也没有详细列出,我们仅仅只要知道一个大概就好。
    

     总结完毕,整体架构已经建立起来了,虽然以后用到具体知识还是要用google,但是读过就是和没有读过不一样,google的时候就可以找到更加确切的关键词了。
     有空研究一下phpMyAdmin,相信这个php和mysql结合的开源项目会让自己内力大增的,哈哈,期待有空的时候~

你可能感兴趣的:(msyql)