以下的文章主要介绍的是MySQL SUSE SLES11安装与配置笔记的实际操作过程,我们是在Linux下两个不同的版本MySQL安装实战(MySQL5和MySQL4)演示,以下就是文章的而具体内容描述。
Redhat9.2 安装MySQL5.0
fedora7安装MySQL
(1) 下载
从MySQL官网 下载到最新的发行版本5.1.45,简单起见,直接下载SLES11的RPM版本:
MySQL-server-community-5.1.45-1.sles11.i586.rpm MySQL-client-community-5.1.45-1.sles11.i586.rpm MySQL-shared-community-5.1.45-1.sles11.i586.rpm
对MySQL版本的选择,个人意见,如果是作为产品首先考虑稳定性和性能,功能够用即可,版本上谨慎保守一些,但是作为一般开发用用,追追新也无所谓。
(2) MySQL SUSE SLES11 安装
1. rpm安装
执行:rpm -ivh MySQL-server-community-5.1.45-1.sles11.i586.rpm Preparing... ########################################### [100%] 1:MySQL-server-community ########################################### [100%] MySQL 0:off 1:off 2:on 3:on 4:on 5:on 6:off PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/bin/MySQLadmin -u root password 'new-password' /usr/bin/MySQLadmin -u root -h ss-server password 'new-password' Alternatively you can run: /usr/bin/MySQL_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. Please report any problems with the /usr/bin/MySQLbug script! Starting MySQL. done Giving MySQLd 2 seconds to start
使用ps -ef | grep MySQL 看到的是msyqld进行已经启动。netstat -nat 看到的是默认的3306端口已经在监听。rpm的安装的确是够简单。
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
但是这样的默认安装,是没有指定安装路径的,因此MySQL不会MySQL SUSE SLES11 安装到我们期望的地点。因此只好重新来过,先卸载吧:
rpm -e MySQL-server-community-5.1.45-1.sles11
使用--prefix选项重新安装:
rpm -ivh --prefix=/work/soft/database/MySQL/ MySQL-server-community-5.1.45-1.sles11.i586.rpm
结果发生错误:
error: package MySQL-server-community is not relocatable
居然不能重新定位MySQL SUSE SLES11 安装路径,这个就麻烦了。只好重新下载tarbell的版本MySQL-5.1.45.tar.gz,自己动手编译。
2. 编译
./configure --prefix=/work/soft/database/MySQL/MySQL5.1 --localstatedir=/work/soft/database/MySQL/MySQLdata --with-charset=utf8 --with-extra-charsets=all --with-client-ldflags=-all-static --with-MySQLd-ldflags=-all-static --with-unix-socket-path=/work/soft/database/MySQL/tmp/MySQL.sock
configure的过程中出现错误而中断:
checking for termcap functions library... configure: error: No curses/termcap library found
先把这个东西装好
gunzip ncurses-5.7.tar.gz tar xvf ncurses-5.7.tar cd ncurses-5.7/ ./configure make make install
安装ncurses之后,重新configure成功,继续make,make install完成编译MySQL SUSE SLES11 安装。
然后执行scripts/MySQL_install_db.
Installing MySQL system tables... OK Filling help tables... OK To start MySQLd at boot time you have to copy support-files/MySQL.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /work/soft/database/MySQL/MySQL5.1/bin/MySQLadmin -u root password 'new-password' /work/soft/database/MySQL/MySQL5.1/bin/MySQLadmin -u root -h ss-server password 'new-password' Alternatively you can run: /work/soft/database/MySQL/MySQL5.1/bin/MySQL_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /work/soft/database/MySQL/MySQL5.1 ; /work/soft/database/MySQL/MySQL5.1/bin/MySQLd_safe & You can test the MySQL daemon with MySQL-test-run.pl cd /work/soft/database/MySQL/MySQL5.1/MySQL-test ; perl MySQL-test-run.pl Please report any problems with the /work/soft/database/MySQL/MySQL5.1/bin/MySQLbug script!
接着很重要的事情,设置MySQLd的开机启动:
cp support-files/MySQL.server /etc/init.d/MySQL chkconfig MySQL on
为了方便,将MySQL 的bin目录加到PATH中,在/etc/profile中加入myslq/bin,顺便增加两个别名方便操作:
export PATH=$JAVA_HOME/bin:$SOFT_ROOT/database/MySQL/MySQL5.1/bin:$PATH alias MySQL_start="MySQLd_safe&" alias MySQL_stop="MySQLadmin -uroot -p shutdown"
3. 配置
按照普遍推荐的标准设置,需要增加MySQL的user和group:不过上面的MySQL SUSE SLES11 安装过程结束后,发现已经存在名为MySQL的user和group了:
ss-server:/etc # groupadd MySQL groupadd: Group `MySQL' already exists. ss-server:/etc # useradd MySQL -g MySQL useradd: Account `MySQL' already exists.
用ps命令看到的是
ss-server:/etc # ps -ef | grep MySQL root 3743 1 0 18:58 00:00:00 /bin/sh