安装Mysql前需要安装cmake
1.安装cmake
-
下载cmake
wget http://www.cmake.org/files/v3.2/cmake-3.2.3.tar.gz
-
解压安装
tar -zxvf cmake-3.2.3.tar.gz cd cmake-3.2.3 ./bootstrap
如果报以下错误就需要装c++编译器(没有则跳过该安装命令)
yum install gcc-c++
安装完c++编译器后重新执行./bootstrap命令。
接着
gmake
gmake install
2.安装mysql
-
下载mysql
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz
-
创建MySQL用户
groupadd mysql useradd -M -s /sbin/nologin mysql # -M不创建home目录,-s指定shell为不登录 gpasswd -a mysql mysql
-
解压编译安装
-
解压
tar -zxvf mysql-5.6.16.tar.gz
-
预编译
cd mysql-5.6.16.tar.gz #进入nginx目录 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_DEBUG=0 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_DATADIR=/home/mysql/data \ -DMYSQL_USER=mysql
-DCMAKE_INSTALL_PREFIX= 安装根目录
-DCMAKE_INSTALL_PREFIX= unix套接字目录
-DDEFAULT_CHARSET= 默认字符集
-DDEFAULT_COLLATION=默认编码
-DWITH_EXTRA_CHARSETS= 额外的编码,请使用ALL来编译。
-DWITH_MYISAM_STORAGE_ENGINE=1 编译myisam存储引擎,默认的存储引擎,不加也可以
-DWITH_INNOBASE_STORAGE_ENGINE=1 支持InnoDB存储引擎,这个也是默认安装的
-DWITH_READLINE=1 使用readline功能
-DENABLED_LOCAL_INFILE=1 可以使用load data infile命令从本地导入文件
-DMYSQL_DATADIR=数据库 数据目录
-
编译
make
-
安装
make install
-
配置
创建仓库目录以及设置权限
mkdir /usr/local/mysql # 创建目录 mkdir /usr/local/mysql/data # 数据仓库目录 chown -R mysql:mysql /usr/local/mysql
复制配置文件
cp support-files/my-default.cnf /etc/my.cnf #复制配置文件 cp support-files/mysql.server /etc/init.d/mysqld #复制启动脚本 chmod +x /etc/init.d/mysqld #给启动脚本执行权限
修改/etc/my.cnf文件
datadir=/usr/local/mysql/data default-storage-engine=MyISAM log-error = /usr/local/mysql/mysql_error.log pid-file = /usr/local/mysql/mysql.pid user = mysql tmpdir = /tmp
为了以后使用方便,可以为mysql的二进制可执行文件和动态链接库文件做一个软连接
ln -s /usr/local/mysql/bin/* /usr/local/bin/ # 为可执行的二进制文件做软连接 ln -s /usr/local/mysql/lib/mysql/lib* /usr/lib/ # 为动态链接库做一个软连接
安装默认数据表
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
-
启动
service mysqld start #启动mysql netstat -antlp ¦ grep 3306 #查看Mysql是都占用了TCP的3306端口
-
附:遇到的问题
[root@localhost etc]# mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
这是由于mysql 默认的mysql.sock 是在/var/lib/mysql/mysql.sock,但linux系统总是去/tmp/mysql.sock查找,所以会报错
-
解决方法,创建软连接
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
-
-