源码版 安装过程比较麻烦,要求技术水平高,但能自己去定制需要的功能,生产环境下有功能需求的话尽量使用这种版本
编译前准备:
1,开发工具和开发库这两个组要安装
yum groupinstall "开发工具" "开发库"
软件下载:
http://d.1tpan.com/tp1215930441
============================================================
# tar xf /mysql-5.1.36.tar.gz -C /usr/src/
# cd /usr/src/mysql-5.1.36/
[root@li mysql-5.0.33]# ./configure --prefix=/usr/local/mysql --enable-local-infile --with-charset=gbk --with-extra-charsets=gb2312,utf8 --with-pthread --with-libwrap --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-low-memory --with-mysqlmanager --with-big-tables --with-example-storage-engine --with-archive-storage-engine --with-csv-storage-engine --with-blackhole-storage-engine --with-ndbcluster --with-federated-storage-engine
#make ;make install
====================================
# ls /usr/local/mysql/
--编译完成后这个目录就有了
bin include info lib libexec man mysql-test share sql-bench
第一步:手动编写配置文件
[root@li /]# mkdir /usr/local/mysql/etc
--建立一个存放配置文件的目录
[root@li /]# vim /usr/local/mysql/etc/my.cnf
--编写my.cnf
[mysqld]
port=3307
--端口不要和rpm版的3306冲突,这里使用3307
datadir=/data
--数据文件存放目录
socket=/var/run/mysqld/mysql5.socket
--这里的mysql5是自定义的
pid-file=/var/run/mysqld/mysql5.pid
log=/var/log/mysqld/mysql5.log
log-err=/var/log/mysqld/mysql5-err.log
--这两个日志参数都有点问题(因为5.0与5.1的版本兼容的问题),但不影响启动。
第二步:建立配置文件里所写的相关目录,并修改相应的权限
[root@li /]# mkdir /data /var/run/mysqld/ /var/log/mysqld
[root@li /]# chown mysql.mysql /data /var/log/mysqld /var/run/mysqld/ /usr/local/mysql/ -R
第三步:配置服务脚本
[root@li /]# cp /usr/src/mysql-5.1.36/support-files/mysql.server /etc/init.d/mysql5
--拷贝服务脚本模版到正确的位置
[root@li /]# vim /etc/init.d/mysql5 --修改使之指向新编写的配置文件
conf=/usr/local/mysql/etc/my.cnf
--修改这句
[root@li /]# chmod 755 /etc/init.d/mysql5 --给服务脚本加执行权限
第四步:初始化数据库,第一次都需要初始化
[root@li /]# /usr/local/mysql/bin/mysql_install_db --datadir=/data/ --user=mysql
第五步:启动服务,并登录
/etc/init.d/mysql5 start
或
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf
# /usr/local/mysql/bin/mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
--上面找不到socket文件,因为我编译时没有把下面这个参数指定,所以默认找/tmp/mysql.sock
--with-unix-socket-path
[root@li /]# /usr/local/mysql/bin/mysql --socket=/var/run/mysqld/mysql5.socket
--现在登录需要指定socket文件的位置,要想不指定,可以按下面方法做
登录时不指定socket的方法:
在配置文件/usr/local/mysql/etc/my.cnf下加上如下一段
[client]
socket=/var/run/mysqld/mysql5.socket
[root@li /]# /usr/local/mysql/bin/mysql --再次登录就不需要指定socket文件了
--为了登录方便(输入/usr/local/mysql/bin/mysql太长),可以用下面的方法来做,然后使用mysql5这个命令来登录
# cp /usr/local/mysql/bin/mysql /bin/mysql5
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26465805/viewspace-719985/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26465805/viewspace-719985/