基于cmake的mysql安装
1.1 前言
从mysql5.5起,mysql源码安装的编译工具configure开始向cmake过渡。安装方式和之前的略有不同。在这里简单介绍总结下。 安装之前,检查下GNU make, GCC, Perl, libncurses5-dev,cmake-2.8.4是否都已经安装,如果没有安装,用yum install 安装补全
1.2 安装Cmake
进入源代码目录
tar zxvf cmake-2.8.4.tar.gz
安装
cd cmake-2.8.4 ./bootstrap gmake gmake install
1.3 cmake简介
CMake 是"cross platform make"的缩写。它是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。和之前configure的语法对比如下重新编译时,需要清除旧的对象文件和缓存信息
对于configure 需要执行如下命令
make clean
对于cmake,则需要执行如下命令
rm -f CMakeCache.txt
安装选项的对比如下:
CMAKE_INSTALL_PREFIX值是安装的基本目录,其他cmake选项值是不包括前缀,是相对路径名,绝对路径包括CMAKE_INSTALL_PREFIX路径。
configure编译插件选项
--with-plugins=csv,myisam,myisammrg,heap,innobase, archive,blackhole
在cmake中没有直接对应的相同选项。对于csv,myisam,myisammrg,heap在cmake中是不需要明确指定存储引擎的名称,因为它们是强制性安装。
可以使用以下选择来安装innodb,archive,blackhole存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 (1可以使用on代替)
1.4 安装bison-2.5
进入源代码目录
解压缩
tar zxvf bison-2.5.tar.gz
安装
cd bison-2.5 ./configure make make install
1.5 Mysql安装
创建mysql用户和组
/usr/sbin/groupadd mysql /usr/sbin/useradd -g mysql mysql mkdir /usr/local/mysql mkdir /usr/local/mysql/data
解压缩进入安装目录
tar xvf mysql-5.5.27.tar.gz cd mysql-5.5.27
编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS:STRING=utf8 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DMYSQL_USER=mysql
安装
Make&&make install
1.6 安装后
1.6.1 链接文件
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
不执行这一步,运行时可能如下错误
error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
1.6.2 设置PATH环境变量
Vi /etc/profile
在profile最后加上
export PATH=”/usr/local/mysql/bin:$PATH”
保存后
source /etc/profile
1.6.3 配置参数文件
cd support-files cp my-large.cnf /etc/my.cnf
编辑my.cnf,加入以下内容
basedir = /usr/local/mysql datadir = /usr/local/mysql/data log-error = /usr/local/mysql/data/mysql_error.log pid-file = /usr/local/mysql/data/mysql.pid socket =/usr/local/mysql/data/mysql.socket //如果已经有,则修改目录为mysql的数据目录,此处是/usr/local/mysql/data
1.6.4 设置权限
cd /usr/local/mysql chown –R mysql . chgrp –R mysql .
1.6.5 mysql 初始化安装
cd /usr/local/mysql/ scripts/mysql_install_db \ --defaults-file=/etc/my.cnf \ --basedir=/usr/local/mysql \ --user=mysql \
如果产生错误like:‘WARNING: The host ‘*‘ could not be looked up with resolveip’
执行时加上 –force 选项
1.6.6 修改权限
将安装目录所有权改为root,数据目录的所有权改为你运行mysqld的用户
cd /usr/local/mysql chown -R root . chown -R mysql data
1.7 配置服务
配置服务
cd /usr/local/mysql/support-files cp mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig --level 345 mysqld on
1.8 启动与停止 mysql
systemctl start mysqld systemctl stop mysqld
1.9 设置Mysql用户账号密码
mysql安装后默认生成两个帐号:一个是root,未设置密码,可以从本机登录到mysql;另一个是匿名帐号,无帐号名、无密码,可以从本机登录,未提供用户名的连接都将假定为此帐号。这样的设置存在着安全隐患,按下面的步骤进行更改。
1) 修改root的密码
执行命令:/usr/local/mysql/bin/mysqladmin –u root –p旧密码 password 新密码或者用root登录数据库 mysql –u root 登录以后执行 Mysql>set password for ‘root’@’hostname’=password(‘新密码’);或者执行 Mysql>update mysql.user set password=password(‘新密码’) —>where user = ‘root’ and host =’hostname’; 如果不知道hostname,可先执行select host,user from mysql.user where user=’root’
2) 删除匿名用户
Root 登录后执行
mysql> delete from mysql.user where user=’’ ; 删除用户名为空的记录 mysql> delete from mysql.user where password=’’ ; 删除密码为空的记录
3) 修改完用户权限以后,执行
Mysql> flush privileges; 因为MySQL启动后,所有用户权限都是加载到内存中的;但有些权限更新操作不会刷新到内存中,这样只有下次启动时才生效,如果直接update mysql.user来修改密码等;flush privileges 强制让MySQL重新加载权限,这样刚才修改的就马上生效了。
4) 添加用
1.10 my.cnf 配置文件修改
在my.cnf文件client下增加user, password。 修改socket路径,为真实路径。
原创文章,作者:N27_Danry,如若转载,请注明出处:http://www.178linux.com/85636