第三部分 管理
第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结合的开源项目会让自己内力大增的,哈哈,期待有空的时候~