日期:2014-05-16  浏览次数:20665 次

mysql5.5源码安装,Mysql
一、构建环境
# 建立安装需要的目录
cd /home/bbq/mysql/mysql-3307
mkdir install  -- 安装目录
mkdir data     -- 数据文件目录
mkdir cnf      -- 配置文件目录

# 授予mysql用户文件读写权限
chown -R mysql:mysql install data cnf

二、源代码配置、编译和安装
# 进入源代码目录
cd /home/bbq/mysql/src-code/mysql-5.5.29

# 清除之前build产生的数据
make clean
rm -f CMakeCache.txt

# 配置
cmake . -DCMAKE_INSTALL_PREFIX=/home/bbq/mysql/mysql-3307/install  -DMYSQL_DATADIR=/home/bbq/mysql/mysql-3307/data/ -DMYSQL_TCP_PORT=3307 -DMYSQL_UNIX_ADDR=/home/bbq/mysql/mysql-3307/data/mysql-3307.sock -DSYSCONFDIR=/home/bbq/mysql/mysql-3307/cnf -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1

配置参数详解
http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html#option_cmake_enabled_local_infile
CMAKE_INSTALL_PREFIX  安装目录
MYSQL_DATADIR  数据目录
MYSQL_TCP_PORT 端口
MYSQL_UNIX_ADDR sock路径
SYSCONFDIR  配置文件my.cnf目录
EXTRA_CHARSETS 编译所有字符集
DEFAULT_CHARSET 默认字符集
DEFAULT_COLLATION 默认字符校对方式
WITH_INNOBASE_STORAGE_ENGINE 启用innodb引擎
ENABLED_LOCAL_INFILE 启用LOAD DATA INFILE方式导入数据

# 编译(耗时大概10-20分钟)
make

# 安装
make install

三、mysql配置
# 进入mysql安装目录
cd /home/bbq/mysql/mysql-3307/install

# 生成MySQL 授权表。利用mysql_install_db脚本生成新的MySQL 授权表
./scripts/mysql_install_db --basedir=/home/bbq/mysql/mysql-3307/install --datadir=/home/bbq/mysql/mysql-3307/data --user=mysql

# 生成配置文件(small、medium、large选一个即可)
cp support-files/my-medium.cnf /home/bbq/mysql/mysql-3307/cnf/my.cnf

# 创建mysql服务(此列服务为mysqld3307)
cp support-files/mysql.server /etc/init.d/mysqld3307

# 编辑/etc/init.d/mysqld3307
basedir=/home/bbq/mysql/mysql-3307/install
datadir=/home/bbq/mysql/mysql-3307/data

# 注册服务mysqld3307,并开启
chkconfig --add mysqld3307
chkconfig mysqld3307 on

# 启动服务
service mysqld3307 start

# 关闭服务
service mysqld3307 stop

# 更改密码
/home/bbq/mysql/mysql-3307/install/bin/mysqladmin -uroot -P3307 password 'newpassword'
如果已经安装过mysql,那么mysqladmin前面的路径必须输入,否则会报sock错误

四、
# 删除空账户
DELETE FROM mysql.user where user=' ' OR host=' ';FLUSH PRIVILEGES;

# 屏蔽host解析my.cnf中增加
skip-name-reslove