mysql 最新的版本都需要cmake编译安装,估计以后的版本也会采用这种方式,所以特地记录一下安装步骤及过程,以供参考。
注意:此安装是默认centos下已经安装了最新工具包,比如GNU make, GCC, Perl, libncurses5-dev,如果在编译安装过程中发现有缺失的工具包,先yum install 单独下载安装再继续即可。
以下安装中涉及的几点需要提前说明的问题:
所有下载的文件将保存在 /usr/local/src/ 目录下
mysql 将以mysql用户运行,而且将加入 service 开机自动运行
mysql 将被安装在 /usr/local/mysql/ 目录下
mysql 默认安装使用 utf8 字符集
mysql 的数据和日志文件保存在 /var/mysql/ 对应目录下
mysql 的配置文件保存于/var/mysql/my.cnf
一. Centos 用 wget 下载需要的软件,保存到目录 /usr/local/src/ 下
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.23.tar.gz/from/http://mysql.he.net/
或者使用 wget http://mysql.he.net/Downloads/MySQL-5.5/mysql-5.5.23.tar.gz
wget http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz
wget http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz
二. 安装 cmake
1 | cd /usr/local/src |
三. 编译安装 MySQL 5.5.23
1 | /usr/sbin/groupadd mysql |
四. 配置启动MySQL 5.5.23
- 若有需要请先修改 mysql 的配置 my.cnf
1 | vi /var/mysql/my.cnf |
- mysql 初始化安装
1 | /usr/local/mysql/scripts/mysql_install_db \ |
- 将 mysql 加入开机启动
1 | chmod +x /etc/init.d/mysqld |
- 启动 mysql
1 | service mysqld start |
五. 如果在启动时遇到:The server quit without updating PID file 这个错误可能是:
1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!
2.可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !http://blog.rekfan.com/?p=186
4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
5.skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
6.错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限
7.selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。
参考地址:http://hi.baidu.com/mucunzhishu/item/aa78b3eaa9f518ffe0a5d487
最后登录mysql命令行,执行:
1 | GRANT ALL ON my_database.* TO my_user@'%' IDENTIFIED BY 'some_password'; |
添加用户访问权限