从回答中选出你认为正确的答案:
1. 以下哪些陈述是正确的?
a. 在对MySQL Server设置SQL模式后,它会对所有连接到此服务的客户端起作用。
b. 如果你需要设置两个SQL模式(如,STRICT_ALL_TABLES和ERROR_FOR_DIVISION_BY_ZERO模式),你必须执行两个SET sql_mode语句。
c. 除非显示进行全局声明,否则设置SQL模式仅会对进行此设置的客户端有影响。
d. SQL模式会对server的行为进行影响,如它们会影响到server无效输入数据处理方式。
e. SQL模式可以影响到server对客户端所提供的功能;如你可以使用SQL模式来启用或关闭InnoDB支持。
答案:C,D
仅在global全局模式下,SQL模式设置会对所有之后连接服务的客户端其作用。如果有多个SQL模式,你需要使用逗号分隔模式并执行相应语句:
SET sql_mode = 'STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO';
2.将SQL模式修改为STRICT_TRANS_TABLES和PIPES_AS_CONCAT的语法怎么写?
答案:
SET sql_mode = 'STRICT_TRANS_TABLES,PIPES_AS_CONCAT';
3. 所有MySQL程序都从my.ini, my.cnf或 .my.cnf这些启动配置文件读取配置么?
答案:错。MySQL server和其客户端程序及工具会从my.ini, my.cnf或 .my.cnf配置文件中读取配置信息,但是MySQL GUI工具(MySQL Workbench等)则将对应配置信息使用XML文件进行保存,作为连接参数。
4. 假设你调用mysql时使用 -h 127.0.0.1 项。
a. mysql是否会对本地server或远程server建立一个连接么?
b. mysql使用的是Unix socket文件,Windows命名管道,Windows共享内存,还是TCP/IP来进行的连接?
c. mysql仅能针对特定操作系统进行此工作么?
答案:mysql -h 127.0.0.1 可以针对任何系统已TCP/IP进行本地server连接。
5. 在启动MySQL server时,你如何使其记录报错?你如何查看到这些报错日志?
答案:在Windows上,默认情况下,启动MySQL不用做任何设置,其会将报错信息写入默认报错日志文件中。当然你可以使用 --log-error=file_name来指定文件名及其位置。在Unix中,默认报错输出到标准输出上,即屏幕上,因此,一般使用--log-error=file_name来指定报错输出到指定文件中。报错日志文件一般以err为尾缀,不过你也可以进行特定设定。
6. 如何进行设置以使得MySQL在启动后对以下进行记录:对于查询时间超过10秒的查询执行进行记录,同时记录那些未使用索引的查询?你怎么查看到这些日志记录?
答案: 你可以启用 --log-slow-queries和 --log-queries-not-using-indexes来记录所需查询,默认慢查询日志为10秒。由于这些日志记录会写入日志平文件中,因此你可以使用任意文本工具进行直接查看。
7. 通过tar文件在Linux上安装MySQL后,你试图启动服务,但是报错了。查看报错日志显示:Can’t find file: ‘./mysql/host.frm’ (errno: 13)。是什么原因造成此报错,你该如何解决这个问题?
答案:报错表明授权表并未安装,在启动时如果读取到授权表信息,会报第一个表文件不存在(host.frm)。可能是授权表不存在,或者是server无法对授权表进行读操作。如果是表不存在,则需要运行mysql_install_db脚本来进行建立。如果表存在,请确保其相应的访问权限和所有者设置,以使得server 可以进行读取。
8. 你希望能看到MySQL server的启动报错。在Windows中,你希望报错能直接输出到你的命令行窗口而不是报错日志中。你该怎么做?
答案:在Windows下,你可以使用以下命令将报错输出到命令行窗口
C:\> mysqld –-console
9. 为了启用命名时区功能支持,你需要如何配置?
答案:为了启用命名时区支持,你需要将操作系统所提供的时区文件信息倒入到数据库中,你需要通过以下命令进行导入。
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
如果其系统中不提供相应文件,你可以从MySQL官方网站上下载相应文件,并进行倒入安装。
10. 那些项是在MySQL server启动时是必须的?你该如何设置这些项?
答案:MySQL可以在无任何指定项的情况下进行启用。如果你需要对某些项进行设置,你可以使用命令行设置,也可以在配置文件中进行设置。
11. 在进行MySQL升级时,你必须移除之前的版本,然后进行新版本安装。这是真的么?
答案:假的。MySQL新版本可以在MySQL原有版本顶层目录上进行安装。
12. MySQL提供了一个什么程序来用于检查数据库升级时的兼容性问题?
答案:mysql_upgrade