Mysql的二进制安装并手动指定data数据的位置

需要的安装包有:

mysql- 5.1.50 -linux-i686-glibc23.tar.gz

 

#tar mysql- 5.1.50 -linux-i686-glibc23.tar.gz –C /usr/local

#cd /usr/local/mysql

#groupadd –r mysql

#useradd –g mysql –s /sbin/nologin –r –M mysql

把当前目录下的所有文件属组和属主都改为mysql用户

#chown mysql:mysql . R

创建准备存放data数据的目录

#mkdir /mysql/data -pv

#scripts/mysql_install_db --datadir=/mysql/data --user=mysql

#cd /usr/local/mysql

#chown –R root .

#chown –R mysql data/

 

#cp /usr/local/mysql/support-file/my-large.cnf     /etc/my.cnf

#cp /usr/local/mysql/support-file/mysql.server   /etc/init.d/mysqld

 

#vim /etc/my.cnf                  编辑主配置文件,并在[mysqld]字段添加如下内容

       datadir = /mysql/data/

 

#ln –sv /usr/local/mysql/include/  /usr/include/mysql/

 

导出库文件

#vim /etc/ld.so.conf.d/mysql.conf

添加内容:

/usr/local/mysql/lib

#ldconfig –v

#vim /etc/profile

#. /profile

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

这行内容之前添加

PATH=$PATH:/usr/local/mysql/bin

 

第一次启动mysql

#bin/mysql_safe  --user=mysql  --datadir=/mysql/data/ &

#service mysqld start

查看3306端口是否启用,如果listen就成功了

#chkconfig mysqld on

 

 

 

以下是我在安装过程中遇到过的错误,记录下来希望对以后的学习有所帮助

如果在安装完成并把mysql.server 拷贝到/etc/init.d/目录下并命名为mysqld后执行

#service mysqld on 时提示

-bash command not found

很有可能是在/etc/my.cnf 文件中没有在[mysqld]字段添加

datadir=/mysql/data/

在安装完后有时启动#mysql提示找不到/tmp/mysql.socket

可用如下方法再次生成mysql.Socket文件

#service mysqld stop

#rm /mysql/data/*

#cd /usr/local/mysql

#scripts/mysql_install_db --datadir=/mysql/data --user=mysql

#bin/mysql_safe --user=/mysql &

#service mysqld start

#chkconfig mysqld on

即可解决问题

不过一定要先关掉mysqld进程,否则不能成功。

如果在上术过程中没有停掉mysqld进程,而又删掉了/mysql/data/目录下的mysql.pid文件,这时你再关掉进程会提示你:

MySQL manager or server PID file could not be found!

即找不到pid文件,这时别无他法,只有killmysqld进程了

#kill -9 mysqld

然后再执行下述命令即可

#cd /usr/local/mysql

#scripts/mysql_install_db --datadir=/mysql/data --user=mysql

#bin/mysql_safe --user=/mysql &

#service mysqld start

#chkconfig mysqld on