mysql
有网友在论坛问到MySQL 在 SCO Unix OpenServer 下的安装,正好自己安装了个最新
的3.23.25Beta,不妨介绍一下心得:
我是在Linux 上安装的,不过其他的Unix 平台应该一样的, 古人云:“换汤不换药”么。
MySQL 老家 上有tarball 格式的Binary 。 也就是说 不用重新编译的版本选择相应平
台的文件download 然后 解开就可以了。 假设解压到 /usr/local,需要的工作无非是
gunzip
tar xvf
就可以看到下面多了一个 mysql-3.23.xx 的目录了。 我不喜欢那么长的目录名,虽然
可以用 cd mysql* 进入,但是 不爽。怎么办呢?很简单:
mv mysql* mysql
好了,就这样了。
什么?有没有搞错,安装好了?
你先生也太过份了,简直就是骗各位看官的感情么!
对了,余下的事情,说简单也简单,说复杂也复杂。
去到suport-files 目录下看看吧,有几个.cnf 文件,你挑一个顺眼的,
cp my-medium.cnf /etc/my.cnf
然后修改 /etc/my.cnf ,学问就在这里头了: 废话少说,我们直杀mysqld 那个节。
# The MySQL server
[mysqld]
port = 8888
socket = /tmp/mysql.sock
log = /var/log/mysql.log
basedir = /usr/local/mysql
datadir = /free/mysqldbf
user = mysql
看到以上这些行没有,有些就是我自己加的,有些是原来就有,但是没有参数的。 好了,
我们一个一个分析:
port 就是端口了,我们知道MySQL 缺省的端口是 3306 ,为了安全,也让别人不知道
我们的数据库服务器,我们故意更改端口,这样即使黑客扫描到8888 这个端口,也不知
道跑的是什么数据库,如果是3306 的话,你也猜得到是MySQL。
socket 就是网络的通道,你可以把它定义到其他地方,但是需要注意权限。
log 就是日志文件,缺省是写到数据库所在目录,为了管理方便,我把它写到系统的Log
目录。
basedir 就是运行 MySQL 所在的目录,注意不是mysql 所在的bin 目录。
datadir 就是MySQL 摆放数据库的目录,为了数据管理方便,我把它写到了另外的目录,
不是缺省的当前目录下的data 目录。
user 就是跑mysqld 的用户,为了安全,不建议使用root ,所以你需要建立一个专门跑
这个deamon 的用户。
就这么多了,跑之前需要在数据库目录下建立系统的数据库 mysql ,运行
./scripts/mysql_install_db
你可以看到数据库目录下增加了两个目录 mysql 和 test。 然后启动:
./bin/safe_mysqld &
大功告成了!恭喜你!
什么,“mysqld ended”!没有关系,看看error-log 里这么说!再向我汇报!
这个error-log 在数据库所在的目录下,如果有问题的话,可能是权限不够。
最最彻底的事情就是自己解剖safe_mysqld 这个shell 了。
./bin/mysqld --help 也能解决你的大多数问题。
如果要系统启动时,自动跑起来MySQL ,就
vi /etc/rc.d/rc.local
这个东东就象你熟悉的autoexec.bat ,在文件的最后加上:
cd /usr/local/mysql
./bin/safe_mysqld &
哦!搞定!