MySQL文档阅读笔记之2015-03-30

900 views

show databases;
show schemas命令有近似的效果,但这两条命令具体差异,暂时还没有看到。
用户需要有执行show databases命令的权限,同时只能看到允许访问的database;如果登录用户有全局访问权限,那么可以看到全部的databases。

show databases命令的权限。MySQL设计了权限skip_show_database,相应的还有一个启动选项–skip-show-database。根据文档,MySQL应用启动时如果带有–skip-show-database选项,则只有拥有权限的用户才能执行show databases命令,执行之后可以看到全部database的清单;没有权限的用户执行这条命令,会是什么效果,需要验证下。而启动时没有–skip-show-database选项,所有用户都可以执行show databases命令,但只能看到有权限访问的database的清单。

创建database时,MySQL会在data目录下创建一个对应的目录,所以show databases命令的输出与在data目录下执行ls命令差不多,但凡事总有例外,但意外是什么,文档里没有提到。

默认安装的MySQL,有个名为mysql的database,用来保存用户的权限信息。

执行如下SQL,可以控制访问某个数据库的用户,及对应的主机名。
GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';

通过执行create database aaa;,可以创建一个名为aaa的数据库。创建数据库成功之后,并不会主动切换到对应的数据库下,需要执行use aaa来手动切换到这个数据库,同时注意大小写,在Unix环境下,这条命令需要区分大小写。

mysql -h host -u user -p menagerie
menagerie并不是口令,而是数据库名称;如果需要直接输入口令,则-p和口令之间不需要有空格,如mysql -h host -u user -pmenagerie

show tables;
执行这条命令,可以查看当前数据库内有哪些表。

DESCRIBE pet;
查看表的结构定义,比如有哪些字段,字段的具体类型,是否可空,默认值,是否是主键。

select database();
可以用来确认当前使用的数据库的名称,如果当前未选择数据库,则返回值为NULL。

mysql < a.sql >a.log
执行a.sql文件中定义的SQL命令,并将结果输出到a.log。这个特性对我开发安装脚本、升级脚本特别有帮助。

成功使用mysql登录后,可以通过输入
source a.sql或者\. a.sql来执行a.sql文件。

简单总结下,MySQL和Oracle差异比较大,MySQL像是为程序员使用的应用软件,对于普通人而言似乎并不那么友好。
作为开源软件,总体感觉MySQL的文档还是不错的。



若非注明,均为原创,欢迎转载,转载请注明来源:MySQL文档阅读笔记之2015-03-30

关于 JackieAtHome

基层程序员,八年之后重新启航

此条目发表在 MySQL 分类目录。将固定链接加入收藏夹。