mysql 源码包安装

Posted 晴天小猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 源码包安装相关的知识,希望对你有一定的参考价值。

方法有:
 1.专用软件包管理器包,如rpm
 2.通用二进制格式的包,通常是用gcc,编译
 3.源码包,需要编译安装5.5之前需要make安装5.5以后使用cmake安装。
 cmake,需要额外安装功能就需要用源码包
如需要定制
不同的mysql rpm包介绍:
MySQL-devel:mysql开发包。针对mysql进行二次开发使用
MySQL-embedded:嵌入式环境使用的mysql
MySQL-client:mysql客户端
MySQL-server:mysql服务器端
MySQL-shared :被许多软件使用的mysql共享库
MySQL-shared-compat:提供的mysql共享库的兼容。是MySQL-shared的补充
MySQL-test:mysql 的测试组件
 对于我们来说最重要的是mysql 服务器软件,和客户端软件
 
mysql安装完成后的目录结构
bin:mysql的各种二进制程序存放目录
data:默认情况的数据存放目录
include:头文件目录
lib:库文件目录
man:帮助文件目录
mysql-test:测试组件
scripts:  mysql初始化脚本
share:
sql-bench:mysql基准性能测试
support-files:mysql的主配置文件目录主配置文件叫做my.cnf
 
mysql在Linux下读取配置文件的路径:
/etc/my.cnf   先找这个
/etc/mysql/my.cnf  再找这个
$MYSQL_HOME/my.cnf  最后找这个
 
也可以启动mysqld时候使用 --defults-extra-file=/path/to/file/my.cnf
 
mysql安装完成后应该进行的操作:
mysql安装完成后一般会生成5个用户,三个root 和两个匿名用户.
3个root:1 [email protected]  [email protected] 3. [email protected]你的主机名
三个root的密码都为空,应该设置密码
设置密码方法:mysqladmin -u root password ‘your passwd‘ 
或者 :SET PASSWORD FOR ‘root‘@‘localhost‘ = PASSWORD(‘newpass‘);
两个匿名用户: ‘  ‘ @localhost 和 ‘  ‘@你的主机名
匿名用户应该删除掉。
 
 
安装前,确保安装好cmake 
cmake 指定编译选项与make不同
指定安装文件的安装路径时常用选项:
-DMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/data/mysql (数据保存路径)
-DSYSCONFDIR=/etc  (配置文件路径)
 
mysql默认编译的存储引擎包括,csv,myisam,myisammrg和heap,若要安装其他引擎可以使用类似如下选项:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
若要指定不编译某引擎可以使用如下选项:
-DWITOUT_FEDERATED_STORAGE_ENGINE=1
若要编译其他功能可使用类似如下语句:
-DWITH_READLINE=1  (用于批量导入mysql数据)
-DWITH_SSL=system
其他常用选项:
DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DDEFAULT_CHARSETS=utf-8
-DENABLE_PROFILING=1  (mysql性能分析)
 
安装:
 
安装依赖软件  yum install gcc  
                       yum install gcc-c++
下载依赖软件cmake      http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
解压
tar -zxvf   tar zxvf cmake-2.8.4.tar.gz
编译
./configure --prefix=/usr/local/cmake
 
安装:make && make install
可以使用 cmake . -LH  获取cmake帮助信息
安装完cmake 之后开始准备安装mysql
首先先新建一个mysql用户和mysql组 
 
groupadd -r mysql
useradd -r  -g mysql -s /sbin/nologin mysql
新建一个用于存储数据的mysql目录,建议最好使用一个lvm,我们就先使用目录,在root下建立一个mysqldata目录
做好这些准备后,开始编译mysql
 
编译,进入到mysql解压目录执行
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \
-DMYSQL_DATADIR=/mydata/data \
-DSYSCONFDIR=/etc   \
-DWITH_INNOBASE_STORAGE_ENGINE=1  \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
 
 
如果执行上面的cmake 命令出错,提示command not found 说明环境变量没有弄好。
配置cmake 环境变量
echo ‘export PATH=/usr/local/cmake/bin:$PATH‘ >>/etc/profile
刷新配置文件
soucre /etc/profile
如果之前的cmake可以正常执行就可以安装
然后执行 make
 
最后执行make install
 
完成后切换到/usr/local/mysql 下面将该目录属主改为mysql
chown -R :mysql .
然后初始化mysql数据库
scripts/mysql_install_db --user=mysql --datadir=/root/mysqldata
复制配置文件到/etc 命名为my.cnf
cp support-files/my-large.cnf /etc/my.cnf
复制mysql.server 到/etc/init.d 目录下命令为mysqld
 cp support-files/mysql.server /etc/init.d/mysqld
设置开机启动
chkconfig --add mysqld 
 
启动mysql
service mysqld start
报错:Starting MySQL......... ERROR! The server quit without updating PID file
原因:原因应该出现在我们数据存放目录在/root/mysqldata  但是/root目录是超级用户的目录。因此mysql没有权限进入此目录
 
编辑客户端环境变量:
编辑/etc/profile.d/mysql.sh
编辑内容如下:
export PATH=$PATH/usr/local/mysql/bin
 
最后编辑/etc/my.cnf
在[mysqld]   下面添加一个mysql数据保存路径
datadir=/your/data/file/path
 
使用mysql命令 即可进入mysql。第一次登陆无需密码。登陆上去首先删除掉两个匿名用户
drop user ‘ ‘ @localhost;
drop  user ‘ ‘@127.0.0.1;
如果你的主机名是localhost 则第二条命令会报错。因为主机名是localhost的话,第二个匿名用户名字就是localhost.localdomain
因此执行
drop  user ‘ ‘ @localhost.localdomain
这些用户信息我们可以查看 有个mysql名字的数据库里面的表user。
use mysql
select User,Host,Password from user;
 
接下来给root设置密码:
 
update user set Password=PASSWORD(‘your passwd‘) where user=‘root‘;
 
 
如果mysql 安装服务器端和客户端都在同一机器上面,那么客户端将会基于mysql.sock 进行通讯
 
如果客户端服务器端,不在同一主机,则基于tcp/ip协议
 
mysql的客户端工具:
mysql
mysqldump
mysqladmin
mysqlimport
mysqlcheck

以上是关于mysql 源码包安装的主要内容,如果未能解决你的问题,请参考以下文章

mysql源码包安装方法

mysql 源码包安装

mysql-源码包安装

mysql 5.5源码包安装

MYSQL5.5源码包编译安装

编译安装mysql, mysql官网下载源码包