LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 630|回复: 2

mysql学习日记(一)

[复制链接]
发表于 2003-11-13 11:44:37 | 显示全部楼层 |阅读模式
今天开始正式学习mysql。说实话,我不知道怎么入手来学。mysql的文档我也看过了一些,但是看是没有用的,只有经过自己动手实践才是自己的。
这个是我每天学习mysql的日记,写出来跟大家分享,希望每天都能写一点,欢迎大家监督。当然更欢迎高手指点,特别是我不对的地方。
好,废话不说,第一步,当然是先把mysql装上去了。
第一次安装,为了图方便省事,就用rpm安装了。我下载了
MySQL-client-4.0.15-0.i386.rpm  MySQL-shared-4.0.15-0.i386.rpm
MySQL-devel-4.0.15-0.i386.rpm   MySQL-shared-compat-4.0.15-0.i386.rpm
MySQL-server-4.0.15-0.i386.rpm
5个rpm包,rpm -ivh MySQL* 一股脑装上了。唉,用rpm就是方便啊。
rpm装好以后,mysql服务程序便自己启动了。并且默认系统运行级别3,5自动开启服务,轻松啊!
装好了以后,我不知道怎么开始入手。急急忙忙打开一本mysql的书。开始了第一个命令:mysql 。
ok,mysql命令果然没有辜负我,出现了预期的mysql> 对话框。然后我用show databases;看看系统中现有的数据库。只有mysql和test两个数据库。ok,到mysql数据库看看。
输入命令use mysql 进入mysql数据库。
show tables ;看看这个数据库里有什么表。还不少呢。总共有6个表。分别是columns_priv,db,func,host,tables_priv,user。我不知道这些表是不是mysql数据库的配置文件,但是user表我知道一点的。用来存储数据库的用户名的。那就先学习user表了。
输入命令 select * from user ; 哇,很多表项啊。分别是host ,user,password,还有select_priv,insert_priv等等授予权限的表项。host是指用户可以登陆mysql的主机名。user和password自然就是用户名和密码了。安装好以后,mysql默认应该有两个用户名吧(这个我自己猜的,不知道对不对),一个是root,还有一个是匿名用户,都是没有密码的。第一次输入的mysql命令的全名应该是 mysql -h hostname -u username -ppassword。默认情况下hostname是localhost,username是登陆系统的用户名。如果是以root登陆,那么就是以root登陆mysql,如果是一般用户,那么应该就是以匿名用户登陆mysql(我的理解,不知道对不对)。
现在应该为root用户指定一个口令了。有三种方式可以指定用户名:
第一种:shell> mysqladmin -u root password new_password 就可以了,我觉得这个是最简单的。
第二种:shell> mysql -u root mysql
        mysql> UPDATE user SET password=PASSWORD('new_password')
        WHERE user='root'
        mysql> FLUSH PRIVILEGES;
要记得告诉服务器再次读入授权表,用FLUSH PRIVILEGES命令,还要记住加分号表示命令结束。
第三种:shell> mysql -u root mysql
        mysql> SET PASSWORD FOR root=PASSWORD('new_password');
这个是在mysql3.22和以上的版本中,可以用的SET PASSWORD语句。
当使用INSERT或UPDATE语句存储一个非空口令时,必须使用password()函数加密他。这是因为在user表中以加密的形式存储口令,而不是以文本形式。使用set password语句时,也必须使用password()函数。但是如果使用GRANT ……IDENTIFIED BY 语句或mysqladmin password命令设置口令,password()函数是不必要的。他们都已经考虑到为口令加密了。
ok,root密码设好了。现在通过GRANT来添加几个用户。
shell> mysql -uroot mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO star@localhost IDENTIFIED BY 'star' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO star@"%" IDENTIFIED BY 'star' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO wind@localhost;
mysql> GRANT USAGE ON *.* TO funny@localhost;
这样添加了三个用户,star是可以从任何地方连接服务器的完全的超级用户,但是必须使用口令star。 wind可以从localhost没有口令的进行连接,并且被授予了reload和process管理权限。 funny是可以不用口令连接的用户,只能从本机连接,全局权限被设置为'N'-USAGE权限类型,也就一个没有任何权限的用户,以后可以授予他相关的权限。
第一天学习 完
发表于 2003-11-13 11:58:18 | 显示全部楼层
顶。期待楼主的第二天。
发表于 2003-11-13 22:06:05 | 显示全部楼层
感谢共享哦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表