MYSQL简介: MYSQL是我们目前使用环境中的一款免费的中小型数据库软件。一般作用域为UNIX和LINUX的相关操作系统。因为,在UNIX和LINUX中才能对其完全删除,而在WINDOWS中,无论你是删除目录或修改路径,那么你下次安装的MYSQL将是不会成功的。因为,当你第一次运行MYSQL时,系统已经自动注册了MYSQL的版本,存放地址,数据库存放地址,也就是说,当你希望在删除MYSQL后,在没有重新安装原操作系统的前提下,你的安装路径,数据库存放路径以及MYSQL版本,都不能够使你的数据库使用成功。而它另外一个方面(使用用户)为中小型企业用户。针对编程性软件,根据目前的测试结果,C++需要安装MYSQL FOR ODBC才能远程连接成功,QT,无须安装该软件(请看云帆的文章),其余编程条件目前还没测试。 安装: 在WINDOWS下的CMD命令行中,进入MYSQL中的BIN目录内,运行一次MYSQLD就OK了,如果需要针对硬件条件安装那么请运行mysqld-<debug|nt|max|max-nt>(当然也需要在BIN目录下,配置文件能够在MYSQL根目录下找到,你可以直接根据你的需要修改,不过本人不推存修改这类文件)。上述优化选项都是针对Intel 处理器的,但是应该可以工作在任何Intel i386-class 或者更高的处理器。在MySQL 5.0中,所有的Windows版本服务器都提供了对数据库目录的符号链接。 MySQL提供了对Windows平台上的TCP/IP 的支持。mysqld-nt和 mysql-max-nt 服务器则提供了对Windows NT,2000,XP和2003下的命名管道的支持。然而,不管在何种平台下,默认使用的都是TCP/IP。(在很多Windows 配置下,命名管道要比TCP/IP服务要慢)。如果你希望MYSQL被作为一种服务被加载,那么,就直接在CMD窗口中直接运行mysqld --install。(所谓的被做为一种服务方式加载也就是在你的服务器启动时,自动被加载进内存内,并提供数据库服务)。而这时,如果你担心你的MYSQL并没运行,那么可以运行MYSQL TEST进行连接测试。 MYSQL的使用: 更改MySQL系统的管理员密码(新密码的地方,换成您要设置的密码) mysql> UPDATE user SET password=password('新密码) where user='root'; 刪除空帐号,以维护系统安全 mysql> DELETE FROM user WHERE User = ''; (最后是两个单引号) 即时更新上面修改的资料 mysql> FLUSH PRIVILEGES; 离开MySQL系統 mysql> exit 测试一下刚刚更新的密码是否正常: mysql mysql -u root -p新密码 说明:(1)mysql mysql为连接MySQL数据库,数据库名称为mysql。 (2)-u root:-u使用者,root为使用者名称。 (3)-p新密码:-p密码,后面接root新设的密码。 以后进入使用MySQL数据库系统,必须以下列格式进入: mysql 数据库名称 -u 使用者名称 -p密码 说明:[-u使用者名称]-u和使用者名称间有空格。 [-p密码]-p和密码间不可有空格。 mysqladmin程序的使用: 新建数据库: mysqladmin -u root -p密码 create 数据库名称 说明:用法与mysql一样,-u接MySQL管理员帐号(通常为root),-p紧接管理员密码(通常为root的密码)。数据库名称为你要新增的DataBase的名称。 刪除数据库: mysqladmin -u root -p密码 drop 数据库名称 说明:用法与上述新增数据库方式一样。 关闭MySQL服务: mysqladmin -u root -p密码 shutdown 基本用法: 增加新的MySQL使用者:(方法一) (1)开启mysql数据库 mysql mysql -u root -p密码 (2)增加一个新帐号,並设置权限 mysql> insert into user values ('host','user',password('密码'),'y','y','y','y','y','y','y','y','y','y','y','y','y','y'); 说明:host->填入你要连接的主机名称(完整名称hostname+domainname),若位于本机则填localhost,若为任意主机,则填写%。 user-->你要设置的帐号 密码-->你要设置的密码 之后14个y代表着14个不同的权限,依序为 1.Select_priv (查询)2.Insert_priv (插入)3.Update_priv(更新)4.Delete_priv(删除) 5.Index_priv(索引)(后面的就不一一解释了根据字面意思理解)6.Alter_priv 7.Create_priv 8.Drop_priv 9.Grant_priv 10.References_priv 11.Reload_priv 12.Shutdown_priv 13.Process_priv 14.File_priv 如果你不开放权限,则在该项目下填n即可。 增加新的MySQL使用者:(方法二)(比较安全) 格式: mysql> GRANT 权限 ON 数据库(或数据表TABLE) TO user@host IDENTIFIED BY '密码'; 说明:权限授与共分三种: 对数据库(DateBase)有十五种权限: ALL PRIVILEGES ALTER CREATE DELETE DROP FILE INDEX INSERT PROCESS REFERENCES RELOAD SELECT SHUTDOWN UPDATE USAGE 对数据表(Table)则只有八种权限: SELECT INSERT UPDATE DELETE CREATE DROP INDEX ALTER 对资料栏(column)则只有三种权限: SELECT INSERT UPDATE user@host表示方法:表示来自host主机的user使用者。user为你准备连接MySQL的帐号,host则必须填上你连接來源的主机完整名称(hostname.domianname);例如:我想要设定的帐号为test,而且是从test.com这台主机连上來使用的,所以就写成test@test.com。若使用万用字符,则必须加上括号,例如:('test%'@'%.test.net')==>表示从.test.net网域连接上来的test开头的帐号。 GRANT的特殊处:在MySQL数据库,若找到相对应的entry则只作UPDATE,找不到才能CREATE一个新的帐号及权限。 权限设置建议:除了管理者外,其他user尽量避免设置全部权限全开。一般而言,只开SELECT、INSERT、UPDATE三项权限;进阶的user则加开DELETE、CREAT、DROP、INDEX四项权限;其他权限,能不开,则不开,以确保整个MySQL的安全性。 (1)新增帐号,并给予全部权限 mysql> GRANG ALL PRIVILEGES ON *.* TO user@host IDENTIFIED BY 'password'; 说明:将全部权限都给了从host连接上来的user这个人,并给定密码为password。 (2)新增帐号,并指定某数据库与特定权限给该帐户 mysql> GRANG SELECT,INSERT,UPDATE ON 数据库名.* TO user@host IDENTIFIED BY 'password'; 说明:开放某数据库给从host连接上来的user这个人,并给定密码为password。 刪除使用者帐号与权限: 格式: mysql> REVOKE 权限 ON 数据库(或数据表TABLE) TO user@host IDENTIFIED BY '密码'; 说明:命令与用法均与GRANT一样,特性也一样,但不做DELETE的操作,只是将权限关闭,真的要刪除时,必须用到DELETE命令。 对MySQL直接下命令作任何动作,离开MySQL系统时,必須先做更新(FLUSH)再离开! mysql> FLUSH PRIVILEGES; 在CMD命令中,检查权限的命令: mysqlaccess host user 数据库名 -U root -P 密码 说明:host->填入您要检查的来源主机名称(完整名称hostname+domainname),若位于本机则填localhost。 user-->你要检查的帐号 数据库名-->填入你要检查的数据库名称 -U root-->-u后面填入MySQL管理员的帐号(通常为root) -P 密码-->-p后面填入MySQL管理员的密码 例如:我要检查來自test.com這台机器的root帐号,对数据库test的权限是什么? 则在CMD中的MYSQL\BIN目录下输入 mysqlaccess test.com test focalmail -U root -P nnyyjj 小结:本人不推荐MYSQL在WINDOWS下使用,除非有特殊原因,而且一定要细致的管理每一个用户的权限,做好防护措施。
|
|