W3CHINA Blog首页    管理页面    写新日志    退出

Blue blue sky

[工作八卦]win2000下apache+openssl+php+mysql配置笔记(补完篇)
小工头 发表于 2005/7/5 18:47:07

mysql安装并不费劲,但是配置到网站环境就比较费劲了。mysql的缺省设置是本地的任何用户都可以连接到mysql服务器,连用户名都可以不要,这一点让俺很不爽。按照mysql中文手册的指点,俺把它配置成必须经过用户名和口令验证才能连接。可是,配置之后一点反应都没有。俺又试了N种方法,还是无效,这才想起来也许应该重启mysql服务。重启之后,终于实现了只有用户名+口令才能连接,可是唯一的root用户的口令被俺改坏了,不能通过验证,晕!倒腾了半天,差点要卸载重装,最后终于解决了这个问题。现在就把整个安装和调试过程整理一下。 mysql俺用的是从官方网站下载的mysql-3.23.58-win.zip。解压缩之后用命令行方式进入bin子目录,运行mysqld-nt --install开始安装,这样就会将mysql注册为windows服务,可以通过windows的控制面板启动和停止mysql。一路next安装完成,之后重启电脑。</P> <P>现在开始配置mysql。mysql在windows系统下的配置比较方便,不像UNIX,第一次安装的时候还要运行scripts子目录下的mysql_db_install脚本。实际上,俺装出来的mysql压根就没有scripts这个目录,害得俺白找了老半天。mysql安装好之后会建立两个名为mysql和test的数据库,其中mysql存放着mysql的访问权限表,名为user。为了控制本地用户访问mysql,需要在字符界面进行以下操作:mysql mysql(进入mysql字符界面,提示符变为mysql>)mysql>delete from user where host='localhost' and user='';mysql>quit注意mysql的SQL语句最后面加上“;”就开始执行了。只要不输入“;”,SQL语句换行也没问题。 使用mysqladmin reload读入新的设置。由于进入mysql时并没有输入用户名,此时mysqladmin会报错。不理,报错就说明配置生效了。操作完毕之后重启mysql,可以在字符界面用mysqld-nt,也可以在控制面板直接重启服务。重启之后,本地用户只能通过用户名+口令访问mysql。举个例子,访问mysql中的mysql数据库,所用的语句是:mysql -u user_id -p mysql之后会提示输入口令。注意-p后面跟的是数据库名而不是口令。如果要在同一行输入口令的话,可以紧跟在-p后面输入口令,不留空格。不推荐这种方式,因为此时口令将以明文方式显示在屏幕上。另外,数据库名不一定要在此时输入,进入mysql字符界面之后,可以用use mysql(注意没有“;”)切换到mysql数据库。 接下来修改root口令。mysql缺省设置的root口令为空,无语……在windows环境下的mysql共享版,可以用以下方法修改root口令:mysql -u root mysql(以root登录到mysql)mysql>UPDATE user SET password=PASSWORD('your password') WHERE user='root';mysql>QUIT注意'your password'才是真正的口令,外面的password()是调用的加密函数,一定不能省,不然就跟俺一样差点死定了。使用mysqladmin -u root -p reload输入root口令之后读入新的设置。 假如修改口令的时候忘了加上password()这个加密函数,root口令就会失效而无法登录。如果实现已经设置mysql本地登录必须使用用户名+口令,那就……可以用mysqld-nt --skip-grant-tables重新启动mysql。此时mysql不读取权限表,因此所有用户都拥有超级用户权限,危险~~~~重新设置root口令,然后重启mysql,这件事就结束了。 接下来在mysql中添加用户和设定权限。mysql中文参考手册给了这样一些例子:mysql>GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;mysql>GRANT ALL PRIVILEGES ON *.* TOmonty@'%' IDENTIFIED BY 'something' WITH GRANT OPTION;mysql>GRANT RELOAD,PROCESS ON *.* TO admin@localhost;mysql>GRANT USAGE ON *.* TO dummy@localhost;(注意,以上操作最好以root身份登录到mysql后进行;mysql中文参考手册貌似有两处印刷错误,已经订正。)这些GRANT语句安装3个新用户: monty是可以从任何地方连接服务器的一个完全的超级用户,但是必须使用口令(口令就是'something'。注意,应当同时对monty@localhost和monty@'%发出GRANT语句。如果我们增加localhost条目,对localhost的匿名用户条目在我们从本地主机连接接时由mysql_install_db创建的条目(缺省条目)将优先考虑,因为它有更特定的Host字段值,所以在user表的顺序更靠前。 admin可以从localhost进行没有口令的连接,并且具有eload和process管理权限。这允许用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,以及mysqladmin processlist。没有授予数据库有关的权限。可以可以用grant语句追加权限。dummy只能从本地主机连接,不使用口令。全局权限被设置为'N'-USAGE权限类型,就是没有权限的意思。(其中的'%'是通配符,表示任意地址)实际上,可以事先为新用户分配好数据库,然后更细致地给用户分配对应数据库上的权限。例如俺给自己的HTTP服务器分配了一个数据库,名为website,对应的用户名为web。相应的授权语句是:mysql>GRANT insert,update,delete,create,index,drop ON website.* TO web@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;mysql> GRANT insert,update,delete,create,index,drop ON test.* TO web@'%' IDENTIFIED BY 'something' WITH GRANT OPTION; 在数据库中建好要用的表,就可以用PHP来试试看能不能连接mysql了。(多说一句,使用show tables;可以看已经存在的表的名称,使用describe 表名可以看数据表的结构。)PHP的测试代码如下: <?$db_user="web";$db_host="localhost";$db_pwd="*******";$db_name="website";$db_table="user_info";$mysql_link=mysql_connect($db_host,$db_user,$db_pwd);$column=mysql_list_fields($db_name,$db_table,$mysql_link);for($i = 0;$i &lt; mysql_num_fields($column);$i++){ print mysql_field_name($column,$i)."<br>";}mysql_close($mysql_link);?> 最后那句mysql_close($mysql_link);不要也可以,但是为了美观还是写了。在浏览器地址栏输入http://localhost/testdb.php,看到数据表的各项名称。连接成功!之后又尝试了在PHP中向数据表添加数据项,同样成功!至此,俺的网站环境就基本搭建成功了。 P.S.:貌似俺的blog访问量暴涨,出了什么事?

阅读全文(2265) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

 
 



This is home

.: 公告

有人的地方就有恩怨

有恩怨的地方就是江湖

人在江湖漂,谁能不挨刀


Bloginess

«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31

.: 我的分类(专题)

首页(629)
杂项(69)
我喜欢过的声音(35)
耳机评测(18)
七天乐(127)
工作八卦(174)


In the Bowl

.: 最新日志

变化:俺的2012
迟来的总结,俺的2011
暂停更新:娶了媳妇不上网
一次坦诚的大会
妹子,妹子!
领导满月
当了领导能怎样
俺的播放列表
俺的重构总结
开会的故事

.: 最新回复

回复:迟来的总结,俺的2011
回复:暂停更新:娶了媳妇不上网
回复:暂停更新:娶了媳妇不上网
回复:小学生作文之记一次拔河比赛
回复:暂停更新:娶了媳妇不上网
回复:暂停更新:娶了媳妇不上网
回复:暂停更新:娶了媳妇不上网
回复:一次坦诚的大会
回复:一次坦诚的大会
回复:一次坦诚的大会


The Fishkeeper
blog名称:少年包工头的工作日记
日志总数:629
评论数量:1458
留言数量:56
访问次数:8966713
建立时间:2004年12月8日



Text Me

.: 留言板

签写新留言

你太客气了
工作是为了更好的生活。。。
飘过!
初烧耳机
路过留声
自动浇花
节日快乐
向您请教
HAHA
咨询下呵呵


Other Fish in the Sea

.: 链接



Lake JJ

真!鱼家MM

传说中的99

王小四的自留地

挣扎中的职场新人tintin同学




站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.344 second(s), page refreshed 144754030 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号