mysql下载:
ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.5/
ftp://ftp.pku.edu.cn/open/db/MySQL/
说明:MySQL自5.5版本以后开始使用cmake编译。
1、安装所需要系统库相关库文件
[root@centos64 ~]# yum install -y gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*
2、安装 cmake
[root@centos64 opt]# wget http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz
[root@centos64 opt]# tar -zxvf cmake-2.8.5.tar.gz
[root@centos64 opt]# cd cmake-2.8.5
[root@centos64 cmake-2.8.5]# ./bootstrap
[root@centos64 cmake-2.8.5]# gmake
[root@centos64 cmake-2.8.5]# gmake install
或者
[root@centos64 ~]# yum install cmake
3、编译安装 MySQL 5.5.14
创建mysql安装目录和数据存放目录:
mkdir -p /usr/local/mysql/
mkdir -p /opt/data/mysql/
创建用户和用户组与赋予数据存放目录权限
groupadd -g 502 mysql
useradd -u 502 -g mysql mysql
chown mysql.mysql -R /opt/data/mysql/
chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
[root@centos64 opt]# wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.14.tar.gz/from/ftp://ftp.ntu.edu.tw/pub/MySQL/
[root@centos64 opt]# tar -zxvf mysql-5.5.14.tar.gz
[root@centos64 opt]# cd mysql-5.5.14
[root@centos64 mysql-5.5.14]# CFLAGS="-O3" CXX=gcc
[root@centos64 mysql-5.5.14]# CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti"
[root@centos64 mysql-5.5.14]# 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_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/opt/data/mysql \
-DMYSQL_USER=mysql \
-DWITH_SSL:STRING=bundled
说明:如果需要配置SSL功能,此处编译时需要加入ssl支持,否则mysql安装后只在配置文件中加入ssl参数会启动失败。
[root@centos64 mysql-5.5.14]# make
[root@centos64 mysql-5.5.14]# make install
以上部分参数说明:
DCMAKE_INSTALL_PREFIX #mysql安装的主目录,默认为/usr/local/mysql
DMYSQL_DATADIR #mysql数据库文件的存放目录,可以自定义
DMYSQL_UNIX_ADDR #系统Socket文件(.sock)设置,基于该文件路径进行Socket链接,必须为绝对路径
DSYSCONFDIR=/etc #mysql配置文件 my.cnf的存放地址,默认为/etc下
DMYSQL_TCP_PORT=3306 #数据库服务器监听端口,默认为3306
DENABLED_LOCAL_INFILE=1 #允许从本地导入数据
DWITH_READLINE=1 #快捷键功能
DWITH_SSL=yes #支持 SSL
DMYSQL_USER=mysql #默认为mysql
//下面3个是数据库编码设置
DEXTRA_CHARSETS=all #安装所有扩展字符集,默认为all
DDEFAULT_CHARSET=utf8 #使用 utf8 字符
DDEFAULT_COLLATION=utf8_general_ci #校验字符
//下面5个是数据库存储引擎设在
DWITH_MYISAM_STORAGE_ENGINE=1 #安装 myisam 存储引擎
DWITH_INNOBASE_STORAGE_ENGINE=1 #安装 innodb 存储引擎
DWITH_ARCHIVE_STORAGE_ENGINE=1 #安装 archive 存储引擎
DWITH_BLACKHOLE_STORAGE_ENGINE=1 #安装 blackhole 存储引擎
DWITH_PARTITION_STORAGE_ENGINE=1 #安装数据库分区
[root@centos64 mysql-5.5.14]# ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
[root@centos64 support-files]# pwd
/usr/local/mysql/support-files
[root@centos64 support-files]# cp my-large.cnf /etc/my.cnf
cp: overwrite `/etc/my.cnf'? yes
[root@centos64 support-files]# cp mysql.server /etc/init.d/mysqld
4、配置启动mysql
(1)、若有需要请先修改 mysql 的配置 my.cnf
[root@centos64 support-files]# vi /etc/my.cnf
[mysqld]:在该标签下添加
datadir = /opt/data/mysql
(2)、mysql 初始化安装
[root@centos64 support-files]# /usr/local/mysql/scripts/mysql_install_db \
--basedir=/usr/local/mysql \
--datadir=/opt/data/mysql \
--user=mysql
(3)、将 mysql 加入开机启动
[root@centos64 support-files] chmod +x /etc/init.d/mysqld
[root@centos64 support-files] vi /etc/init.d/mysqld (编辑此文件,查找并修改以下变量内容:)
basedir=/usr/local/mysql
datadir=/opt/data/mysql
说明:
其实这两个目录在使用cmake编译时就已经指定了,也可以不再此指定了,如果启动mysqld时出现
/etc/init.d/mysqld: line 46: /usr/local/mysql: is a directory
/etc/init.d/mysqld: line 47: /opt/data/mysql: is a directory
就不要加指定这两个目录)。
[root@centos64 support-files] chkconfig --add mysqld
[root@centos64 support-files] chkconfig --level 345 mysqld on
(4)、为MySQL配置环境变量
[root@centos64 mysql]# vi /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
[root@centos64 mysql]# source /etc/profile
(5)、启动mysql
[root@centos64 mysql]# service mysqld start
5、设置用户密码
[root@centos64 etc]# mysqladmin -uroot password root
删除本机匿名连接的空密码帐号:
mysql> use mysql;
mysql> select host,user,password from user;
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| centos64 | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| centos64 | | |
+-----------+------+-------------------------------------------+
6 rows in set (0.01 sec)
删掉无用的:
mysql> delete from user where host='127.0.0.1' or host='::1' or host='localhost.localdomain';
删除root密码为空的:
mysql> delete from user where password="";
mysql> flush privileges;
说明:对于root账号,如果考虑安全应该新建其他账号用于远程登录,root账号可以不必开启远程登录。不过对于一般使用,没有太多安全需求,允许root用户远程登录可以方便管理,毕竟使用专用管理软件的图形界面在操作方面要方便的多。
6、设置mysql远程连接
mysql> grant all privileges on *.* to 'root'@'%' identified by "root" with grant option;
mysql> flush privileges;
至此,mysql安装配置初步完成。