MYSQL简介:
MYSQL是我们目前使用环境中的一款免费的中小型数据库软件。一般作用域为UNIX和LINUX的相关操作系统。因为,在UNIX和LINUX中才能对其完全删除,而在WINDOWS中,无论你是删除目录或修改路径,那么你下次安装的MYSQL将是不会成功的。因为,当你第一次运行MYSQL时,系统已经自动注册了MYSQL的版本,存放地址,数据库存放地址,也就是说,当你希望在删除MYSQL后,在没有重新安装原操作系统的前提下,你的安装路径,数据库存放路径以及MYSQL版本,都不能够使你的数据库使用成功。而它另外一个方面(使用用户)为中小型企业用户。针对编程性软件,根据目前的测试结果,C++需要安装MYSQL FOR ODBC才能远程连接成功,QT,无须安装该软件(请看云帆的文章),其余编程条件目前还没测试。
安装:
在WINDOWS下的CMD命令行中,进入MYSQL中的BIN目录内,运行一次MYSQLD就OK了,如果需要针对硬件条件安装那么请运行mysqld-(当然也需要在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.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下使用,除非有特殊原因,而且一定要细致的管理每一个用户的权限,做好防护措施。
阅读(2714) | 评论(0) | 转发(0) |