免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2734 | 回复: 2
打印 上一主题 下一主题

[FreeBSD] freebsd如何通过ports安装mysql/Apache? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-29 10:33 |只看该作者 |倒序浏览
freebsd如何通过ports安装mysql/Apache?
我通过ports安装了N次,结果都是找不到安装程序,
哪位大哥哥能发一下,通过ports安装mysql/Apache?
谢谢!

论坛徽章:
0
2 [报告]
发表于 2005-04-29 11:17 |只看该作者

freebsd如何通过ports安装mysql/Apache?

升级ports

论坛徽章:
0
3 [报告]
发表于 2005-04-29 11:50 |只看该作者

freebsd如何通过ports安装mysql/Apache?

MySQL安装,这里说的是手工安装,如果用ports安装,的好好看看MAKEfiles文件,弄清楚一些设置才方便。安装好运行了 mysql_db_install脚本以后就会建立数据目录和初始化数据库。如果我们用MySQL源码包安装,而且安装目录是 /usr/local/mysql,那么数据目录一般会是/usr/local/mysql/var。数据库系统由一系列数据库组成,每个数据库包含一系列数据库表。MySQL是用数据库名在数据目录建立建立一个数据库目录,各数据库表分别以数据库表名作为文件名,扩展名分别为 MYD、MYI、frm的三个文件放到数据库目录中。安装后用mysql_install_db建立DB,启动有问题查 /usr/local/mysql/var下的hostname.err档(注意这个目录的权限),还有,一般是用mysqld_safe来启动。
这里我用ports安装Mysql
/usr/ports/databases/mysql41-server/make install
下载、检查、编译、安装,增加mysql的用户和用户组,结束。一个漫长的过程,等吧。
/usr/local/etc/rc.d/mysql-server.sh start启动没有反应,/usr/local/bin/mysqld_safe报错。
原来访问mysql要一个专门的用户,而且必须给相应的访问权限。用ports安装,已经建立了一个mysql组和mysql用户。换成root用户启动。
./mysqld_safe --user=root &
或者修改/usr/local/etc/rc.d/mysql-server.sh将启动用户更改为root。
虽然启动了Mysql,但root用户启动mysql服务觉得不妥,安全上可能得不到保证。
最终应该是这样启动Mysql
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
其实,MySQL从3.23.15版本开始时作了小小的改动,默认安装后服务要用mysql用户来启动,不允许root用户启动。如果非要用root用户来启动,必须加上-user=root的参数 (./safe_mysqld -user=root &。因为MySQL中有LOAD DATA INFILE和SELECT ... INTO OUTFILE的SQL语句,如果是root用户启动了MySQL服务器,那么,数据库用户就拥有了root用户的写权限。
(没有彻底搞清楚的一个问题,估计得chown相关目录和文件的权限)
[另外]
Mysql安装默认访问密码为空,mysql默认的数据库连接数是100
这个得改一改,网上有讲的很多。
[其它]
忘记了MySQL的root密码,可以在启动MySQL服务器时加上参数--skip-grant-tables来跳过授权表的验证 (./safe_mysqld --skip-grant-tables &,这样就可以直接登陆MySQL服务器,然后再修改root用户的口令,重启MySQL就可以用新口令登陆了。
启动MySQL服务器时加--skip-show-database使一般数据库用户不能浏览其它数据库。
启动MySQL服务器时加上--chroot=path参数,让mysqld守护进程运行在chroot环境中。这样SQL语句LOAD DATA INFILE和SELECT ... INTO OUTFILE就限定在chroot_path下读写文件了。这里有一点要注意,MySQL启动后会建立一个mysql.sock文件,默认是在/tmp 目录下。使用了chroot后,MySQL会在chroot_path/tmp去建立mysql.sock文件,如果没有chroot_path/tmp 目录或启动MySQL的用户没有这个目录写权限就不能建立mysql.sock文件,MySQL会启动失败。比如我们加了--chroot= /usr/local/mysql/启动参数,那么最好建立一个启动MySQL的用户能写的/usr/local/mysql/tmp目录,当然我们也可以用--socket=path来指定mysql.sock文件的路径,但这个path一定要在chroot_path里面。
启动MySQL服务器时加上--log-slow-queries=file参数,这样mysqld会把SQL命令执行时间超过 long_query_time的写入file文件。如果没有指定=file,mysqld默认会写到数据目录下的hostname-slow.log。如果只指定了filename,没有指定路径,那么mysqld也会把filename写到数据目录下。我们通过这个日志文件可以找出执行时间超长的查询语句,然后尽可能的优化它减轻MySQL服务器的负担。
如果我们只需本机使用MySQL服务,那么我们还可以加上--skip-networking启动参数使MySQL不监听任何TCP/IP连接,增加安全性。(非常推荐)

*********************************
不知道问题是否解决:因为目录访问权限的问题,我用ports安装的mysql的数据库在/var/db/mysql
# chown -R mysql /var/db/mysql
# chgrp -R mysql /var/db/mysql
# /usr/local/etc/rc.d]# ./mysql-server.sh start
启动正常。但具体使用时,不知还会有什么问题,心理没有底,始终未全部理解,请高手讲讲啊。
有帖子介绍说还需:
# chown -R root
# chgrp -R root
我有点不解,和root用户有什么关系?所有安装都是在root权限下做的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP