CMAKE方式编译安装Mysql5.5
1、源码cmake方式编译安装MySQL5.5.32
安装前先安装:
yum install ncurses-devel -y
1.1 下载Mysql和cmake安装包:
wget http://wwwNaNake.org/files/v2.8/cmake-2.8.8.tar.gz
1.2 查看系统环境
cat /etc/redhat-release
uname -r
uname -m
1.3 安装cmake包
tar zxf cmake-2.8.8.tar.gz
cd cmake-2.8.8
./configure
gmake
gmake install
cd ../
1.4 开始安装mysql
1.4.1 创建用户和组
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql
yum install ncurses-devel -y
1.4.2 解压编译MySQL
tar zxf mysql-5.5.32.tar.gz
cd mysql-5.5.32
cmake -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \
-DMYSQL_DATADIR=/application/mysql-5.5.32/data\
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock\
-DDEFAULT_CHARSET=gbk\
-DDEFAULT_COLLATION=gbk_chinese_ci\
-DENABLED_LOCAL_INFILE=ON\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_FEDERATED_STORAGE_ENGINE=1\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1\
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
make
make install
ln -s /application/mysql-5.5.32/ /application/mysql
如果上述操作未出现错误,则MySQL软件的安装就算成功了。
1.4.3 初始化配置MySQL
1.查看默认模板配置文件
[[email protected]]# ll support-files/my*.cnf
-rw-r--r--1 root root 4759 Apr 25 18:19support-files/my-huge.cnf
-rw-r--r--1 root root 19809 Apr 25 18:19 support-files/my-innodb-heavy-4G.cnf
-rw-r--r--1 root root 4733 Apr 25 18:19support-files/my-large.cnf
-rw-r--r--1 root root 4744 Apr 25 18:19support-files/my-medium.cnf
-rw-r--r--1 root root 2908 Apr 25 18:19support-files/my-small.cnf
2.选择配置文件
/bin/cpsupport-files/my-small.cnf /etc/my.cnf
测试环境选小的,生产环境可以根据硬件选择support-files/my-innodb-heavy-4G.cnf
3.配置环境变量
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
tail -1 /etc/profile
source /etc/profile
echo $PATH
4.初始化数据文件(容易出错的步骤)
#建立mysql数据文件目录
mkdir -p /application/mysql/data
#授权mysql用户访问mysql的安装目录
chown -R mysql.mysql /application/mysql/*
chmod -R 1777 /tmp
#初始化数据库文件(如果重新初始化数据库文件,必须先执行:rm -fr /application/mysql/data/*)
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql--datadir=/application/mysql/data --user=mysql
特别提示:
a.如果用mysql 5.0,5.1省略指定datadir会出错。
5.设置常规方式启动关闭脚本
cd /application/tools/mysql-5.5.32/
#拷贝mysql启动脚本到/etc/init.d/下
cp support-files/mysql.server /etc/init.d/mysqld
#授权700权限,即脚本可执行
chmod 700 /etc/init.d/mysqld
/etc/init.d/mysqldstart
chkconfig mysqld on
chkconfig --list mysqld
6.登录mysql
7.简单优化mysql
a.删除test库:
mysql>show databases;
+--------------------+
|Database |
+--------------------+
|information_schema |
|mysql |
|performance_schema |
|test |
+--------------------+
4 rowsin set (0.03 sec)
mysql>drop database test;
Query OK, 0 rows affected (0.04 sec)
mysql>show databases;
+--------------------+
|Database |
+--------------------+
|information_schema |
|mysql |
|performance_schema |
+--------------------+
3 rowsin set (0.00 sec)
b.清除并修改管理员用户
mysql>select user,host from mysql.user;
+------+-----------+
| user| host |
+------+-----------+
| root| 127.0.0.1 |
| root| ::1 |
| | Mysql |
| root| Mysql |
| | localhost |
| root| localhost |
+------+-----------+
6 rowsin set (0.00 sec)
mysql>delete from mysql.user;
QueryOK, 6 rows affected (0.07 sec)
mysql>select user,host from mysql.user;
Emptyset (0.00 sec)
mysql>grant all privileges on *.* to system@'localhost' identified by '1234' withgrant option;
QueryOK, 0 rows affected (0.00 sec)
mysql>flush privileges;
QueryOK, 0 rows affected (0.00 sec)
mysql>grant all privileges on *.* to system@'127.0.0.1' identified by '1234' withgrant option;
QueryOK, 0 rows affected (0.00 sec)
mysql>select user,host from mysql.user;
+--------+-----------+
|user | host |
+--------+-----------+
|system | 127.0.0.1 |
|system | localhost |
+--------+-----------+
2 rowsin set (0.00 sec)
操作过程:
[root@mysqltools]# cat /etc/redhat-release
CentOSrelease 6.4 (Final)
[root@mysqltools]# uname -r
2.6.32-358.el6.x86_64
[root@mysqltools]# uname -m
x86_64
[root@mysqltools]# tar zxf cmake-2.8.8.tar.gz
[root@mysqltools]# cd cmake-2.8.8
[[email protected]]# ./configure
CMakehas bootstrapped. Now run gmake.
[[email protected]]# gmake
[[email protected]]# gmake install
[root@Mysqlapplication]# groupadd mysql
[root@Mysqlapplication]# useradd mysql -s /sbin/nologin -M -g mysql
[root@Mysqltools]# tar zxf mysql-5.5.32.tar.gz
[root@Mysqltools]# cd mysql-5.5.32
[[email protected]]# cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \
cmake. -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \
-DMYSQL_DATADIR=/application/mysql-5.5.32/data\
-DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock\
-DDEFAULT_CHARSET=gbk\
-DDEFAULT_COLLATION=gbk_chinese_ci\
-DENABLED_LOCAL_INFILE=ON\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_FEDERATED_STORAGE_ENGINE=1\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1\
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
#Build files have been written to: /application/tools/mysql-5.5.32 如果显示这个表示cmake成功
[[email protected]]# make
[[email protected]]# make install
[[email protected]]# ln -s /application/mysql-5.5.32//application/mysql
[[email protected]]# ll support-files/my*.cnf
-rw-r--r--1 root root 4759 Apr 25 18:19support-files/my-huge.cnf
-rw-r--r--1 root root 19809 Apr 25 18:19 support-files/my-innodb-heavy-4G.cnf
-rw-r--r--1 root root 4733 Apr 25 18:19support-files/my-large.cnf
-rw-r--r--1 root root 4744 Apr 25 18:19support-files/my-medium.cnf
-rw-r--r--1 root root 2908 Apr 25 18:19support-files/my-small.cnf
[[email protected]]# cp support-files/my-small.cnf /etc/my.cnf
[[email protected]]# echo 'export PATH=/application/mysql/bin:$PATH'>>/etc/profile
[[email protected]]# tail -1 /etc/profile
exportPATH=/application/mysql/bin:$PATH
[[email protected]]# source /etc/profile
[[email protected]]# echo $PATH
/application/mysql/bin:/application/mysql/bin/:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[[email protected]]# mkdir -p /application/mysql/data
[[email protected]]# chown -R mysql.mysql /application/mysql/*
[[email protected]]# chmod -R 1777 /tmp
[[email protected]]# /application/mysql/scripts/mysql_install_db--basedir=/application/mysql --datadir=/application/mysql/data--user=mysql
[[email protected]]# cp support-files/mysql.server /etc/init.d/mysqld
[[email protected]]# chmod 700 /etc/init.d/mysqld
[[email protected]]# chkconfig mysqld on
[[email protected]]# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[email protected]]# mysql
Welcometo the MySQL monitor. Commands end with; or \g.
YourMySQL connection id is 2
Serverversion: 5.5.32 Source distribution
Copyright(c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracleis a registered trademark of Oracle Corporation and/or its
affiliates.Other names may be trademarks of their respective
owners.
Type'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
简单优化mysql
a.删除test库:
mysql>show databases;
+--------------------+
|Database |
+--------------------+
|information_schema |
|mysql |
|performance_schema |
|test |
+--------------------+
4 rowsin set (0.03 sec)
mysql>drop database test;
QueryOK, 0 rows affected (0.04 sec)
mysql>show databases;
+--------------------+
|Database |
+--------------------+
|information_schema |
|mysql |
|performance_schema |
+--------------------+
3 rowsin set (0.00 sec)
b.清除并修改管理员用户
mysql>select user,host from mysql.user;
+------+-----------+
| user| host |
+------+-----------+
| root| 127.0.0.1 |
| root| ::1 |
| | Mysql |
| root| Mysql |
| | localhost |
| root| localhost |
+------+-----------+
6 rowsin set (0.00 sec)
mysql>delete from mysql.user;
Query OK, 6 rows affected (0.07 sec)
mysql>select user,host from mysql.user;
Emptyset (0.00 sec)
mysql>grant all privileges on *.* to system@'localhost' identified by '1234' withgrant option;
Query OK, 0 rows affected (0.00 sec)
mysql>flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>grant all privileges on *.* to system@'127.0.0.1' identified by '1234' withgrant option;
Query OK, 0 rows affected (0.00 sec)
mysql>select user,host from mysql.user;
+--------+-----------+
|user | host |
+--------+-----------+
|system | 127.0.0.1 |
|system | localhost |
+--------+-----------+
2 rowsin set (0.00
1、CMAKE安装Mysql时遇到的问题:
--Check size of wint_t - done
--Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMakeError at cmake/readlineNaNake:83 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.OnDebian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it isncurses-devel.
CallStack (most recent call first):
cmake/readlineNaNake:127 (FIND_CURSES)
cmake/readlineNaNake:217(MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:269 (MYSQL_CHECK_READLINE)
--Configuring incomplete, errors occurred!
解决方法:
rm CMakeCache.txt
yum install ncurses-devel -y
然后再cmake